X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_pong.c;h=df29b9f6714ace850041b1f669e08094c62e2226;hb=refs%2Fheads%2Fupstream;hp=026cd6bbeee40ac06cc501f04150a12dd9bbc972;hpb=6a0206c53aae78b89f5e2325c28c22599d8e2363;p=ircu2.10.12-pk.git diff --git a/ircd/m_pong.c b/ircd/m_pong.c index 026cd6b..df29b9f 100644 --- a/ircd/m_pong.c +++ b/ircd/m_pong.c @@ -84,16 +84,18 @@ #include "client.h" #include "hash.h" #include "ircd.h" +#include "ircd_log.h" #include "ircd_reply.h" #include "ircd_string.h" #include "msg.h" #include "numeric.h" #include "numnicks.h" #include "opercmds.h" +#include "s_auth.h" #include "s_user.h" #include "send.h" -#include +/* #include -- Now using assert in ircd_log.h */ #include #include @@ -117,8 +119,8 @@ int ms_pong(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) } origin = parv[1]; destination = parv[2]; - ClrFlag(cptr, FLAG_PINGSENT); - ClrFlag(sptr, FLAG_PINGSENT); + ClearPingSent(cptr); + ClearPingSent(sptr); cli_lasttime(cptr) = CurrentTime; if (parc > 5) @@ -127,6 +129,7 @@ int ms_pong(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) cli_serv(cptr)->asll_rtt = atoi(militime_float(parv[3])); cli_serv(cptr)->asll_to = atoi(parv[4]); cli_serv(cptr)->asll_from = atoi(militime_float(parv[5])); + cli_serv(cptr)->asll_last = CurrentTime; return 0; } @@ -160,26 +163,8 @@ int mr_pong(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) assert(cptr == sptr); assert(!IsRegistered(sptr)); - ClrFlag(cptr, FLAG_PINGSENT); - cli_lasttime(cptr) = CurrentTime; - /* - * Check to see if this is a PONG :cookie reply from an - * unregistered user. If so, process it. -record - */ - if (0 != cli_cookie(sptr) && COOKIE_VERIFIED != cli_cookie(sptr)) { - if (parc > 1 && cli_cookie(sptr) == atol(parv[parc - 1])) { - cli_cookie(sptr) = COOKIE_VERIFIED; - if (cli_user(sptr) && *(cli_user(sptr))->host && (cli_name(sptr))[0]) - /* - * NICK and USER OK - */ - return register_user(cptr, sptr, cli_name(sptr), cli_user(sptr)->username); - } - else - send_reply(sptr, SND_EXPLICIT | ERR_BADPING, - ":To connect, type /QUOTE PONG %u", cli_cookie(sptr)); - } - return 0; + ClearPingSent(cptr); + return (parc > 1) ? auth_set_pong(cli_auth(sptr), strtoul(parv[parc - 1], NULL, 10)) : 0; } /* @@ -193,7 +178,8 @@ int m_pong(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { assert(0 != cptr); assert(cptr == sptr); - ClrFlag(cptr, FLAG_PINGSENT); + + ClearPingSent(cptr); cli_lasttime(cptr) = CurrentTime; return 0; }