From d772acf9d6851307a31795870078352ccb6574d2 Mon Sep 17 00:00:00 2001 From: Alexander Barton Date: Mon, 8 Apr 2002 18:07:42 +0000 Subject: [PATCH 1/1] - Backports aus CVS HEAD-Tree. --- src/ngircd/conn.c | 3 ++- src/ngircd/defines.h | 8 +++++--- src/ngircd/irc-login.c | 16 ++++++++++++---- src/ngircd/irc-mode.h | 4 ++-- src/ngircd/irc-oper.c | 3 ++- src/ngircd/irc-server.c | 16 +++++++++++----- src/ngircd/ngircd.c | 3 ++- 7 files changed, 36 insertions(+), 17 deletions(-) diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c index d3df6ce6..29ebc001 100644 --- a/src/ngircd/conn.c +++ b/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; diff --git a/src/ngircd/defines.h b/src/ngircd/defines.h index c10c3dc0..acdeea3e 100644 --- a/src/ngircd/defines.h +++ b/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,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 diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c index 1547e038..fc27e73e 100644 --- a/src/ngircd/irc-login.c +++ b/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] ); diff --git a/src/ngircd/irc-mode.h b/src/ngircd/irc-mode.h index c3b30b30..cf863183 100644 --- a/src/ngircd/irc-mode.h +++ b/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- */ diff --git a/src/ngircd/irc-oper.c b/src/ngircd/irc-oper.c index 96501594..4a58d026 100644 --- a/src/ngircd/irc-oper.c +++ b/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 +#include #include "ngircd.h" #include "conf.h" diff --git a/src/ngircd/irc-server.c b/src/ngircd/irc-server.c index 743824c0..827bc39b 100644 --- a/src/ngircd/irc-server.c +++ b/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 *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 )); diff --git a/src/ngircd/ngircd.c b/src/ngircd/ngircd.c index 3cd52834..bff68e50 100644 --- a/src/ngircd/ngircd.c +++ b/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 #include #include +#include #include #include #include -- 2.39.2