]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/conn.c
- "Timing" mal wieder geaendert: sollte schon 1 Sekunde sein, sonst kommen z.B. die...
[ngircd-alex.git] / src / ngircd / conn.c
index d4ecc1ade8fb87a53db4a4ee60f71d7f7aaa8d7a..3e2ca2fad70198b96d3785d61ab9059408146eb7 100644 (file)
@@ -9,7 +9,7 @@
  * 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.68 2002/08/26 00:03:15 alex Exp $
+ * $Id: conn.c,v 1.71 2002/09/07 21:35:06 alex Exp $
  *
  * connect.h: Verwaltung aller Netz-Verbindungen ("connections")
  */
@@ -220,8 +220,10 @@ Conn_NewListener( CONST UINT Port )
 GLOBAL VOID
 Conn_Handler( VOID )
 {
-       /* Aktive Verbindungen ueberwachen. Folgende Aktionen
-        * werden durchgefuehrt:
+       /* "Hauptschleife": Aktive Verbindungen ueberwachen. Folgende Aktionen
+        * werden dabei durchgefuehrt, bis der Server terminieren oder neu
+        * starten soll:
+        *
         *  - neue Verbindungen annehmen,
         *  - Server-Verbindungen aufbauen,
         *  - geschlossene Verbindungen loeschen,
@@ -242,10 +244,6 @@ Conn_Handler( VOID )
 
                Check_Connections( );
 
-               /* Timeout initialisieren */
-               tv.tv_sec = 1;
-               tv.tv_usec = 0;
-
                /* noch volle Lese-Buffer suchen */
                for( i = 0; i < MAX_CONNECTIONS; i++ )
                {
@@ -302,6 +300,10 @@ Conn_Handler( VOID )
                        }
                }
 
+               /* Timeout initialisieren */
+               tv.tv_sec = 1;
+               tv.tv_usec = 0;
+               
                /* Auf Aktivitaet warten */
                if( select( Conn_MaxFD + 1, &read_sockets, &write_sockets, NULL, &tv ) == -1 )
                {
@@ -311,7 +313,7 @@ Conn_Handler( VOID )
                                Log( LOG_ALERT, "%s exiting due to fatal errors!", PACKAGE );
                                exit( 1 );
                        }
-                       continue;
+                       if(( ! NGIRCd_Quit ) && ( ! NGIRCd_Restart )) continue;
                }
 
                /* Koennen Daten geschrieben werden? */
@@ -626,7 +628,7 @@ Handle_Write( CONN_ID Idx )
                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 );
 
                /* PASS und SERVER verschicken */
-               Conn_WriteStr( Idx, "PASS %s %s", Conf_Server[My_Connections[Idx].our_server].pwd, PASSSERVERADD );
+               Conn_WriteStr( Idx, "PASS %s %s", Conf_Server[My_Connections[Idx].our_server].pwd, NGIRCd_ProtoID );
                Conn_WriteStr( Idx, "SERVER %s :%s", Conf_ServerName, Conf_ServerInfo );
 
                return TRUE;