X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Fconn.c;h=71b4da5f62de81f21fe82ff1fa03e1e69c424f98;hb=a1a3e67de69ee37bbf1bb7fd8eb1451e1ff5eff4;hp=e60cde71b3d1e1fc0a5461366c7c1c2ba223f3d1;hpb=6da91c34b4c525501f403e192a43448c15f23aca;p=ngircd-alex.git diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c index e60cde71..71b4da5f 100644 --- a/src/ngircd/conn.c +++ b/src/ngircd/conn.c @@ -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.42 2002/03/02 00:23:32 alex Exp $ + * $Id: conn.c,v 1.46 2002/03/02 03:32:08 alex Exp $ * * connect.h: Verwaltung aller Netz-Verbindungen ("connections") * * $Log: conn.c,v $ + * 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. + * * Revision 1.42 2002/03/02 00:23:32 alex * - ausgehende Verbindungen werden nun asyncron connectiert und blockieren * nicht mehr den Server. Dadurch waren einige Aenderungen noetig. @@ -574,10 +589,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 */ @@ -704,6 +722,10 @@ LOCAL BOOLEAN Handle_Write( CONN_ID Idx ) FD_CLR( My_Connections[Idx].sock, &My_Sockets ); close( My_Connections[Idx].sock ); Init_Conn_Struct( Idx ); + + /* Bei Server-Verbindungen lasttry-Zeitpunkt auf "jetzt" setzen */ + Conf_Server[My_Connections[Idx].our_server].lasttry = time( NULL ); + return FALSE; } Log( LOG_DEBUG, "Connection %d with \"%s:%d\" established, now sendig PASS and SERVER ...", Idx, My_Connections[Idx].host, Conf_Server[My_Connections[Idx].our_server].port ); @@ -957,7 +979,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 ); } } }