;ChrootDir = /var/empty
# 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!
+ # Use %x to add the hashed value of the original hostname.
;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.
- # Use %x to add the hashed value of the original hostname
+ # Use %x to add the hashed value of the original hostname.
;CloakHostModeX = cloaked.user
- # The Salt for cloaked hostname hashing
- ;CloakHostModeXSalt = abcdefghijklmnopqrstuvwxyz
+ # The Salt for cloaked hostname hashing. When undefined a random
+ # hash is generated after each server start.
+ ;CloakHostSalt = abcdefghijklmnopqrstuvwxyz
# Set every clients' user name to their nick name
;CloakUserToNick = yes
.TP
\fBCloakHost\fR (string)
Set this hostname for every client instead of the real one. Default: empty,
-don't change.
-.PP
-.RS
-.B Please note:
-.br
-Don't use the percentage sign ("%"), it is reserved for future extensions!
-.RE
+don't change. Use %x to add the hashed value of the original hostname.
.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. Use %x to add the hashed value of the original hostname
.TP
-\fBCloakHostModeXSalt\fR (string)
-The Salt for cloaked hostname hashing
+\fBCloakHostSalt\fR (string)
+The Salt for cloaked hostname hashing. When undefined a random hash is
+generated after each server start.
.TP
\fBCloakUserToNick\fR (boolean)
Set every clients' user name to their nick name and hide the one supplied
assert(Hostname != NULL);
if (strlen(Conf_CloakHost)) {
+ char cloak[GETID_LEN];
+
+ strlcpy(cloak, Hostname, GETID_LEN);
+ strlcat(cloak, Conf_CloakHostSalt, GETID_LEN);
+ snprintf(cloak, GETID_LEN, Conf_CloakHost, Hash(cloak));
+
LogDebug("Updating hostname of \"%s\": \"%s\" -> \"%s\"",
- Client_ID(Client), Client->host, Conf_CloakHost);
- strlcpy(Client->host, Conf_CloakHost, sizeof(Client->host));
+ Client_ID(Client), Client->host, cloak);
+ strlcpy(Client->host, cloak, sizeof(Client->host));
} else {
LogDebug("Updating hostname of \"%s\": \"%s\" -> \"%s\"",
Client_ID(Client), Client->host, Hostname);
return Client_Mask(Client);
if(*Conf_CloakHostModeX) {
- snprintf(Mask_Buffer, GETID_LEN, "%s%s", Client->host, Conf_CloakHostModeXSalt);
- snprintf(Cloak_Buffer, GETID_LEN, Conf_CloakHostModeX, Hash(Mask_Buffer));
+ strlcpy(Cloak_Buffer, Client->host, GETID_LEN);
+ strlcat(Cloak_Buffer, Conf_CloakHostSalt, GETID_LEN);
+ snprintf(Cloak_Buffer, GETID_LEN, Conf_CloakHostModeX, Hash(Cloak_Buffer));
} else {
strncpy(Cloak_Buffer, Client_ID(Client->introducer), GETID_LEN);
}
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(" CloakHostSalt = %s\n", Conf_CloakHostSalt);
printf(" CloakUserToNick = %s\n", yesno_to_str(Conf_CloakUserToNick));
#ifdef WANT_IPV6
printf(" ConnectIPv4 = %s\n", yesno_to_str(Conf_ConnectIPv6));
strlcpy(Conf_Chroot, CHROOT_DIR, sizeof(Conf_Chroot));
strcpy(Conf_CloakHost, "");
strcpy(Conf_CloakHostModeX, "");
- strcpy(Conf_CloakHostModeXSalt,ngt_RandomStr(random,RANDOM_SALT_LEN));
+ strcpy(Conf_CloakHostSalt, ngt_RandomStr(random, RANDOM_SALT_LEN));
Conf_CloakUserToNick = false;
Conf_ConnectIPv4 = true;
#ifdef WANT_IPV6
Config_Error_TooLong(Line, Var);
return;
}
- if (strcasecmp(Var, "CloakHostModeXSalt") == 0) {
- len = strlcpy(Conf_CloakHostModeXSalt, Arg, sizeof(Conf_CloakHostModeXSalt));
- if (len >= sizeof(Conf_CloakHostModeX))
+ if (strcasecmp(Var, "CloakHostSalt") == 0) {
+ len = strlcpy(Conf_CloakHostSalt, Arg, sizeof(Conf_CloakHostSalt));
+ if (len >= sizeof(Conf_CloakHostSalt))
Config_Error_TooLong(Line, Var);
return;
}
/** Cloaked hostname for clients that did +x */
GLOBAL char Conf_CloakHostModeX[CLIENT_ID_LEN];
-/** Salt for hostname hash for clients that did +x */
-GLOBAL char Conf_CloakHostModeXSalt[CLIENT_ID_LEN];
+/** Salt for hostname hash for cloaked hostnames */
+GLOBAL char Conf_CloakHostSalt[CLIENT_ID_LEN];
/** Use nick name as user name? */
GLOBAL bool Conf_CloakUserToNick;