Commit Diff


commit - 0777bca3258324d2cc8b1a9092f8b2ffebb5e508
commit + d67d94ea04990be49b3d56b1540746c0785faf1b
blob - ad2110a312e3045a0b939a3c2e0caf599564d466
blob + a02348f821673a7e3b339a1be454498c83a0cd8b
--- MacOSX/ngircd.pbproj/project.pbxproj
+++ MacOSX/ngircd.pbproj/project.pbxproj
@@ -94,7 +94,7 @@
 				HEADER_SEARCH_PATHS = "";
 				INSTALL_PATH = "$(HOME)/bin";
 				LIBRARY_SEARCH_PATHS = "";
-				OTHER_CFLAGS = "";
+				OTHER_CFLAGS = "-DLOCALSTATEDIR=\\\\\\\"/usr/local/var\\\\\\\" -DSYSCONFDIR=\\\\\\\"/usr/local/etc\\\\\\\"";
 				OTHER_LDFLAGS = "";
 				OTHER_REZFLAGS = "";
 				PRODUCT_NAME = ngircd;
blob - 950d260daf1139a693789190f6d2d7cafc3ddb94
blob + 7739cf36eed5ce1e772a6d9b558e2f3cac19b21e
--- src/ngircd/conf.c
+++ src/ngircd/conf.c
@@ -9,11 +9,14 @@
  * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
  * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
  *
- * $Id: conf.c,v 1.15 2002/03/06 15:35:19 alex Exp $
+ * $Id: conf.c,v 1.16 2002/03/10 17:50:48 alex Exp $
  *
  * conf.h: Konfiguration des ngircd
  *
  * $Log: conf.c,v $
+ * Revision 1.16  2002/03/10 17:50:48  alex
+ * - Handling von "--version" und "--help" nochmal geaendert ...
+ *
  * Revision 1.15  2002/03/06 15:35:19  alex
  * - Dateinamen und Pfad sind nun in Konstanten definiert.
  *
@@ -180,6 +183,7 @@ LOCAL VOID Read_Config( VOID )
 					strcpy( Conf_Server[Conf_Server_Count].name, "" );
 					strcpy( Conf_Server[Conf_Server_Count].pwd, "" );
 					Conf_Server[Conf_Server_Count].port = 0;
+					Conf_Server[Conf_Server_Count].group = -1;
 					Conf_Server[Conf_Server_Count].lasttry = time( NULL ) - Conf_ConnectRetry + STARTUP_DELAY;
 					Conf_Server[Conf_Server_Count].res_stat = NULL;
 					Conf_Server_Count++;
