commit - 7bce6780ca0099f38efc801a7e613939cb90c99a
commit + bf5610a3b9ceef67da9777c5f4a72b9733124a33
blob - f696dc6de0a9d2335d20ded837ad4990f15367d2
blob + e8b2fb0df098088fa2ebfd082fbcae0525c0b4ef
--- doc/sample-ngircd.conf.tmpl
+++ doc/sample-ngircd.conf.tmpl
# 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
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
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
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));
#endif
strlcpy(Conf_Chroot, CHROOT_DIR, sizeof(Conf_Chroot));
strcpy(Conf_CloakHost, "");
+ strcpy(Conf_CloakHostModeX, "");
Conf_CloakUserToNick = false;
Conf_ConnectIPv4 = true;
#ifdef WANT_IPV6
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
/** 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;