From: splidge Date: Thu, 19 Mar 2009 00:38:35 +0000 (+0000) Subject: LOCALUSER: localuserkill() now triggers the HOOK_NICK_KILL trigger. X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/commitdiff_plain/d7edba3360a11227c4d20e1d935fb363a5337716 LOCALUSER: localuserkill() now triggers the HOOK_NICK_KILL trigger. Fixes authtracker not terminating sessions when users are suspended, and also corners where one service killing another doesn't properly clean up the localuser setup. --- diff --git a/localuser/localuser.c b/localuser/localuser.c index e46f09a6..c7db7cb1 100644 --- a/localuser/localuser.c +++ b/localuser/localuser.c @@ -513,6 +513,8 @@ void sethostuser(nick *target, char *ident, char *host) { void _killuser(nick *source, nick *target, char *reason) { char senderstr[6]; char sourcestring[HOSTLEN+NICKLEN+3]; + char reasonstr[512]; + void *args[2]; if (!source) { /* If we have a null nick, use the server.. */ @@ -523,7 +525,15 @@ void _killuser(nick *source, nick *target, char *reason) { sprintf(sourcestring,"%s!%s",source->host->name->content, source->nick); } - irc_send("%s D %s :%s (%s)",senderstr,longtonumeric(target->numeric,5),sourcestring,reason); + snprintf(reasonstr,512,"%s (%s)",sourcestring,reason); + reasonstr[511]='\0'; + + irc_send("%s D %s :%s",senderstr,longtonumeric(target->numeric,5),reasonstr); + + args[0]=target; + args[1]=reasonstr; + triggerhook(HOOK_NICK_KILL, args); + deletenick(target); }