Req->argv[arg_arg][0] = '\0';
arg_arg++;
} else {
+#ifdef STRICT_RFC
+ /* Only send error message in "strict" mode,
+ * this is how ircd2.11 and others behave ... */
connected = IRC_WriteStrClient(Origin,
ERR_NEEDMOREPARAMS_MSG,
Client_ID(Origin), Req->command);
+#endif
goto chan_exit;
}
break;
Req->argv[arg_arg][0] = '\0';
arg_arg++;
} else {
+#ifdef STRICT_RFC
+ /* Only send error message in "strict" mode,
+ * this is how ircd2.11 and others behave ... */
connected = IRC_WriteStrClient(Origin,
ERR_NEEDMOREPARAMS_MSG,
Client_ID(Origin), Req->command);
+#endif
goto chan_exit;
}
break;
Req->argv[arg_arg][0] = '\0';
arg_arg++;
} else {
+#ifdef STRICT_RFC
+ /* Report an error to the client, when a user
+ * mode should be changed but no nickname is
+ * given. But don't do it when not in "strict"
+ * mode, because most other servers don't do
+ * it as well and some clients send "wired"
+ * MODE commands like "MODE #chan -ooo nick". */
connected = IRC_WriteStrClient(Origin,
ERR_NEEDMOREPARAMS_MSG,
Client_ID(Origin), Req->command);
+#endif
goto chan_exit;
}
break;
Add_To_List(char what, CLIENT *Prefix, CLIENT *Client, CHANNEL *Channel,
const char *Pattern)
{
- const char *mask;
+ char mask[MASK_LEN];
struct list_head *list = NULL;
long int current_count;
assert(Pattern != NULL);
assert(what == 'I' || what == 'b' || what == 'e');
- mask = Lists_MakeMask(Pattern);
+ Lists_MakeMask(Pattern, mask, sizeof(mask));
current_count = Lists_Count(Channel_GetListInvites(Channel))
+ Lists_Count(Channel_GetListExcepts(Channel))
+ Lists_Count(Channel_GetListBans(Channel));
Del_From_List(char what, CLIENT *Prefix, CLIENT *Client, CHANNEL *Channel,
const char *Pattern)
{
- const char *mask;
+ char mask[MASK_LEN];
struct list_head *list = NULL;
assert(Client != NULL);
assert(Pattern != NULL);
assert(what == 'I' || what == 'b' || what == 'e');
- mask = Lists_MakeMask(Pattern);
+ Lists_MakeMask(Pattern, mask, sizeof(mask));
switch (what) {
case 'I':