repo: ngircd action: commit revision: path_from: revision_from: 565523cbb4a5e2f34d584002916faba411a94187: path_to: revision_to:
commit 565523cbb4a5e2f34d584002916faba411a94187 Author: Alexander BartonDate: Mon Jan 2 15:23:17 2012 +0100 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! diff --git a/src/ngircd/irc-channel.c b/src/ngircd/irc-channel.c
--- a/src/ngircd/irc-channel.c
+++ b/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)
-----END OF PAGE-----