From 3c64279ec3313741e6f66bd4664b22d0db770531 Mon Sep 17 00:00:00 2001 From: pk910 Date: Sun, 8 Jan 2012 05:32:00 +0100 Subject: [PATCH] fixed WHOHandler.c: don't WHO if requested nickname is invalid and use only one reply for WHOQUEUETYPE_USERAUTH --- src/WHOHandler.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/WHOHandler.c b/src/WHOHandler.c index b0b8ddc..eafa62f 100644 --- a/src/WHOHandler.c +++ b/src/WHOHandler.c @@ -170,6 +170,10 @@ void get_userauth(struct UserNode *user, userauth_callback_t callback, void *dat bot = whobot; if(bot == NULL) bot = getBots(SOCKET_FLAG_READY, NULL); //check if we really need to who the user + if(!is_valid_nick(user->nick)) { + callback(bot, user->nick, NULL, data); + return; + } if((user->flags & (USERFLAG_ISAUTHED | USERFLAG_ISIRCOP | USERFLAG_ISBOT | USERFLAG_ISSERVER)) || (time(0) - user->last_who) <= REWHO_TIMEOUT) { callback(bot, user->nick, user, data); return; @@ -254,7 +258,7 @@ void recv_whohandler_354(struct ClientSocket *client, char **argv, unsigned int strcpy(user->auth, argv[6]); user->flags |= USERFLAG_ISAUTHED; } - } else if(type & WHOQUEUETYPE_USERAUTH) { + } else if((type & WHOQUEUETYPE_USERAUTH) && !(entry->type & WHOQUEUETYPE_FOUND)) { //:OGN2.OnlineGamesNet.net 354 Skynet 1 pk910 2001:41d0:2:1d3b::babe Skynet pk910 entry->type |= WHOQUEUETYPE_FOUND; entry->user->last_who = time(0); -- 2.20.1