X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Fclient.c;h=cefbd3a3464617506cd4c9d2eb00fd87258de0fb;hb=49385a98b2878ae6f19dd0925e0dc90fcc3d6372;hp=e203cdd0e79df243089066d09a80eedec5355a46;hpb=bf5610a3b9ceef67da9777c5f4a72b9733124a33;p=ngircd-alex.git diff --git a/src/ngircd/client.c b/src/ngircd/client.c index e203cdd0..cefbd3a3 100644 --- a/src/ngircd/client.c +++ b/src/ngircd/client.c @@ -817,17 +817,24 @@ GLOBAL char * Client_MaskCloaked(CLIENT *Client) { static char Mask_Buffer[GETID_LEN]; + char Cloak_Buffer[GETID_LEN]; assert (Client != NULL); /* Is the client using cloaking at all? */ if (!Client_HasMode(Client, 'x')) - return Client_Mask(Client); + 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)); + } else { + strncpy(Cloak_Buffer, Client_ID(Client->introducer), GETID_LEN); + } snprintf(Mask_Buffer, GETID_LEN, "%s!%s@%s", - Client->id, Client->user, - *Conf_CloakHostModeX ? Conf_CloakHostModeX - : Client_ID(Client->introducer)); + Client->id, Client->user, Cloak_Buffer); + return Mask_Buffer; } /* Client_MaskCloaked */