[svn] Use mask_match() to check bans from local clients for
redundancy. This fixes the problem that bans like *!?@* prevent any ban starting with *!*@ being set.
This commit is contained in:
parent
df251055ca
commit
fd488ac17a
14
ChangeLog
14
ChangeLog
|
@ -1,3 +1,17 @@
|
|||
jilles 2007/07/14 13:32:18 UTC (20070714-3532)
|
||||
Log:
|
||||
Add mask_match(), like ircu mmatch().
|
||||
This compares two masks and returns whether the "new" is
|
||||
more specific than or equal to the "old". The difference
|
||||
with match() is that a '?' in "old" does not match a '*' in
|
||||
"new".
|
||||
|
||||
|
||||
Changes: Modified:
|
||||
+2 -0 trunk/include/irc_string.h (File Modified)
|
||||
+73 -0 trunk/src/match.c (File Modified)
|
||||
|
||||
|
||||
jilles 2007/07/14 12:20:48 UTC (20070714-3530)
|
||||
Log:
|
||||
add_id() for local client: do not collapse() the ban mask.
|
||||
|
|
|
@ -1 +1 @@
|
|||
#define SERNO "20070714-3530"
|
||||
#define SERNO "20070714-3532"
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
* USA
|
||||
*
|
||||
* $Id: chmode.c 3530 2007-07-14 12:20:48Z jilles $
|
||||
* $Id: chmode.c 3534 2007-07-14 13:34:50Z jilles $
|
||||
*/
|
||||
|
||||
#include "stdinc.h"
|
||||
|
@ -111,7 +111,7 @@ add_id(struct Client *source_p, struct Channel *chptr, const char *banid,
|
|||
DLINK_FOREACH(ptr, list->head)
|
||||
{
|
||||
actualBan = ptr->data;
|
||||
if(match(actualBan->banstr, realban))
|
||||
if(mask_match(actualBan->banstr, realban))
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue