diff options
author | michael <michael@82007160-df01-0410-b94d-b575c5fd34c7> | 2012-12-18 18:43:55 +0000 |
---|---|---|
committer | michael <michael@82007160-df01-0410-b94d-b575c5fd34c7> | 2012-12-18 18:43:55 +0000 |
commit | 0adab16b35a3bf34fbad4bd80c7a5432e282c17d (patch) | |
tree | 6a3b921b98961a09f79c55bb10630af8d2f68e3e /src/parse.c | |
parent | 9c880d82eb87dd736b69a076bf21964245c1bfa3 (diff) |
- parse.c:handle_numeric(): added temporary workaround for servers sending
numeric 451 (ERR_NOTREGISTERED) in response to the "NOTICE AUTH ..." messages
uppon registration
git-svn-id: svn://svn.ircd-hybrid.org/svnroot/ircd-hybrid/trunk@1681 82007160-df01-0410-b94d-b575c5fd34c7
Diffstat (limited to 'src/parse.c')
-rw-r--r-- | src/parse.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/parse.c b/src/parse.c index b79a2f8..a25e299 100644 --- a/src/parse.c +++ b/src/parse.c @@ -712,12 +712,27 @@ handle_numeric(char numeric[], struct Client *client_p, struct Client *source_p, * unfortunately, it did not work. --Dianora */ + + /* + * Also ignoring ERR_NOTREGISTERED for now. A connecting server may send this + * in response to the "NOTICE AUTH ..." message upon registration. Normally + * the !IsServer() test in handle_numeric() would take care of this situation, + * but due to the fact that read_packet() in s_auth.c:release_auth_client() is + * called for the very first time _after_ ident/dns registration, it looks like + * the numeric (451) messages are queued up whereas meanwhile the serverlink + * succesfully establishes. Right after that, after IsServer() is true, the queued + * numeric messages will then be processed, and a notice is falsely sent to operators. + * The I/O engine will be rewritten soon (a mixture of libevent), so maybe this also + * will fix described behavior above, but for now we're just going to drop this message + * (no problem at all, we propably shouldn't process numeric destined to servers anyway) + * -Michael + */ /* Yes, a good compiler would have optimised this, but * this is probably easier to read. -db */ num = atoi(numeric); - if ((num != ERR_NOSUCHNICK)) + if ((num != ERR_NOSUCHNICK) && (num != ERR_NOTREGISTERED)) sendto_realops_flags(UMODE_ALL, L_ADMIN, SEND_NOTICE, "*** %s(via %s) sent a %s numeric to me: %s", source_p->name, client_p->name, numeric, buffer); |