]> arthur.barton.de Git - ngircd.git/commitdiff
- Backports aus CVS HEAD-Tree.
authorAlexander Barton <alex@barton.de>
Mon, 8 Apr 2002 18:07:42 +0000 (18:07 +0000)
committerAlexander Barton <alex@barton.de>
Mon, 8 Apr 2002 18:07:42 +0000 (18:07 +0000)
src/ngircd/conn.c
src/ngircd/defines.h
src/ngircd/irc-login.c
src/ngircd/irc-mode.h
src/ngircd/irc-oper.c
src/ngircd/irc-server.c
src/ngircd/ngircd.c

index d3df6ce687e1eb0f146b0fb4a76b84905502e2c8..29ebc0015de344933818994efd07af4813d796f5 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.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;
index c10c3dc07a4ddd0128070f4da4bcf4c164605792..acdeea3e07887b50b95a443172f1c124f98dc7d3 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: 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                  /* 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,6 +75,8 @@
 
 #define MAX_LOG_MSG_LEN 256            /* max. Laenge einer Log-Meldung */
 
+#define TOKEN_OUTBOUND -2              /* Kennzeichnung fuer ausgehende Server-Links im Aufbau */
+
 
 #endif
 
index 1547e038dc253eda9be8b9bea7858cee27b0e676..fc27e73e71e0b422baca96dbe5801badd7c65825 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: 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] );
index c3b30b30fa8029235378762ba8d5111037e8c234..cf863183b5f63c0ec7c9a192cea48b4f1c8a7b90 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: 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- */
index 965015943d068c02046cb4795899f930d4a47f2f..4a58d026e8a1bf85f9a0a53a6710d711ac92b387 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: 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"
index 743824c092272dad3f4070631fb6de88118e313e..827bc39bc49280f0a8f4ef9c1a6978e4fce35ae6 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: 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 *Req )
                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 *Req )
                        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 ));
 
index 3cd528346307a15e800f379e940f65ce28cc6ba6..bff68e50eec23ff2dc973b97b132c417c958120e 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: 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>