about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/irc-login.c19
-rw-r--r--src/ngircd/numeric.c4
2 files changed, 14 insertions, 9 deletions
diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c
index 54818fe4..133a0e5f 100644
--- a/src/ngircd/irc-login.c
+++ b/src/ngircd/irc-login.c
@@ -889,15 +889,16 @@ IRC_PONG(CLIENT *Client, REQUEST *Req)
 	}
 #endif
 
-#ifdef DEBUG
-	if (conn > NONE)
-		Log(LOG_DEBUG,
-			"Connection %d: received PONG. Lag: %ld seconds.", conn,
-			time(NULL) - Conn_LastPing(Client_Conn(Client)));
-	else
-		 Log(LOG_DEBUG,
-			"Connection %d: received PONG.", conn);
-#endif
+	if (Client_Type(Client) == CLIENT_SERVER && Conn_LastPing(conn) == 0) {
+		Log(LOG_INFO,
+		    "Synchronization with \"%s\" done (connection %d): %ld seconds [%ld users, %ld channels]",
+		    Client_ID(Client), conn, time(NULL) - Conn_GetSignon(conn),
+		    Client_UserCount(), Channel_CountVisible(NULL));
+		Conn_UpdatePing(conn);
+	} else
+		LogDebug("Connection %d: received PONG. Lag: %ld seconds.",
+			 conn, time(NULL) - Conn_LastPing(conn));
+
 	return CONNECTED;
 } /* IRC_PONG */
 
diff --git a/src/ngircd/numeric.c b/src/ngircd/numeric.c
index 0440768c..d59a1dc3 100644
--- a/src/ngircd/numeric.c
+++ b/src/ngircd/numeric.c
@@ -384,6 +384,10 @@ IRC_Num_ENDOFMOTD(CLIENT * Client, UNUSED REQUEST * Req)
 	}
 #endif
 
+	if (!IRC_WriteStrClient(Client, "PING :%s",
+	    Client_ID(Client_ThisServer())))
+		return DISCONNECTED;
+
 	return CONNECTED;
 } /* IRC_Num_ENDOFMOTD */