X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=include%2Fclient.h;h=4fb584c3cb827defe72c2c6d464baf1943e5514a;hb=e22c93b27e9f501b7869b310dff7df384e06f7e6;hp=7110dd09e4a07e9252fdc3b837f418886c81a3e0;hpb=7fbb742f7d849cb57b23f2a76d90950174094719;p=ircu2.10.12-pk.git diff --git a/include/client.h b/include/client.h index 7110dd0..4fb584c 100644 --- a/include/client.h +++ b/include/client.h @@ -90,7 +90,7 @@ typedef unsigned long flagpage_t; #define FlagClr(set,flag) ((set)->bits[FLAGSET_INDEX(flag)] &= ~FLAGSET_MASK(flag)) /** String containing valid user modes, in no particular order. */ -#define infousermodes "dioswkgx" +#define infousermodes "diOoswkgx" /** Operator privileges. */ enum Priv @@ -317,6 +317,8 @@ struct Client { #define cli_username(cli) ((cli)->cli_username) /** Get client realname (information field). */ #define cli_info(cli) ((cli)->cli_info) +/** Get client account string. */ +#define cli_account(cli) (cli_user(cli) ? cli_user(cli)->account : "0") /** Get number of incoming bytes queued for client. */ #define cli_count(cli) con_count(cli_connect(cli)) @@ -556,7 +558,7 @@ struct Client { /** Return non-zero if the client caused a net.burst. */ #define IsJunction(x) HasFlag(x, FLAG_JUNCTION) /** Return non-zero if the client has set mode +O (local operator) locally. */ -#define IsLocOp(x) (MyUser(x) && HasFlag(x, FLAG_LOCOP)) +#define IsLocOp(x) (MyConnect(x) && HasFlag(x, FLAG_LOCOP)) /** Return non-zero if the client has set mode +o (global operator). */ #define IsOper(x) HasFlag(x, FLAG_OPER) /** Return non-zero if the client has an active UDP ping request. */ @@ -713,7 +715,7 @@ struct Client { #define SNO_NOISY (SNO_SERVKILL|SNO_UNAUTH) /** Test whether a privilege has been granted to a client. */ -#define HasPriv(cli, priv) FlagHas(cli_privs(cli), priv) +#define HasPriv(cli, priv) FlagHas(client_get_privs(cli), priv) /** Grant a privilege to a client. */ #define SetPriv(cli, priv) FlagSet(cli_privs(cli), priv) /** Revoke a privilege from a client. */ @@ -736,5 +738,7 @@ extern void client_add_sendq(struct Connection* con, extern void client_set_privs(struct Client *client, struct ConfItem *oper); extern int client_report_privs(struct Client* to, struct Client* client); +extern int client_get_privs(struct Client* client); + #endif /* INCLUDED_client_h */