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.
This commit is contained in:
Alexander Barton 2012-06-11 10:44:02 +02:00
commit bf5610a3b9
5 changed files with 32 additions and 2 deletions

View File

@ -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

View File

@ -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.

View File

@ -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 */

View File

@ -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
@ -1477,6 +1479,12 @@ 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, "CloakUserToNick") == 0) {
Conf_CloakUserToNick = Check_ArgIsTrue(Arg);
return;

View File

@ -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;