X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=ircd%2Fclient.c;h=16367d15af183655ecc2a65a37da4ed9d41db0e5;hp=b4d3afe8b3da73f304f7517c5e28dfe4a53286da;hb=3e86180fb32d5eab15c761b75ba3d4520ef23bac;hpb=c13fbd5384338be6c99d529db9b6ba787afcb1c0 diff --git a/ircd/client.c b/ircd/client.c index b4d3afe..16367d1 100644 --- a/ircd/client.c +++ b/ircd/client.c @@ -265,18 +265,18 @@ client_report_privs(struct Client *to, struct Client *client) return 0; } -int client_get_privs(struct Client* client) { - int privs = cli_privs(client); - - // add privs from class - struct SLink *list; - - for (list = cli_confs(cptr); list != NULL; list = list->next) { +int client_get_priv(struct Client* client, enum Priv priv) { + struct Privs *privs = &cli_privs(client); + struct SLink* list; + if(FlagHas(privs, priv)) + return 1; + + for (list = cli_confs(client); list != NULL; list = list->next) { struct ConfItem *aconf; aconf = list->value.aconf; - if (aconf->status & CONF_CLIENT) - privs |= aconf->privs; + if (FlagHas(&aconf->privs, priv)) + return 1; } - return privs; + return 0; }