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!
This commit is contained in:
Alexander Barton 2011-12-28 14:39:47 +01:00
parent 8a8e8a3a23
commit a71abfef4b
1 changed files with 0 additions and 3 deletions

View File

@ -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 ...",