commit aa7db2c0e9e1112591cbdb3d346342d34ca21a6a from: Christoph Biedl via: Alexander Barton date: Fri Jun 08 23:58:25 2012 UTC Introduce new configuration option "CloakModeHost" This closes bug #124. commit - 684e50f0a4d827965b61c4b9feeda403ec3c3b87 commit + aa7db2c0e9e1112591cbdb3d346342d34ca21a6a blob - 1b356848090b835772db30921d8764c87da39869 blob + 9861a0dbb61962e5f6814377d1db21e79ad6f4e4 --- src/ngircd/client.c +++ src/ngircd/client.c @@ -825,7 +825,8 @@ Client_MaskCloaked(CLIENT *Client) return Client_Mask(Client); snprintf(Mask_Buffer, GETID_LEN, "%s!%s@%s", - Client->id, Client->user, Client_ID(Client->introducer)); + Client->id, Client->user, + *Conf_CloakModeHost ? Conf_CloakModeHost : Client_ID(Client->introducer)); return Mask_Buffer; } /* Client_MaskCloaked */ blob - f274eb826391dd3c0975383f77c48963a64ef4c1 blob + 2a259eb43440d1c453190392ef890be49dfa9349 --- src/ngircd/conf.c +++ src/ngircd/conf.c @@ -358,6 +358,7 @@ 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(" CloakModeHost = %s\n", Conf_CloakModeHost); printf(" CloakUserToNick = %s\n", yesno_to_str(Conf_CloakUserToNick)); #ifdef WANT_IPV6 printf(" ConnectIPv4 = %s\n", yesno_to_str(Conf_ConnectIPv6)); @@ -684,6 +685,7 @@ Set_Defaults(bool InitServers) #endif strlcpy(Conf_Chroot, CHROOT_DIR, sizeof(Conf_Chroot)); strcpy(Conf_CloakHost, ""); + strcpy(Conf_CloakModeHost, ""); Conf_CloakUserToNick = false; Conf_ConnectIPv4 = true; #ifdef WANT_IPV6 @@ -1474,6 +1476,12 @@ Handle_OPTIONS(int Line, char *Var, char *Arg) if (strcasecmp(Var, "CloakHost") == 0) { len = strlcpy(Conf_CloakHost, Arg, sizeof(Conf_CloakHost)); if (len >= sizeof(Conf_CloakHost)) + Config_Error_TooLong(Line, Var); + return; + } + if (strcasecmp(Var, "CloakModeHost") == 0) { + len = strlcpy(Conf_CloakModeHost, Arg, sizeof(Conf_CloakModeHost)); + if (len >= sizeof(Conf_CloakModeHost)) Config_Error_TooLong(Line, Var); return; } blob - be19afc692f000cb3a530f3f5468bfb03cf79c19 blob + 171a838a4c2d9d951e1182e0c56c5cbea0308220 --- src/ngircd/conf.h +++ src/ngircd/conf.h @@ -166,6 +166,9 @@ GLOBAL bool Conf_AllowRemoteOper; /** Cloaked hostname of the clients */ GLOBAL char Conf_CloakHost[CLIENT_ID_LEN]; +/** Cloaked hostname for clients that did +x */ +GLOBAL char Conf_CloakModeHost[CLIENT_ID_LEN]; + /** Use nick name as user name? */ GLOBAL bool Conf_CloakUserToNick;