Commit Diff


commit - 15f380592dcc3b1a4fa283200a65fa9385373a7b
commit + d772acf9d6851307a31795870078352ccb6574d2
blob - d3df6ce687e1eb0f146b0fb4a76b84905502e2c8
blob + 29ebc0015de344933818994efd07af4813d796f5
--- src/ngircd/conn.c
+++ src/ngircd/conn.c
@@ -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.60 2002/03/30 13:40:56 alex Exp $
+ * $Id: conn.c,v 1.60.2.1 2002/04/08 18:07:42 alex Exp $
  *
  * connect.h: Verwaltung aller Netz-Verbindungen ("connections")
  */
@@ -976,6 +976,7 @@ LOCAL VOID New_Server( INT Server, CONN_ID Idx )
 		return;
 	}
 	Client_SetIntroducer( c, c );
+	Client_SetToken( c, TOKEN_OUTBOUND );
 
 	/* Verbindung registrieren */
 	My_Connections[Idx].sock = new_sock;
blob - c10c3dc07a4ddd0128070f4da4bcf4c164605792
blob + acdeea3e07887b50b95a443172f1c124f98dc7d3
--- src/ngircd/defines.h
+++ src/ngircd/defines.h
@@ -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: defines.h,v 1.21 2002/03/29 22:55:02 alex Exp $
+ * $Id: defines.h,v 1.21.2.1 2002/04/08 18:07:42 alex Exp $
  *
  * defines.h: (globale) Konstanten
  */
@@ -28,9 +28,9 @@
 
 #define MAX_LISTEN_PORTS 16		/* max. Anzahl von Listen-Ports */
 
-#define MAX_OPERATORS 8			/* max. Anzahl konfigurierbarer Operatoren */
+#define MAX_OPERATORS 16		/* max. Anzahl konfigurierbarer Operatoren */
 
-#define MAX_SERVERS 8			/* max. Anzahl konfigurierbarer Server ("Peers") */
+#define MAX_SERVERS 16			/* max. Anzahl konfigurierbarer Server ("Peers") */
 
 #define MAX_CONNECTIONS 100		/* max. Anzahl von Verbindungen an diesem Server */
 
@@ -75,7 +75,9 @@
 
 #define MAX_LOG_MSG_LEN 256		/* max. Laenge einer Log-Meldung */
 
+#define TOKEN_OUTBOUND -2		/* Kennzeichnung fuer ausgehende Server-Links im Aufbau */
 
+
 #endif
 
 
blob - 1547e038dc253eda9be8b9bea7858cee27b0e676
blob + fc27e73e71e0b422baca96dbe5801badd7c65825
--- src/ngircd/irc-login.c
+++ src/ngircd/irc-login.c
@@ -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: irc-login.c,v 1.11 2002/03/26 23:58:34 alex Exp $
+ * $Id: irc-login.c,v 1.11.2.1 2002/04/08 18:07:42 alex Exp $
  *
  * irc-login.c: Anmeldung und Abmeldung im IRC
  */