@@ -322,7 +326,7 @@ GLOBAL VOID Handle_OPERATOR( INT Line, CHAR *Var, CHAR
 
 GLOBAL VOID Handle_SERVER( INT Line, CHAR *Var, CHAR *Arg )
 {
-	INT port;
+	INT32 port;
 	
 	assert( Line > 0 );
 	assert( Var != NULL );
@@ -353,10 +357,16 @@ GLOBAL VOID Handle_SERVER( INT Line, CHAR *Var, CHAR *
 	{
 		/* Port, zu dem Verbunden werden soll */
 		port = atol( Arg );
-		if( port > 0 && port < 0xFFFF ) Conf_Server[Conf_Server_Count - 1].port = port;
+		if( port > 0 && port < 0xFFFF ) Conf_Server[Conf_Server_Count - 1].port = (INT)port;
 		else Log( LOG_ERR, "%s, line %d (section \"Server\"): Illegal port number %ld!", Conf_File, Line, port );
 		return;
 	}
+	if( strcasecmp( Var, "Group" ) == 0 )
+	{
+		/* Server-Gruppe */
+		Conf_Server[Conf_Server_Count - 1].group = atoi( Arg );
+		return;
+	}
 	
 	Log( LOG_ERR, "%s, line %d (section \"Server\"): Unknown variable \"%s\"!", Conf_File, Line, Var );
 } /* Handle_SERVER */
blob - 0dbcc3fbfa0dd713a086ccd5db6106667dff9bdd
blob + 3e507b39db1bd655c8a7f67d9ccccf59fdbcaab3
--- src/ngircd/conf.h
+++ src/ngircd/conf.h
@@ -9,11 +9,14 @@
  * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
  * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
  *
- * $Id: conf.h,v 1.10 2002/02/27 23:23:53 alex Exp $
+ * $Id: conf.h,v 1.11 2002/03/10 17:50:48 alex Exp $
  *
  * conf.h: Konfiguration des ngircd (Header)
  *
  * $Log: conf.h,v $
+ * Revision 1.11  2002/03/10 17:50:48  alex
+ * - Handling von "--version" und "--help" nochmal geaendert ...
+ *
  * Revision 1.10  2002/02/27 23:23:53  alex
  * - Includes fuer einige Header bereinigt.
  *
@@ -56,19 +59,20 @@
 
 typedef struct _Conf_Oper
 {
-	CHAR name[CLIENT_PASS_LEN];
-	CHAR pwd[CLIENT_PASS_LEN];
+	CHAR name[CLIENT_PASS_LEN];	/* Name (ID) des IRC-OPs */
+	CHAR pwd[CLIENT_PASS_LEN];	/* Passwort */
 } CONF_OPER;
 
 typedef struct _Conf_Server
 {
-	CHAR host[HOST_LEN];
-	CHAR ip[16];
-	CHAR name[CLIENT_ID_LEN];
-	CHAR pwd[CLIENT_PASS_LEN];
-	INT port;
-	time_t lasttry;
-	RES_STAT *res_stat;
+	CHAR host[HOST_LEN];		/* Hostname */
+	CHAR ip[16];			/* IP-Adresse (von Resolver) */
+	CHAR name[CLIENT_ID_LEN];	/* IRC-Client-ID */
+	CHAR pwd[CLIENT_PASS_LEN];	/* Passwort */
+	INT port;			/* Server-Port */
+	INT group;			/* Gruppe des Servers */
+	time_t lasttry;			/* Letzter Connect-Versuch */
+	RES_STAT *res_stat;		/* Status des Resolver */
 } CONF_SERVER;
 
 
blob - 5c37329f2f0c58016394b261a13a2c420d140fa3
blob + d19e0030fb7eaba342a7f12ec2c8e6e87b0a5928
--- src/ngircd/conn.c
+++ src/ngircd/conn.c
@@ -9,11 +9,14 @@
  * 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.47 2002/03/04 23:16:23 alex Exp $
+ * $Id: conn.c,v 1.48 2002/03/10 17:50:48 alex Exp $
  *
  * connect.h: Verwaltung aller Netz-Verbindungen ("connections")
  *
  * $Log: conn.c,v $
+ * Revision 1.48  2002/03/10 17:50:48  alex
+ * - Handling von "--version" und "--help" nochmal geaendert ...
+ *
  * Revision 1.47  2002/03/04 23:16:23  alex
  * - Logging geaendert: detaillierter im Syslog, "allgemeiner" fuer Clients.
  *
@@ -1008,6 +1011,7 @@ LOCAL VOID Check_Servers( VOID )
 		/* Haben wir schon eine Verbindung? */
 		for( n = 0; n < MAX_CONNECTIONS; n++ )
 		{
+			/* Verbindung zu diesem Server? */
 			if(( My_Connections[n].sock != NONE ) && ( My_Connections[n].our_server == i ))
 			{
 				/* Komplett aufgebaute Verbindung? */
@@ -1015,6 +1019,12 @@ LOCAL VOID Check_Servers( VOID )
 
 				/* IP schon aufgeloest? */
 				if( My_Connections[n].res_stat == NULL ) New_Server( i, n );
+			}
+
+			/* Verbindung in dieser Server-Gruppe? */
+			if(( My_Connections[n].sock != NONE ) && ( My_Connections[n].our_server != NONE ))
+			{
+				if( Conf_Server[n].group == Conf_Server[i].group != NONE ) break;
 			}
 		}
 		if( n < MAX_CONNECTIONS ) continue;
@@ -1145,7 +1155,7 @@ LOCAL VOID Init_Conn_Struct( INT Idx )
 	My_Connections[Idx].rdatalen = 0;
 	My_Connections[Idx].wbuf[0] = '\0';
 	My_Connections[Idx].wdatalen = 0;
-	My_Connections[Idx].our_server = -1;
+	My_Connections[Idx].our_server = NONE;
 	My_Connections[Idx].lastdata = time( NULL );
 	My_Connections[Idx].lastping = 0;
 	My_Connections[Idx].lastprivmsg = time( NULL );
blob - 4dd9b6a28d9798c1d0978f560503adcc358fc3dd
blob + 113cecabf848cda2246ff08c278fd69c7b50edda
--- src/ngircd/ngircd.c
+++ src/ngircd/ngircd.c
@@ -9,11 +9,14 @@
  * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
  * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
  *
- * $Id: ngircd.c,v 1.30 2002/03/10 17:45:41 alex Exp $
+ * $Id: ngircd.c,v 1.31 2002/03/10 17:50:48 alex Exp $
  *
  * ngircd.c: Hier beginnt alles ;-)
  *
  * $Log: ngircd.c,v $
+ * Revision 1.31  2002/03/10 17:50:48  alex
+ * - Handling von "--version" und "--help" nochmal geaendert ...
+ *
  * Revision 1.30  2002/03/10 17:45:41  alex
  * - bei "ngircd --version" werden nun die eincompilierten Pfade angezeigt.
  *
@@ -210,7 +213,7 @@ GLOBAL INT main( INT argc, CONST CHAR *argv[] )
 #endif
 			if( strcmp( argv[i], "--version" ) == 0 )
 			{
-				Show_Version( ); puts( "" );
+				Show_Version( );
 				exit( 1 );
 			}
 		}
@@ -489,15 +492,16 @@ LOCAL VOID Show_Version( VOID )
 	puts( "Copyright (c)2001,2002 by Alexander Barton (alex@barton.de).\n" );
 	puts( "This is free software; see the source for copying conditions. There is NO" );
 	puts( "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." );
-        puts( "\nCompile-time defaults:\n" );
-        puts( "  - configuration: "CONFIG_FILE );
-        puts( "  - MOTD file: "MOTD_FILE );
-        puts( "  - server error log: "ERROR_FILE );
 } /* Show_Version */
 
 
 LOCAL VOID Show_Help( VOID )
 {
+	puts( "Compile-time defaults:\n" );
+	puts( "  - configuration: "CONFIG_FILE );
+	puts( "  - MOTD file: "MOTD_FILE );
+	puts( "  - server error log: "ERROR_FILE"\n" );
+	puts( "Run-time options:\n" );
 #ifdef DEBUG
 	puts( "  -d, --debug       log extra debug messages" );
 #endif