/*
* Oper extban type: matches opers
* -- jilles
- *
- * $Id: extb_oper.c 1299 2006-05-11 15:43:03Z jilles $
*/
#include "stdinc.h"
(void)mode_type;
if (data != NULL)
- return IsOper(client_p) ? EXTBAN_MATCH : EXTBAN_NOMATCH;
+ {
+ struct PrivilegeSet *set = privilegeset_get(data);
+ if (set != NULL && client_p->localClient->privset == set)
+ return EXTBAN_MATCH;
- /* $o:admin or whatever */
- return HasPrivilege(client_p, data) ? EXTBAN_MATCH : EXTBAN_NOMATCH;
+ /* $o:admin or whatever */
+ return HasPrivilege(client_p, data) ? EXTBAN_MATCH : EXTBAN_NOMATCH;
+ }
+
+ return IsOper(client_p) ? EXTBAN_MATCH : EXTBAN_NOMATCH;
}