X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Firc-login.c;h=2a0a8fa5c2ffab0d40508f5fdfd984847c2c6b1b;hb=7207bef418c655107d3076b20dd797418ad82cd7;hp=9fca622ba0ea66422940e2d71dc2dff0d5f2eee4;hpb=64c265cf33d09cfb9ab5e7d0bbc8033dc85f7c64;p=ngircd-alex.git diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c index 9fca622b..2a0a8fa5 100644 --- a/src/ngircd/irc-login.c +++ b/src/ngircd/irc-login.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 @@ -196,6 +196,7 @@ IRC_NICK( CLIENT *Client, REQUEST *Req ) /* Search "target" client */ if (Client_Type(Client) == CLIENT_SERVER) { + _IRC_REQUIRE_PREFIX_OR_RETURN_(Client, Req) target = Client_Search(Req->prefix); if (!target) return IRC_WriteErrClient(Client, @@ -379,6 +380,8 @@ IRC_SVSNICK(CLIENT *Client, REQUEST *Req) assert(Client != NULL); assert(Req != NULL); + _IRC_REQUIRE_PREFIX_OR_RETURN_(Client, Req) + /* Search the originator */ from = Client_Search(Req->prefix); if (!from) @@ -481,6 +484,7 @@ IRC_USER(CLIENT * Client, REQUEST * Req) Client_Type(Client) == CLIENT_SERVICE) { /* Server/service updating an user */ _IRC_ARGC_EQ_OR_RETURN_(Client, Req, 4) + _IRC_REQUIRE_PREFIX_OR_RETURN_(Client, Req) c = Client_Search(Req->prefix); if (!c) @@ -653,6 +657,8 @@ IRC_QUIT( CLIENT *Client, REQUEST *Req ) if (Client_Type(Client) == CLIENT_SERVER) { /* Server */ + _IRC_REQUIRE_PREFIX_OR_RETURN_(Client, Req) + target = Client_Search(Req->prefix); if (!target) { Log(LOG_WARNING, @@ -741,9 +747,10 @@ IRC_PING(CLIENT *Client, REQUEST *Req) if (target != Client_ThisServer()) { /* Ok, we have to forward the PING */ - if (Client_Type(Client) == CLIENT_SERVER) + if (Client_Type(Client) == CLIENT_SERVER) { + _IRC_REQUIRE_PREFIX_OR_RETURN_(Client, Req) from = Client_Search(Req->prefix); - else + } else from = Client; if (!from) return IRC_WriteErrClient(Client, @@ -815,6 +822,8 @@ IRC_PONG(CLIENT *Client, REQUEST *Req) /* Forward? */ if (Req->argc == 2 && Client_Type(Client) == CLIENT_SERVER) { + _IRC_REQUIRE_PREFIX_OR_RETURN_(Client, Req) + target = Client_Search(Req->argv[0]); if (!target) return IRC_WriteErrClient(Client, ERR_NOSUCHSERVER_MSG, @@ -864,13 +873,14 @@ IRC_PONG(CLIENT *Client, REQUEST *Req) if (Client_Type(Client) == CLIENT_SERVER && Conn_LastPing(conn) == 0) { Log(LOG_INFO, "Synchronization with \"%s\" done (connection %d): %ld second%s [%ld users, %ld channels].", - Client_ID(Client), conn, time(NULL) - Conn_GetSignon(conn), + Client_ID(Client), conn, + (long)(time(NULL) - Conn_GetSignon(conn)), time(NULL) - Conn_GetSignon(conn) == 1 ? "" : "s", Client_UserCount(), Channel_CountVisible(NULL)); Conn_UpdatePing(conn); } else LogDebug("Connection %d: received PONG. Lag: %ld seconds.", - conn, time(NULL) - Conn_LastPing(conn)); + conn, (long)(time(NULL) - Conn_LastPing(conn))); return CONNECTED; } /* IRC_PONG */