* 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.45 2002/03/02 02:44:01 alex Exp $
*
* connect.h: Verwaltung aller Netz-Verbindungen ("connections")
*
* $Log: conn.c,v $
+ * 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.
Check_Connections( );
/* Timeout initialisieren */
- tv.tv_sec = 0;
- tv.tv_usec = 50000;
+ tv.tv_sec = 2;
+ tv.tv_usec = 0;
/* noch volle Lese-Buffer suchen */
for( i = 0; i < MAX_CONNECTIONS; i++ )
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 */
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 );
{
/* Timeout */
Log( LOG_DEBUG, "Connection %d timed out ...", i );
- Conn_Close( i, NULL, "Timeout", TRUE );
+ Conn_Close( i, NULL, "Timeout", FALSE );
}
}
}