commit - 33fae67579eeab31d7f96f9e53f0529f584b0b1f
commit + 21467c76f15a7773695ce3a37c7c843cb4682ac2
blob - f5139d07ebed78c68953bc56b19ed04424b9c884
blob + 6ec184a7caca3011eecae4697683fbaa4a4bbd77
--- src/ngircd/irc-info.c
+++ src/ngircd/irc-info.c
static bool
Show_MOTD_End(CLIENT *Client)
{
- return IRC_WriteStrClient( Client, RPL_ENDOFMOTD_MSG, Client_ID( Client ));
+ if (!IRC_WriteStrClient(Client, RPL_ENDOFMOTD_MSG, Client_ID(Client)))
+ return DISCONNECTED;
+
+ if (*Conf_CloakHost)
+ return IRC_WriteStrClient(Client, RPL_HOSTHIDDEN_MSG,
+ Client_ID(Client),
+ Client_Hostname(Client));
+
+ return CONNECTED;
}
#ifdef SSL_SUPPORT
blob - dc37ad00c83ed5dee4dbc047a6e8b1ce234484ff
blob + 71557201d8d938f4a5ff65416f50eb487f78333d
--- src/ngircd/irc-mode.c
+++ src/ngircd/irc-mode.c
{
char the_modes[COMMAND_LEN], x[2], *mode_ptr;
bool ok, set;
+ bool send_RPL_HOSTHIDDEN_MSG = false;
int mode_arg;
size_t len;
Client_ID(Origin));
else
x[0] = 'x';
+ send_RPL_HOSTHIDDEN_MSG = true;
break;
default:
if (Client_Type(Client) != CLIENT_SERVER) {
"MODE %s :%s",
Client_ID(Target),
the_modes);
+ if (send_RPL_HOSTHIDDEN_MSG)
+ IRC_WriteStrClient(Client, RPL_HOSTHIDDEN_MSG,
+ Client_ID(Client),
+ Client_HostnameCloaked(Client));
}
LogDebug("%s \"%s\": Mode change, now \"%s\".",
Client_TypeText(Target), Client_Mask(Target),
blob - 2cfd45dbf2529e1c54695bff07bd87f91b7e962a
blob + 4f3a397b2647eabc6fd6ed21f9aa31d776df69e9
--- src/ngircd/messages.h
+++ src/ngircd/messages.h
#define RPL_YOUREOPER_MSG "381 %s :You are now an IRC Operator"
#define RPL_YOURESERVICE_MSG "383 %s :You are service %s"
#define RPL_TIME_MSG "391 %s %s :%s"
+#define RPL_HOSTHIDDEN_MSG "396 %s %s :is your displayed hostname now"
#define ERR_NOSUCHNICK_MSG "401 %s %s :No such nick or channel name"
#define ERR_NOSUCHSERVER_MSG "402 %s %s :No such server"