+ if (!Hostname) {
+ /* Generate new cloaked hostname */
+ if (*Conf_CloakHostModeX) {
+ strlcpy(Cloak_Buffer, Client->host,
+ sizeof(Cloak_Buffer));
+ strlcat(Cloak_Buffer, Conf_CloakHostSalt,
+ sizeof(Cloak_Buffer));
+ snprintf(Client->cloaked, CLIENT_HOST_LEN,
+ Conf_CloakHostModeX, Hash(Cloak_Buffer));
+ } else
+ strlcpy(Client->cloaked, Client_ID(Client->introducer),
+ CLIENT_HOST_LEN);
+ } else
+ strlcpy(Client->cloaked, Hostname, CLIENT_HOST_LEN);
+ LogDebug("Cloaked hostname of \"%s\" updated to \"%s\"",
+ Client_ID(Client), Client->cloaked);
+
+ /* Inform other servers in the network */
+ IRC_WriteStrServersPrefixFlag(Client_NextHop(Origin), Origin, 'M',
+ "METADATA %s cloakhost :%s",
+ Client_ID(Client), Client->cloaked);
+}