Module: ngircd.git Branch: master Commit: 6ff3b9f1f5086960ac8efb0ae122a7ce90554b71 URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=6ff3b...
Author: Alexander Barton alex@barton.de Date: Wed Dec 28 14:39:47 2011 +0100
Don't stop mode handling on unknown modes; skip it
Unknown user and channel modes no longer stop the mode parser, but are simply ignored. Therefore modes after the unknown one are now handled.
This is how ircd2.10/ircd2.10/ircd-seven behave, at least.
---
src/ngircd/irc-mode.c | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c index ba44a3b..d8329b1 100644 --- a/src/ngircd/irc-mode.c +++ b/src/ngircd/irc-mode.c @@ -253,7 +253,6 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CLIENT *Target ) set ? '+' : '-', *mode_ptr); x[0] = '\0'; - goto client_exit; } else { Log(LOG_DEBUG, "Handling unknown mode "%c%c" from "%s" for "%s" ...", @@ -278,7 +277,6 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CLIENT *Target ) strlcat(the_modes, x, sizeof(the_modes)); } } -client_exit:
/* Are there changed modes? */ if (the_modes[1]) { @@ -671,7 +669,6 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel) Client_ID(Origin), set ? '+' : '-', *mode_ptr); x[0] = '\0'; - goto chan_exit; } else { Log(LOG_DEBUG, "Handling unknown mode "%c%c" from "%s" on %s ...",