/* Now print all clients which are not in any channel */
c = Client_First();
- snprintf(rpl, sizeof(rpl), RPL_NAMREPLY_MSG, Client_ID(from), "*", "*");
+ snprintf(rpl, sizeof(rpl), RPL_NAMREPLY_MSG, Client_ID(from), '*', "*");
while (c) {
if (Client_Type(c) == CLIENT_USER
&& Channel_FirstChannelOf(c) == NULL
strlcat(rpl, Client_ID(c), sizeof(rpl));
if (strlen(rpl) > COMMAND_LEN - CLIENT_NICK_LEN - 4) {
- /* Line is gwoing too long, send now */
+ /* Line is going too long, send now */
if (!IRC_WriteStrClient(from, "%s", rpl))
return DISCONNECTED;
snprintf(rpl, sizeof(rpl), RPL_NAMREPLY_MSG,
- Client_ID(from), "*", "*");
+ Client_ID(from), '*', "*");
}
}
c = Client_Next(c);
char str[COMMAND_LEN];
CL2CHAN *cl2chan;
CLIENT *cl;
+ bool secret_channel;
+ char chan_symbol;
assert(Client != NULL);
assert(Chan != NULL);
return CONNECTED;
/* Secret channel? */
- if (!is_member && Channel_HasMode(Chan, 's'))
+ secret_channel = Channel_HasMode(Chan, 's');
+ if (!is_member && secret_channel)
return CONNECTED;
- snprintf(str, sizeof(str), RPL_NAMREPLY_MSG, Client_ID(Client), "=",
+ chan_symbol = secret_channel ? '@' : '=';
+
+ snprintf(str, sizeof(str), RPL_NAMREPLY_MSG, Client_ID(Client), chan_symbol,
Channel_Name(Chan));
cl2chan = Channel_FirstMember(Chan);
while (cl2chan) {
if (!IRC_WriteStrClient(Client, "%s", str))
return DISCONNECTED;
snprintf(str, sizeof(str), RPL_NAMREPLY_MSG,
- Client_ID(Client), "=",
+ Client_ID(Client), chan_symbol,
Channel_Name(Chan));
}
}
#define RPL_ENDOFEXCEPTLIST_MSG "349 %s %s :End of channel exception list"
#define RPL_VERSION_MSG "351 %s %s-%s.%s %s :%s"
#define RPL_WHOREPLY_MSG "352 %s %s %s %s %s %s %s :%d %s"
-#define RPL_NAMREPLY_MSG "353 %s %s %s :"
+#define RPL_NAMREPLY_MSG "353 %s %c %s :"
#define RPL_LINKS_MSG "364 %s %s %s :%d %s"
#define RPL_ENDOFLINKS_MSG "365 %s %s :End of LINKS list"
#define RPL_ENDOFNAMES_MSG "366 %s %s :End of NAMES list"