Avoid doing needless work for unregistered client PONGs.
[ircu2.10.12-pk.git] / ircd / m_pong.c
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;