--- ii.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ii.c b/ii.c index b0b83db..ca24a3c 100644 --- a/ii.c +++ b/ii.c _AT_@ -307,10 +307,11 @@ proc_channels_input(int fd, Channel *c, char *buf) { "PART %s :ii - 500 SLOC are too much\r\n", c->name); write(fd, msg, strnlen(msg, sizeof(msg))); close(c->fd); - /* TODO: dont create directory before deleting in file - * just try to delete it immediately */ - create_filepath(infile, sizeof(infile), c->name, "in"); - unlink(infile); + /* remove "in" file on leaving the channel */ + if(snprintf(infile, sizeof(infile), "%s/%s/in", + path, c->name) > 0) { + unlink(infile); + } rm_channel(c); return; break; _AT_@ -388,6 +389,9 @@ proc_server_cmd(int fd, char *buf) { } else if(!strncmp("PART", argv[TOK_CMD], 5)) { snprintf(msg, sizeof(msg), "-!- %s(%s) has left %s", argv[TOK_NICKSRV], argv[TOK_USER], argv[TOK_CHAN]); + /* if user itself leaves, don't write to out (don't reopen channel). */ + if(!strcmp(argv[TOK_NICKSRV], nick)) + return; } else if(!strncmp("MODE", argv[TOK_CMD], 5)) snprintf(msg, sizeof(msg), "-!- %s changed mode/%s -> %s %s", argv[TOK_NICKSRV], -- 2.4.10 --Multipart=_Mon__9_May_2016_17_21_10_+0200_I.6cpFVydhq75aaE Content-Type: text/x-diff; name="0023-write-global-messages-to-the-correct-fd-bug-from-cle.patch" Content-Disposition: attachment; filename="0023-write-global-messages-to-the-correct-fd-bug-from-cle.patch" Content-Transfer-Encoding: 7bitReceived on Mon Sep 17 2001 - 00:00:00 CEST
This archive was generated by hypermail 2.3.0 : Mon May 09 2016 - 17:24:22 CEST