commit - 684e50f0a4d827965b61c4b9feeda403ec3c3b87
commit + aa7db2c0e9e1112591cbdb3d346342d34ca21a6a
blob - 1b356848090b835772db30921d8764c87da39869
blob + 9861a0dbb61962e5f6814377d1db21e79ad6f4e4
--- 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_CloakModeHost ? Conf_CloakModeHost : Client_ID(Client->introducer));
return Mask_Buffer;
} /* Client_MaskCloaked */
blob - f274eb826391dd3c0975383f77c48963a64ef4c1
blob + 2a259eb43440d1c453190392ef890be49dfa9349
--- 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(" CloakModeHost = %s\n", Conf_CloakModeHost);
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_CloakModeHost, "");
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, "CloakModeHost") == 0) {
+ len = strlcpy(Conf_CloakModeHost, Arg, sizeof(Conf_CloakModeHost));
+ if (len >= sizeof(Conf_CloakModeHost))
Config_Error_TooLong(Line, Var);
return;
}
blob - be19afc692f000cb3a530f3f5468bfb03cf79c19
blob + 171a838a4c2d9d951e1182e0c56c5cbea0308220
--- 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_CloakModeHost[CLIENT_ID_LEN];
+
/** Use nick name as user name? */
GLOBAL bool Conf_CloakUserToNick;