commit 565523cbb4a5e2f34d584002916faba411a94187 from: Alexander Barton date: Mon Jan 02 14:23:17 2012 UTC Don't stop join handling on faulty channel, skip it When JOIN is received with more than one channel name, don't stop processing on the first error (e.g. bad name, wrong channel key, ...) but report an error and continue with the other given channel names. Reported by Cahata -- thanks! commit - 013298d4c68cc82c8b723fedb81ea87ced7fb306 commit + 565523cbb4a5e2f34d584002916faba411a94187 blob - a41f1d48e15cc9ddf66e959cdbc8a22386921b42 blob + 6ddad88b1a9f3817d28a6c3962f03064348eaf3a --- src/ngircd/irc-channel.c +++ src/ngircd/irc-channel.c @@ -401,7 +401,7 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req ) /* Join channel (and create channel if it doesn't exist) */ if (!Channel_Join(target, channame)) - break; + goto join_next; if (!chan) { /* channel is new; it has been created above */ chan = Channel_Search(channame); @@ -420,6 +420,7 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req ) if (!join_send_topic(Client, target, chan, channame)) break; /* write error */ + join_next: /* next channel? */ channame = strtok_r(NULL, ",", &lastchan); if (channame && key)