Commit Diff


commit - 33fae67579eeab31d7f96f9e53f0529f584b0b1f
commit + 21467c76f15a7773695ce3a37c7c843cb4682ac2
blob - f5139d07ebed78c68953bc56b19ed04424b9c884
blob + 6ec184a7caca3011eecae4697683fbaa4a4bbd77
--- src/ngircd/irc-info.c
+++ src/ngircd/irc-info.c
@@ -1483,7 +1483,15 @@ Show_MOTD_Sendline(CLIENT *Client, const char *msg)
 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
@@ -138,6 +138,7 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Ori
 {
 	char the_modes[COMMAND_LEN], x[2], *mode_ptr;
 	bool ok, set;
+	bool send_RPL_HOSTHIDDEN_MSG = false;
 	int mode_arg;
 	size_t len;
 
@@ -279,6 +280,7 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Ori
 							Client_ID(Origin));
 			else
 				x[0] = 'x';
+				send_RPL_HOSTHIDDEN_MSG = true;
 			break;
 		default:
 			if (Client_Type(Client) != CLIENT_SERVER) {
@@ -348,6 +350,10 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Ori
 						  "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
@@ -96,6 +96,7 @@
 #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"