summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVasily Kolobkov <none@none.none>2016-02-13 21:25:07 +0200
committerNico Golde <nico@ngolde.de>2016-02-24 23:02:13 +0100
commit165638e3c81213956a6b41d5889ba05186f4f771 (patch)
tree768d79d17f9ad58d6320c8a502d8fdf762a62c00
parent1bc3e103c0cc59b32018c3680f8c97bad4191cce (diff)
downloadii-165638e3c81213956a6b41d5889ba05186f4f771.zip
ii-165638e3c81213956a6b41d5889ba05186f4f771.tar.gz
ii-165638e3c81213956a6b41d5889ba05186f4f771.tar.bz2
Check up on server messages
Signed-off-by: Nico Golde <nico@ngolde.de>
-rw-r--r--ii.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/ii.c b/ii.c
index 9ea8bbc..632ee4b 100644
--- a/ii.c
+++ b/ii.c
@@ -348,30 +348,33 @@ static void proc_server_cmd(char *buf) {
return;
} else if(!strncmp("ERROR", argv[TOK_CMD], 6))
snprintf(message, PIPE_BUF, "-!- error %s", argv[TOK_TEXT] ? argv[TOK_TEXT] : "unknown");
- else if(!strncmp("JOIN", argv[TOK_CMD], 5)) {
+ else if(!strncmp("JOIN", argv[TOK_CMD], 5) && (argv[TOK_CHAN] || argv[TOK_TEXT])) {
if (argv[TOK_TEXT] != NULL)
argv[TOK_CHAN] = argv[TOK_TEXT];
snprintf(message, PIPE_BUF, "-!- %s(%s) has joined %s", argv[TOK_NICKSRV], argv[TOK_USER], argv[TOK_CHAN]);
- } else if(!strncmp("PART", argv[TOK_CMD], 5)) {
+ } else if(!strncmp("PART", argv[TOK_CMD], 5) && argv[TOK_CHAN]) {
snprintf(message, PIPE_BUF, "-!- %s(%s) has left %s", argv[TOK_NICKSRV], argv[TOK_USER], argv[TOK_CHAN]);
} else if(!strncmp("MODE", argv[TOK_CMD], 5))
snprintf(message, PIPE_BUF, "-!- %s changed mode/%s -> %s %s", argv[TOK_NICKSRV], argv[TOK_CMD + 1] ? argv[TOK_CMD + 1] : "" , argv[TOK_CMD + 2]? argv[TOK_CMD + 2] : "", argv[TOK_CMD + 3] ? argv[TOK_CMD + 3] : "");
else if(!strncmp("QUIT", argv[TOK_CMD], 5))
snprintf(message, PIPE_BUF, "-!- %s(%s) has quit \"%s\"", argv[TOK_NICKSRV], argv[TOK_USER], argv[TOK_TEXT] ? argv[TOK_TEXT] : "");
- else if(!strncmp("NICK", argv[TOK_CMD], 5) && !strcmp(_nick, argv[TOK_TEXT])) {
+ else if(!strncmp("NICK", argv[TOK_CMD], 5) && argv[TOK_TEXT] && !strcmp(_nick, argv[TOK_TEXT])) {
snprintf(nick, sizeof(nick), "%s", _nick);
snprintf(message, PIPE_BUF, "-!- changed nick to \"%s\"", nick);
print_out(NULL, message);
- } else if(!strncmp("NICK", argv[TOK_CMD], 5))
+ } else if(!strncmp("NICK", argv[TOK_CMD], 5) && argv[TOK_TEXT])
snprintf(message, PIPE_BUF, "-!- %s changed nick to %s", argv[TOK_NICKSRV], argv[TOK_TEXT]);
else if(!strncmp("TOPIC", argv[TOK_CMD], 6))
snprintf(message, PIPE_BUF, "-!- %s changed topic to \"%s\"", argv[TOK_NICKSRV], argv[TOK_TEXT] ? argv[TOK_TEXT] : "");
- else if(!strncmp("KICK", argv[TOK_CMD], 5))
+ else if(!strncmp("KICK", argv[TOK_CMD], 5) && argv[TOK_ARG])
snprintf(message, PIPE_BUF, "-!- %s kicked %s (\"%s\")", argv[TOK_NICKSRV], argv[TOK_ARG], argv[TOK_TEXT] ? argv[TOK_TEXT] : "");
else if(!strncmp("NOTICE", argv[TOK_CMD], 7))
snprintf(message, PIPE_BUF, "-!- \"%s\")", argv[TOK_TEXT] ? argv[TOK_TEXT] : "");
else if(!strncmp("PRIVMSG", argv[TOK_CMD], 8))
snprintf(message, PIPE_BUF, "<%s> %s", argv[TOK_NICKSRV], argv[TOK_TEXT] ? argv[TOK_TEXT] : "");
+ else
+ return; /* can't read this message */
+
if(!argv[TOK_CHAN] || !strncmp(argv[TOK_CHAN], nick, strlen(nick)))
print_out(argv[TOK_NICKSRV], message);
else