mirror of
https://github.com/osmarks/ngircd.git
synced 2025-01-19 12:02:52 +00:00
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:
parent
8a8e8a3a23
commit
a71abfef4b
@ -253,7 +253,6 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CLIENT *Target )
|
|||||||
set ? '+' : '-',
|
set ? '+' : '-',
|
||||||
*mode_ptr);
|
*mode_ptr);
|
||||||
x[0] = '\0';
|
x[0] = '\0';
|
||||||
goto client_exit;
|
|
||||||
} else {
|
} else {
|
||||||
Log(LOG_DEBUG,
|
Log(LOG_DEBUG,
|
||||||
"Handling unknown mode \"%c%c\" from \"%s\" for \"%s\" ...",
|
"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));
|
strlcat(the_modes, x, sizeof(the_modes));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
client_exit:
|
|
||||||
|
|
||||||
/* Are there changed modes? */
|
/* Are there changed modes? */
|
||||||
if (the_modes[1]) {
|
if (the_modes[1]) {
|
||||||
@ -671,7 +669,6 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel)
|
|||||||
Client_ID(Origin),
|
Client_ID(Origin),
|
||||||
set ? '+' : '-', *mode_ptr);
|
set ? '+' : '-', *mode_ptr);
|
||||||
x[0] = '\0';
|
x[0] = '\0';
|
||||||
goto chan_exit;
|
|
||||||
} else {
|
} else {
|
||||||
Log(LOG_DEBUG,
|
Log(LOG_DEBUG,
|
||||||
"Handling unknown mode \"%c%c\" from \"%s\" on %s ...",
|
"Handling unknown mode \"%c%c\" from \"%s\" on %s ...",
|
||||||
|
Loading…
Reference in New Issue
Block a user