]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/conn.c
- Logging geaendert: detaillierter im Syslog, "allgemeiner" fuer Clients.
[ngircd-alex.git] / src / ngircd / conn.c
index 5942f97d2ea0859e5653254c67a455cca63260c8..5c37329f2f0c58016394b261a13a2c420d140fa3 100644 (file)
@@ -9,11 +9,26 @@
  * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
  * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
  *
- * $Id: conn.c,v 1.43 2002/03/02 00:29:11 alex Exp $
+ * $Id: conn.c,v 1.47 2002/03/04 23:16:23 alex Exp $
  *
  * connect.h: Verwaltung aller Netz-Verbindungen ("connections")
  *
  * $Log: conn.c,v $
+ * Revision 1.47  2002/03/04 23:16:23  alex
+ * - Logging geaendert: detaillierter im Syslog, "allgemeiner" fuer Clients.
+ *
+ * Revision 1.46  2002/03/02 03:32:08  alex
+ * - Aenderung des Idle-Verhalten revidiert: das war ein Schnellschuss :-/
+ *
+ * Revision 1.45  2002/03/02 02:44:01  alex
+ * - Timeouts ausgehender Verbindungen werden besser erkannt (z.B. unter Cygwin).
+ * - Idle-Time der Hauptschleife [Conn_Handle()] erhoeht: weniger Last.
+ *
+ * Revision 1.44  2002/03/02 00:43:31  alex
+ * - bei abgebrochene ausgehende Server-Verbindungen wird der naechste Ver-
+ *   bindungsversuch in RECONNECT_DELAY Sekunden (3) unternommen und nicht
+ *   mehr "ConnectRetry" Sekunden gewartet.
+ *
  * Revision 1.43  2002/03/02 00:29:11  alex
  * - der Wert der Konfigurations-Variable "ConnectRetry" wird besser beachtet.
  *
@@ -577,10 +592,13 @@ GLOBAL VOID Conn_Close( CONN_ID Idx, CHAR *LogMsg, CHAR *FwdMsg, BOOLEAN InformC
                free( My_Connections[Idx].res_stat );
        }
 
-       /* Bei Server-Verbindungen lasttry-Zeitpunkt auf "jetzt" setzen */
-       if( My_Connections[Idx].our_server >= 0 ) Conf_Server[My_Connections[Idx].our_server].lasttry = time( NULL );
+       /* Bei Server-Verbindungen lasttry-Zeitpunkt so setzen, dass
+        * der naechste Verbindungsversuch in RECONNECT_DELAY Sekunden
+        * gestartet wird */
+       if( My_Connections[Idx].our_server >= 0 ) Conf_Server[My_Connections[Idx].our_server].lasttry = time( NULL ) - Conf_ConnectRetry + RECONNECT_DELAY;
 
        FD_CLR( My_Connections[Idx].sock, &My_Sockets );
+       FD_CLR( My_Connections[Idx].sock, &My_Connects );
        My_Connections[Idx].sock = NONE;
 } /* Conn_Close */
 
@@ -844,7 +862,7 @@ LOCAL VOID Read_Request( CONN_ID Idx )
        {
                /* Socket wurde geschlossen */
                Log( LOG_INFO, "%s:%d is closing the connection ...", inet_ntoa( My_Connections[Idx].addr.sin_addr ), ntohs( My_Connections[Idx].addr.sin_port));
-               Conn_Close( Idx, NULL, "Client closed connection.", FALSE );
+               Conn_Close( Idx, "Socket closed!", "Client closed connection", FALSE );
                return;
        }
 
@@ -852,7 +870,7 @@ LOCAL VOID Read_Request( CONN_ID Idx )
        {
                /* Fehler beim Lesen */
                Log( LOG_ERR, "Read error on connection %d: %s!", Idx, strerror( errno ));
-               Conn_Close( Idx, NULL, "Read error!", FALSE );
+               Conn_Close( Idx, "Read error!", "Client closed connection", FALSE );
                return;
        }
 
@@ -964,7 +982,7 @@ LOCAL VOID Check_Connections( VOID )
                        {
                                /* Timeout */
                                Log( LOG_DEBUG, "Connection %d timed out ...", i );
-                               Conn_Close( i, NULL, "Timeout", TRUE );
+                               Conn_Close( i, NULL, "Timeout", FALSE );
                        }
                }
        }