Avoid doing needless work for unregistered client PONGs.
authorMichael Poole <mdpoole@troilus.org>
Sat, 6 May 2006 23:48:26 +0000 (23:48 +0000)
committerMichael Poole <mdpoole@troilus.org>
Sat, 6 May 2006 23:48:26 +0000 (23:48 +0000)
git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/branches/u2_10_12_branch@1647 c9e4aea6-c8fd-4c43-8297-357d70d61c8c

ChangeLog
ircd/m_pong.c

index fc55856c0f5e9a9ca0f6eded760d22ae1b6c79a9..b4919f118d515c9bcf2501329e8ced338198e264 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-05-06  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_pong.c (mr_pong): No need to do any work if the client
+       PONGs with no pending PING.
+
 2006-05-06  Michael Poole <mdpoole@troilus.org>
 
        * ircd/s_auth.c (AuthRequestFlag): Add AR_PASSWORD_CHECKED.
index f107552eec1c47b44f7e03aab3da9c74d345e352..60c22fbeff364e92f0ff16147ef5848b3ebe9a78 100644 (file)
@@ -162,6 +162,8 @@ int mr_pong(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
   assert(cptr == sptr);
   assert(!IsRegistered(sptr));
 
+  if (!HasFlag(cptr, FLAG_PINGSENT))
+    return 0;
   ClrFlag(cptr, FLAG_PINGSENT);
   cli_lasttime(cptr) = CurrentTime;
   return (parc > 1) ? auth_set_pong(cli_auth(sptr), strtoul(parv[parc - 1], NULL, 10)) : 0;
@@ -178,6 +180,7 @@ int m_pong(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
 {
   assert(0 != cptr);
   assert(cptr == sptr);
+
   ClrFlag(cptr, FLAG_PINGSENT);
   cli_lasttime(cptr) = CurrentTime;
   return 0;