X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=src%2Fngircd%2Firc.c;h=e990cfd7a0397d2f6e42c9e42dc7d4d10db2a8af;hp=4cec3b18484e49c8266c3c4f6fb4febe57ae55ba;hb=4693226d6983b5ed4bd74b32a8daa9a3124ed17c;hpb=a13bb78b1e7adf7c261ac427341c397ef9a6a1ed diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c index 4cec3b18..e990cfd7 100644 --- a/src/ngircd/irc.c +++ b/src/ngircd/irc.c @@ -1,6 +1,6 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors. + * Copyright (c)2001-2015 Alexander Barton (alex@barton.de) and Contributors. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -240,7 +240,7 @@ IRC_TRACE(CLIENT *Client, REQUEST *Req) PACKAGE_VERSION, Client_ID(target), Client_ID(Client_NextHop(target)), Option_String(idx2), - time(NULL) - Conn_StartTime(idx2), + (long)(time(NULL) - Conn_StartTime(idx2)), Conn_SendQ(idx), Conn_SendQ(idx2))) return DISCONNECTED; @@ -339,9 +339,12 @@ GLOBAL bool IRC_KillClient(CLIENT *Client, CLIENT *From, const char *Nick, const char *Reason) { const char *msg; - CONN_ID my_conn, conn; + CONN_ID my_conn = NONE, conn; CLIENT *c; + assert(Nick != NULL); + assert(Reason != NULL); + /* Do we know such a client in the network? */ c = Client_Search(Nick); if (!c) { @@ -376,7 +379,8 @@ IRC_KillClient(CLIENT *Client, CLIENT *From, const char *Nick, const char *Reaso } /* Save ID of this connection */ - my_conn = Client_Conn(Client); + if (Client) + my_conn = Client_Conn(Client); /* Kill the client NOW: * - Close the local connection (if there is one), @@ -526,7 +530,7 @@ Send_Message(CLIENT * Client, REQUEST * Req, int ForceType, bool SendErrors) Client_ID(Client), Req->command); } - if (Client_Type(Client) == CLIENT_SERVER) + if (Client_Type(Client) == CLIENT_SERVER && Req->prefix) from = Client_Search(Req->prefix); else from = Client; @@ -740,10 +744,7 @@ Send_Message_Mask(CLIENT * from, char * command, char * targetMask, * dot (".") and no wildcards ("*", "?") following the last one. */ check_wildcards = strrchr(targetMask, '.'); - assert(check_wildcards != NULL); - if (check_wildcards && - check_wildcards[strcspn(check_wildcards, "*?")]) - { + if (!check_wildcards || check_wildcards[strcspn(check_wildcards, "*?")]) { if (!SendErrors) return true; return IRC_WriteErrClient(from, ERR_WILDTOPLEVEL, targetMask);