- already = Lists_CheckDupeMask(Channel_GetListInvites(Channel), mask);
- if (!already) {
- if (what == 'I')
- ret = Channel_AddInvite(Channel, mask, false);
- else
- ret = Channel_AddBan(Channel, mask);
- if (!ret)
+ if (what == 'I')
+ list = Channel_GetListInvites(Channel);
+ else
+ list = Channel_GetListBans(Channel);
+
+ if (Lists_CheckDupeMask(list, mask))
+ return CONNECTED;
+ if (Client_Type(Client) == CLIENT_USER &&
+ Lists_Count(list) >= MAX_HNDL_CHANNEL_LISTS)
+ return IRC_WriteStrClient(Client, ERR_LISTFULL_MSG,
+ Client_ID(Client),
+ Channel_Name(Channel), mask,
+ MAX_HNDL_CHANNEL_LISTS);
+
+ if (what == 'I') {
+ if (!Channel_AddInvite(Channel, mask, false))
+ return CONNECTED;
+ } else {
+ if (!Channel_AddBan(Channel, mask))