diff options
| author | Alexander Barton <alex@barton.de> | 2011-12-28 14:39:47 +0100 |
|---|---|---|
| committer | Alexander Barton <alex@barton.de> | 2011-12-28 14:46:17 +0100 |
| commit | a71abfef4b82aace4989db6a4ed3c94d1266b287 (patch) | |
| tree | 24e9720d3b305a8ac86c1ddb7f7c2e344cfc650f | |
| parent | 8a8e8a3a23576ccdf06aec7d0a2e6a0d8584a9d8 (diff) | |
| download | ngircd-a71abfef4b82aace4989db6a4ed3c94d1266b287.tar.gz ngircd-a71abfef4b82aace4989db6a4ed3c94d1266b287.zip | |
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.11/ircd-seven behave, at least. Reported by Cahata -- thanks!
| -rw-r--r-- | 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 ba44a3ba..d8329b16 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 ...", |