mirror of
				https://github.com/osmarks/ngircd.git
				synced 2025-10-31 05:52:59 +00:00 
			
		
		
		
	- Server identifizieren sich nun mit asyncronen Passwoertern.
This commit is contained in:
		| @@ -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: conf.c,v 1.37 2002/11/18 18:47:42 alex Exp $ | ||||
|  * $Id: conf.c,v 1.38 2002/11/19 12:50:20 alex Exp $ | ||||
|  * | ||||
|  * conf.h: Konfiguration des ngircd | ||||
|  */ | ||||
| @@ -138,7 +138,8 @@ Conf_Test( VOID ) | ||||
| 		printf( "  Name = %s\n", Conf_Server[i].name ); | ||||
| 		printf( "  Host = %s\n", Conf_Server[i].host ); | ||||
| 		printf( "  Port = %d\n", Conf_Server[i].port ); | ||||
| 		printf( "  Password = %s\n", Conf_Server[i].pwd ); | ||||
| 		printf( "  MyPassword = %s\n", Conf_Server[i].pwd_in ); | ||||
| 		printf( "  PeerPassword = %s\n", Conf_Server[i].pwd_out ); | ||||
| 		printf( "  Group = %d\n", Conf_Server[i].group ); | ||||
| 		puts( "" ); | ||||
| 	} | ||||
| @@ -248,7 +249,8 @@ Read_Config( VOID ) | ||||
| 					strcpy( Conf_Server[Conf_Server_Count].host, "" ); | ||||
| 					strcpy( Conf_Server[Conf_Server_Count].ip, "" ); | ||||
| 					strcpy( Conf_Server[Conf_Server_Count].name, "" ); | ||||
| 					strcpy( Conf_Server[Conf_Server_Count].pwd, "" ); | ||||
| 					strcpy( Conf_Server[Conf_Server_Count].pwd_in, "" ); | ||||
| 					strcpy( Conf_Server[Conf_Server_Count].pwd_out, "" ); | ||||
| 					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; | ||||
| @@ -492,11 +494,18 @@ Handle_SERVER( INT Line, CHAR *Var, CHAR *Arg ) | ||||
| 		Conf_Server[Conf_Server_Count - 1].name[CLIENT_ID_LEN - 1] = '\0'; | ||||
| 		return; | ||||
| 	} | ||||
| 	if( strcasecmp( Var, "Password" ) == 0 ) | ||||
| 	if( strcasecmp( Var, "MyPassword" ) == 0 ) | ||||
| 	{ | ||||
| 		/* Passwort des Servers */ | ||||
| 		strncpy( Conf_Server[Conf_Server_Count - 1].pwd, Arg, CLIENT_PASS_LEN - 1 ); | ||||
| 		Conf_Server[Conf_Server_Count - 1].pwd[CLIENT_PASS_LEN - 1] = '\0'; | ||||
| 		/* Passwort dieses Servers, welches empfangen werden muss */ | ||||
| 		strncpy( Conf_Server[Conf_Server_Count - 1].pwd_in, Arg, CLIENT_PASS_LEN - 1 ); | ||||
| 		Conf_Server[Conf_Server_Count - 1].pwd_in[CLIENT_PASS_LEN - 1] = '\0'; | ||||
| 		return; | ||||
| 	} | ||||
| 	if( strcasecmp( Var, "PeerPassword" ) == 0 ) | ||||
| 	{ | ||||
| 		/* Passwort des anderen Servers, welches gesendet werden muss */ | ||||
| 		strncpy( Conf_Server[Conf_Server_Count - 1].pwd_out, Arg, CLIENT_PASS_LEN - 1 ); | ||||
| 		Conf_Server[Conf_Server_Count - 1].pwd_out[CLIENT_PASS_LEN - 1] = '\0'; | ||||
| 		return; | ||||
| 	} | ||||
| 	if( strcasecmp( Var, "Port" ) == 0 ) | ||||
|   | ||||
| @@ -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: conf.h,v 1.20 2002/11/02 22:58:41 alex Exp $ | ||||
|  * $Id: conf.h,v 1.21 2002/11/19 12:50:20 alex Exp $ | ||||
|  * | ||||
|  * conf.h: Konfiguration des ngircd (Header) | ||||
|  */ | ||||
| @@ -34,7 +34,8 @@ typedef struct _Conf_Server | ||||
| 	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 */ | ||||
| 	CHAR pwd_in[CLIENT_PASS_LEN];	/* Passwort, welches erwartet wird */ | ||||
| 	CHAR pwd_out[CLIENT_PASS_LEN];	/* An die Gegenseite zu sendendes Passwort */ | ||||
| 	INT port;			/* Server-Port */ | ||||
| 	INT group;			/* Gruppe des Servers */ | ||||
| 	time_t lasttry;			/* Letzter Connect-Versuch */ | ||||
|   | ||||
| @@ -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.89 2002/11/11 00:54:25 alex Exp $ | ||||
|  * $Id: conn.c,v 1.90 2002/11/19 12:50:20 alex Exp $ | ||||
|  * | ||||
|  * connect.h: Verwaltung aller Netz-Verbindungen ("connections") | ||||
|  */ | ||||
| @@ -779,7 +779,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, NGIRCd_ProtoID ); | ||||
| 		Conn_WriteStr( Idx, "PASS %s %s", Conf_Server[My_Connections[Idx].our_server].pwd_out, NGIRCd_ProtoID ); | ||||
| 		return Conn_WriteStr( Idx, "SERVER %s :%s", Conf_ServerName, Conf_ServerInfo ); | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -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.19 2002/11/05 14:18:59 alex Exp $ | ||||
|  * $Id: irc-server.c,v 1.20 2002/11/19 12:50:20 alex Exp $ | ||||
|  * | ||||
|  * irc-server.c: IRC-Befehle fuer Server-Links | ||||
|  */ | ||||
| @@ -71,10 +71,10 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req ) | ||||
| 			Conn_Close( Client_Conn( Client ), NULL, "Server not configured here", TRUE ); | ||||
| 			return DISCONNECTED; | ||||
| 		} | ||||
| 		if( strcmp( Client_Password( Client ), Conf_Server[i].pwd ) != 0 ) | ||||
| 		if( strcmp( Client_Password( Client ), Conf_Server[i].pwd_in ) != 0 ) | ||||
| 		{ | ||||
| 			/* Falsches Passwort */ | ||||
| 			Log( LOG_ERR, "Connection %d: Bad password for server \"%s\"!", Client_Conn( Client ), Req->argv[0] ); | ||||
| 			Log( LOG_ERR, "Connection %d: Got bad password from server \"%s\"!", Client_Conn( Client ), Req->argv[0] ); | ||||
| 			Conn_Close( Client_Conn( Client ), NULL, "Bad password", TRUE ); | ||||
| 			return DISCONNECTED; | ||||
| 		} | ||||
| @@ -93,7 +93,7 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req ) | ||||
| 		{ | ||||
| 			/* Eingehende Verbindung: Unseren SERVER- und PASS-Befehl senden */ | ||||
| 			ok = TRUE; | ||||
| 			if( ! IRC_WriteStrClient( Client, "PASS %s %s", Conf_Server[i].pwd, NGIRCd_ProtoID )) ok = FALSE; | ||||
| 			if( ! IRC_WriteStrClient( Client, "PASS %s %s", Conf_Server[i].pwd_out, NGIRCd_ProtoID )) ok = FALSE; | ||||
| 			else ok = IRC_WriteStrClient( Client, "SERVER %s 1 :%s", Conf_ServerName, Conf_ServerInfo ); | ||||
| 			if( ! ok ) | ||||
| 			{ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Alexander Barton
					Alexander Barton