X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=src%2Fngircd%2Fconf.c;h=36eff905ecce8b04b4cfd9e20371c78c72c52b4b;hp=54269009d1ee433bb537fa1c4ef140f34ea2cb57;hb=49385a98;hpb=1068f883779ad9b8bf3e1e1b8234781e4223761d diff --git a/src/ngircd/conf.c b/src/ngircd/conf.c index 54269009..36eff905 100644 --- a/src/ngircd/conf.c +++ b/src/ngircd/conf.c @@ -1,6 +1,6 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001-2011 Alexander Barton (alex@barton.de) and Contributors. + * Copyright (c)2001-2012 Alexander Barton (alex@barton.de) and Contributors. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -358,6 +358,8 @@ Conf_Test( void ) printf(" AllowRemoteOper = %s\n", yesno_to_str(Conf_AllowRemoteOper)); printf(" ChrootDir = %s\n", Conf_Chroot); printf(" CloakHost = %s\n", Conf_CloakHost); + printf(" CloakHostModeX = %s\n", Conf_CloakHostModeX); + printf(" CloakHostModeXSalt = %s\n", Conf_CloakHostModeXSalt); printf(" CloakUserToNick = %s\n", yesno_to_str(Conf_CloakUserToNick)); #ifdef WANT_IPV6 printf(" ConnectIPv4 = %s\n", yesno_to_str(Conf_ConnectIPv6)); @@ -492,6 +494,14 @@ Conf_SetServer( int ConfServer, CONN_ID Idx ) assert( ConfServer > NONE ); assert( Idx > NONE ); + if (Conf_Server[ConfServer].conn_id > NONE && + Conf_Server[ConfServer].conn_id != Idx) { + Log(LOG_ALERT, + "Trying to update connection index for already registered server \"%s\": %d/%d - ignored.", + Conf_Server[ConfServer].name, + Conf_Server[ConfServer].conn_id, Idx); + return; + } Conf_Server[ConfServer].conn_id = Idx; } @@ -643,6 +653,7 @@ static void Set_Defaults(bool InitServers) { int i; + char random[RANDOM_SALT_LEN]; /* Global */ strcpy(Conf_ServerName, ""); @@ -676,6 +687,8 @@ Set_Defaults(bool InitServers) #endif strlcpy(Conf_Chroot, CHROOT_DIR, sizeof(Conf_Chroot)); strcpy(Conf_CloakHost, ""); + strcpy(Conf_CloakHostModeX, ""); + strcpy(Conf_CloakHostModeXSalt,ngt_RandomStr(random,RANDOM_SALT_LEN)); Conf_CloakUserToNick = false; Conf_ConnectIPv4 = true; #ifdef WANT_IPV6 @@ -1469,6 +1482,18 @@ Handle_OPTIONS(int Line, char *Var, char *Arg) Config_Error_TooLong(Line, Var); return; } + if (strcasecmp(Var, "CloakHostModeX") == 0) { + len = strlcpy(Conf_CloakHostModeX, Arg, sizeof(Conf_CloakHostModeX)); + if (len >= sizeof(Conf_CloakHostModeX)) + Config_Error_TooLong(Line, Var); + return; + } + if (strcasecmp(Var, "CloakHostModeXSalt") == 0) { + len = strlcpy(Conf_CloakHostModeXSalt, Arg, sizeof(Conf_CloakHostModeXSalt)); + if (len >= sizeof(Conf_CloakHostModeX)) + Config_Error_TooLong(Line, Var); + return; + } if (strcasecmp(Var, "CloakUserToNick") == 0) { Conf_CloakUserToNick = Check_ArgIsTrue(Arg); return;