@@ -116,7 +116,7 @@ GLOBAL BOOLEAN IRC_NICK( CLIENT *Client, REQUEST *Req 
 		 * wenn wir es nicht so machen. Ob es so okay ist? Hm ... */
 		if( strcmp( Client_ID( target ), Req->argv[0] ) == 0 ) return CONNECTED;
 #endif
-		
+
 		/* pruefen, ob Nick bereits vergeben. Speziallfall: der Client
 		 * will nur die Gross- und Kleinschreibung aendern. Das darf
 		 * er natuerlich machen :-) */
@@ -140,8 +140,16 @@ GLOBAL BOOLEAN IRC_NICK( CLIENT *Client, REQUEST *Req 
 		else
 		{
 			/* Nick-Aenderung */
-			if( Client_Conn( target ) > NONE ) Log( LOG_INFO, "User \"%s\" changed nick (connection %d): \"%s\" -> \"%s\".", Client_Mask( target ), Client_ID( target ), Req->argv[0], Client_Conn( target ));
-			else Log( LOG_DEBUG, "User \"%s\" changed nick: \"%s\" -> \"%s\".", Client_Mask( target ), Client_ID( target ), Req->argv[0] );
+			if( Client_Conn( target ) > NONE )
+			{
+				/* lokaler Client */
+				Log( LOG_INFO, "User \"%s\" changed nick (connection %d): \"%s\" -> \"%s\".", Client_Mask( target ), Client_Conn( target ), Client_ID( target ), Req->argv[0] );
+			}
+			else
+			{
+				/* Remote-Client */
+				Log( LOG_DEBUG, "User \"%s\" changed nick: \"%s\" -> \"%s\".", Client_Mask( target ), Client_ID( target ), Req->argv[0] );
+			}
 
 			/* alle betroffenen User und Server ueber Nick-Aenderung informieren */
 			if( Client_Type( Client ) == CLIENT_USER ) IRC_WriteStrClientPrefix( Client, Client, "NICK :%s", Req->argv[0] );
blob - c3b30b30fa8029235378762ba8d5111037e8c234
blob + cf863183b5f63c0ec7c9a192cea48b4f1c8a7b90
--- src/ngircd/irc-mode.h
+++ src/ngircd/irc-mode.h
@@ -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: irc-mode.h,v 1.2 2002/03/12 14:37:52 alex Exp $
+ * $Id: irc-mode.h,v 1.2.2.1 2002/04/08 18:07:42 alex Exp $
  *
  * irc-mode.h: IRC-Befehle zur Mode-Aenderung (MODE, AWAY, ...) (Header)
  */
@@ -29,4 +29,4 @@ GLOBAL BOOLEAN IRC_AWAY( CLIENT *Client, REQUEST *Req 
 #endif
 
 
-/* -eof- */
\ No newline at end of file
+/* -eof- */
blob - 965015943d068c02046cb4795899f930d4a47f2f
blob + 4a58d026e8a1bf85f9a0a53a6710d711ac92b387
--- src/ngircd/irc-oper.c
+++ src/ngircd/irc-oper.c
@@ -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: irc-oper.c,v 1.3 2002/03/27 20:52:58 alex Exp $
+ * $Id: irc-oper.c,v 1.3.2.1 2002/04/08 18:07:42 alex Exp $
  *
  * irc-oper.c: IRC-Operator-Befehle
  */
@@ -19,6 +19,7 @@
 
 #include "imp.h"
 #include <assert.h>
+#include <string.h>
 
 #include "ngircd.h"
 #include "conf.h"
blob - 743824c092272dad3f4070631fb6de88118e313e
blob + 827bc39bc49280f0a8f4ef9c1a6978e4fce35ae6
--- src/ngircd/irc-server.c
+++ src/ngircd/irc-server.c
@@ -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: irc-server.c,v 1.8 2002/03/27 20:52:58 alex Exp $
+ * $Id: irc-server.c,v 1.8.2.1 2002/04/08 18:07:42 alex Exp $
  *
  * irc-server.c: IRC-Befehle fuer Server-Links
  */
@@ -80,10 +80,11 @@ GLOBAL BOOLEAN IRC_SERVER( CLIENT *Client, REQUEST *Re
 		Client_SetHops( Client, 1 );
 		Client_SetInfo( Client, Req->argv[Req->argc - 1] );
 		
-		/* Meldet sich der Server bei uns an? */
-		if( Req->argc == 2 )
+		/* Meldet sich der Server bei uns an (d.h., bauen nicht wir
+		 * selber die Verbindung zu einem anderen Server auf)? */
+		if( Client_Token( Client ) != TOKEN_OUTBOUND )
 		{
-			/* Unseren SERVER- und PASS-Befehl senden */
+			/* Eingehende Verbindung: Unseren SERVER- und PASS-Befehl senden */
 			ok = TRUE;
 			if( ! IRC_WriteStrClient( Client, "PASS %s "PASSSERVERADD, Conf_Server[i].pwd )) ok = FALSE;
 			else ok = IRC_WriteStrClient( Client, "SERVER %s 1 :%s", Conf_ServerName, Conf_ServerInfo );
@@ -95,7 +96,12 @@ GLOBAL BOOLEAN IRC_SERVER( CLIENT *Client, REQUEST *Re
 			Client_SetIntroducer( Client, Client );
 			Client_SetToken( Client, 1 );
 		}
-		else  Client_SetToken( Client, atoi( Req->argv[1] ));
+		else
+		{
+			/* Ausgehende verbindung, SERVER und PASS wurden von uns bereits
+			 * an die Gegenseite uerbermittelt */
+			Client_SetToken( Client, atoi( Req->argv[1] ));
+		}
 
 		Log( LOG_NOTICE|LOG_snotice, "Server \"%s\" registered (connection %d, 1 hop - direct link).", Client_ID( Client ), Client_Conn( Client ));
 
blob - 3cd528346307a15e800f379e940f65ce28cc6ba6
blob + bff68e50eec23ff2dc973b97b132c417c958120e
--- src/ngircd/ngircd.c
+++ src/ngircd/ngircd.c
@@ -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: ngircd.c,v 1.41.2.1 2002/04/01 17:05:00 alex Exp $
+ * $Id: ngircd.c,v 1.41.2.2 2002/04/08 18:07:42 alex Exp $
  *
  * ngircd.c: Hier beginnt alles ;-)
  */
@@ -21,6 +21,7 @@
 #include <assert.h>
 #include <errno.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <signal.h>
 #include <string.h>
 #include <unistd.h>