Introduce numeric RPL_HOSTHIDDEN_MSG(396)

This numeric is sent to the client each time it changes its displayed
hostname using "MODE +/-x", and if "CloakHost" is set right after the
MOTD has been sent.
This commit is contained in:
Alexander Barton 2012-08-28 23:28:56 +02:00
parent 33fae67579
commit 21467c76f1
3 changed files with 16 additions and 1 deletions

View File

@ -1483,7 +1483,15 @@ Show_MOTD_Sendline(CLIENT *Client, const char *msg)
static bool static bool
Show_MOTD_End(CLIENT *Client) 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 #ifdef SSL_SUPPORT

View File

@ -138,6 +138,7 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CLIENT *Target )
{ {
char the_modes[COMMAND_LEN], x[2], *mode_ptr; char the_modes[COMMAND_LEN], x[2], *mode_ptr;
bool ok, set; bool ok, set;
bool send_RPL_HOSTHIDDEN_MSG = false;
int mode_arg; int mode_arg;
size_t len; size_t len;
@ -279,6 +280,7 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CLIENT *Target )
Client_ID(Origin)); Client_ID(Origin));
else else
x[0] = 'x'; x[0] = 'x';
send_RPL_HOSTHIDDEN_MSG = true;
break; break;
default: default:
if (Client_Type(Client) != CLIENT_SERVER) { if (Client_Type(Client) != CLIENT_SERVER) {
@ -348,6 +350,10 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CLIENT *Target )
"MODE %s :%s", "MODE %s :%s",
Client_ID(Target), Client_ID(Target),
the_modes); 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\".", LogDebug("%s \"%s\": Mode change, now \"%s\".",
Client_TypeText(Target), Client_Mask(Target), Client_TypeText(Target), Client_Mask(Target),

View File

@ -96,6 +96,7 @@
#define RPL_YOUREOPER_MSG "381 %s :You are now an IRC Operator" #define RPL_YOUREOPER_MSG "381 %s :You are now an IRC Operator"
#define RPL_YOURESERVICE_MSG "383 %s :You are service %s" #define RPL_YOURESERVICE_MSG "383 %s :You are service %s"
#define RPL_TIME_MSG "391 %s %s :%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_NOSUCHNICK_MSG "401 %s %s :No such nick or channel name"
#define ERR_NOSUCHSERVER_MSG "402 %s %s :No such server" #define ERR_NOSUCHSERVER_MSG "402 %s %s :No such server"