]> arthur.barton.de Git - ngircd.git/blobdiff - src/ngircd/conn.c
Enhance log messages on "recursive" connection errors
[ngircd.git] / src / ngircd / conn.c
index 01253a2a19dba746ead7a8edc8b1bca34985c263..30dfd094467397ac958052fd41bfd5f33960ff14 100644 (file)
@@ -222,7 +222,7 @@ cb_connserver(int sock, UNUSED short what)
        if (server < 0) {
                Log(LOG_ERR, "Connection on socket %d to \"%s\" aborted!",
                    sock, My_Connections[idx].host);
-               Conn_Close(idx, "Connection aborted!", NULL, false);
+               Conn_Close(idx, "Connection aborted", NULL, false);
                return;
        }
 
@@ -1181,8 +1181,8 @@ Conn_Close( CONN_ID Idx, const char *LogMsg, const char *FwdMsg, bool InformClie
        /* Is this link already shutting down? */
        if( Conn_OPTION_ISSET( &My_Connections[Idx], CONN_ISCLOSING )) {
                /* Conn_Close() has been called recursively for this link;
-                * probabe reason: Handle_Write() failed  -- see below. */
-               LogDebug("Recursive request to close connection: %d", Idx );
+                * probable reason: Handle_Write() failed -- see below. */
+               LogDebug("Recursive request to close connection %d!", Idx );
                return;
        }
 
@@ -1228,7 +1228,7 @@ Conn_Close( CONN_ID Idx, const char *LogMsg, const char *FwdMsg, bool InformClie
        c = Conn_GetClient( Idx );
 #ifdef SSL_SUPPORT
        if ( Conn_OPTION_ISSET( &My_Connections[Idx], CONN_SSL )) {
-               Log(LOG_INFO, "SSL connection %d shutting down ...", Idx);
+               LogDebug("SSL connection %d shutting down ...", Idx);
                ConnSSL_Free(&My_Connections[Idx]);
        }
 #endif
@@ -1450,9 +1450,14 @@ Handle_Write( CONN_ID Idx )
                if (errno == EAGAIN || errno == EINTR)
                        return true;
 
-               Log(LOG_ERR, "Write error on connection %d (socket %d): %s!",
-                   Idx, My_Connections[Idx].sock, strerror(errno));
-               Conn_Close(Idx, "Write error!", NULL, false);
+               if (!Conn_OPTION_ISSET(&My_Connections[Idx], CONN_ISCLOSING))
+                       Log(LOG_ERR,
+                           "Write error on connection %d (socket %d): %s!",
+                           Idx, My_Connections[Idx].sock, strerror(errno));
+               else
+                       LogDebug("Recursive write error on connection %d (socket %d): %s!",
+                                Idx, My_Connections[Idx].sock, strerror(errno));
+               Conn_Close(Idx, "Write error", NULL, false);
                return false;
        }
 
@@ -2459,7 +2464,8 @@ cb_Read_Resolver_Result( int r_fd, UNUSED short events )
                Class_HandleServerBans(c);
        }
 #ifdef DEBUG
-               else Log( LOG_DEBUG, "Resolver: discarding result for already registered connection %d.", i );
+       else
+               LogDebug("Resolver: discarding result for already registered connection %d.", i);
 #endif
 } /* cb_Read_Resolver_Result */