commit bf5610a3b9ceef67da9777c5f4a72b9733124a33 from: Alexander Barton date: Mon Jun 11 08:44:28 2012 UTC Merge branch 'bug124-CloakHostModeX' * bug124-CloakHostModeX: Describe "CloakHostModeX" in sample-ngircd.conf an ngircd.conf(5) Rename "CloakModeHost" option to "CloakHostModeX" Introduce new configuration option "CloakModeHost" This closes bug #124. commit - 7bce6780ca0099f38efc801a7e613939cb90c99a commit + bf5610a3b9ceef67da9777c5f4a72b9733124a33 blob - f696dc6de0a9d2335d20ded837ad4990f15367d2 blob + e8b2fb0df098088fa2ebfd082fbcae0525c0b4ef --- doc/sample-ngircd.conf.tmpl +++ doc/sample-ngircd.conf.tmpl @@ -127,7 +127,13 @@ # Set this hostname for every client instead of the real one. # Please note: don't use the percentage sign ("%"), it is reserved for # future extensions! - ;CloakHost = irc.example.net + ;CloakHost = cloaked.host + + # Use this hostname for hostname cloaking on clients that have the + # user mode "+x" set, instead of the name of the server. + # Please note: don't use the percentage sign ("%"), it is reserved for + # future extensions! + ;CloakHostModeX = cloaked.user # Set every clients' user name to their nick name ;CloakUserToNick = yes blob - 85cf73ffb3083b1923f1470962fc8ce06f958757 blob + 0473206046296e8d57abf2d37405aa8f67f0e30d --- man/ngircd.conf.5.tmpl +++ man/ngircd.conf.5.tmpl @@ -220,6 +220,17 @@ don't change. Don't use the percentage sign ("%"), it is reserved for future extensions! .RE .TP +\fBCloakHostModeX\fR (string) +Use this hostname for hostname cloaking on clients that have the user mode +"+x" set, instead of the name of the server. Default: empty, use the name +of the server. +.PP +.RS +.B Please note: +.br +Don't use the percentage sign ("%"), it is reserved for future extensions! +.RE +.TP \fBCloakUserToNick\fR (boolean) Set every clients' user name to their nick name and hide the one supplied by the IRC client. Default: no. blob - 1b356848090b835772db30921d8764c87da39869 blob + e203cdd0e79df243089066d09a80eedec5355a46 --- src/ngircd/client.c +++ src/ngircd/client.c @@ -825,7 +825,9 @@ 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_CloakHostModeX ? Conf_CloakHostModeX + : Client_ID(Client->introducer)); return Mask_Buffer; } /* Client_MaskCloaked */ blob - f274eb826391dd3c0975383f77c48963a64ef4c1 blob + 5f7b24fcfdced17a4681d260f6546f4980c7481f --- 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(" CloakHostModeX = %s\n", Conf_CloakHostModeX); 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_CloakHostModeX, ""); 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, "CloakHostModeX") == 0) { + len = strlcpy(Conf_CloakHostModeX, Arg, sizeof(Conf_CloakHostModeX)); + if (len >= sizeof(Conf_CloakHostModeX)) Config_Error_TooLong(Line, Var); return; } blob - be19afc692f000cb3a530f3f5468bfb03cf79c19 blob + 86f00fe429b03a5ed99e68724f8b35b471bd83d0 --- 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_CloakHostModeX[CLIENT_ID_LEN]; + /** Use nick name as user name? */ GLOBAL bool Conf_CloakUserToNick;