mirror of
https://github.com/osmarks/ngircd.git
synced 2025-01-19 12:02:52 +00:00
Fix "MAXLIST=beI:50": the limit is the sum of all lists
"Modes which are specified in the same pair share the same maximum size", so "beI:50" means a total of 50 entries, regardless of the list. See <http://www.irc.org/tech_docs/draft-brocklesby-irc-isupport-03.txt>, thanks to Cahata for reporting this!
This commit is contained in:
parent
8c46067b34
commit
b6f19ea8fe
@ -857,6 +857,7 @@ Add_To_List(char what, CLIENT *Prefix, CLIENT *Client, CHANNEL *Channel,
|
|||||||
{
|
{
|
||||||
const char *mask;
|
const char *mask;
|
||||||
struct list_head *list;
|
struct list_head *list;
|
||||||
|
long int current_count;
|
||||||
|
|
||||||
assert(Client != NULL);
|
assert(Client != NULL);
|
||||||
assert(Channel != NULL);
|
assert(Channel != NULL);
|
||||||
@ -864,6 +865,9 @@ Add_To_List(char what, CLIENT *Prefix, CLIENT *Client, CHANNEL *Channel,
|
|||||||
assert(what == 'I' || what == 'b' || what == 'e');
|
assert(what == 'I' || what == 'b' || what == 'e');
|
||||||
|
|
||||||
mask = Lists_MakeMask(Pattern);
|
mask = Lists_MakeMask(Pattern);
|
||||||
|
current_count = Lists_Count(Channel_GetListInvites(Channel))
|
||||||
|
+ Lists_Count(Channel_GetListExcepts(Channel))
|
||||||
|
+ Lists_Count(Channel_GetListBans(Channel));
|
||||||
|
|
||||||
switch(what) {
|
switch(what) {
|
||||||
case 'I':
|
case 'I':
|
||||||
@ -880,7 +884,7 @@ Add_To_List(char what, CLIENT *Prefix, CLIENT *Client, CHANNEL *Channel,
|
|||||||
if (Lists_CheckDupeMask(list, mask))
|
if (Lists_CheckDupeMask(list, mask))
|
||||||
return CONNECTED;
|
return CONNECTED;
|
||||||
if (Client_Type(Client) == CLIENT_USER &&
|
if (Client_Type(Client) == CLIENT_USER &&
|
||||||
Lists_Count(list) >= MAX_HNDL_CHANNEL_LISTS)
|
current_count >= MAX_HNDL_CHANNEL_LISTS)
|
||||||
return IRC_WriteStrClient(Client, ERR_LISTFULL_MSG,
|
return IRC_WriteStrClient(Client, ERR_LISTFULL_MSG,
|
||||||
Client_ID(Client),
|
Client_ID(Client),
|
||||||
Channel_Name(Channel), mask,
|
Channel_Name(Channel), mask,
|
||||||
|
Loading…
Reference in New Issue
Block a user