]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/irc-login.c
ngIRCd Release 27
[ngircd-alex.git] / src / ngircd / irc-login.c
index f682e216f273279501d33a036973cdb738ba9848..fb2219226d8c3654c3ebdb8029e96dd2a3ab1160 100644 (file)
@@ -774,7 +774,7 @@ IRC_PING(CLIENT *Client, REQUEST *Req)
                return IRC_WriteErrClient(Client, ERR_NOSUCHSERVER_MSG,
                                        Client_ID(Client), Req->prefix);
 
-       Log(LOG_DEBUG, "Connection %d: got PING, sending PONG ...",
+       LogDebug("Connection %d: got PING, sending PONG ...",
            Client_Conn(Client));
 
 #ifdef STRICT_RFC
@@ -877,9 +877,14 @@ IRC_PONG(CLIENT *Client, REQUEST *Req)
                    (long)(time(NULL) - Conn_GetSignon(conn)),
                    time(NULL) - Conn_GetSignon(conn) == 1 ? "" : "s",
                    Client_UserCount(), Channel_CountVisible(NULL));
-       } else
-               LogDebug("Connection %d: received PONG. Lag: %ld seconds.",
-                        conn, (long)(time(NULL) - Conn_LastPing(conn)));
+       } else {
+               if (Conn_LastPing(conn) > 1)
+                       LogDebug("Connection %d: received PONG. Lag: %ld seconds.",
+                                conn, (long)(time(NULL) - Conn_LastPing(conn)));
+               else
+                       LogDebug("Got unexpected PONG on connection %d. Ignored.",
+                                conn);
+       }
 
        /* We got a PONG, so signal that none is pending on this connection. */
        Conn_UpdatePing(conn, 1);