X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/9291987bba2e61795ad1603541641caae0591676..5f1fd8a5566704f5eec6b2323d070386ed19a214:/include/privilege.h diff --git a/include/privilege.h b/include/privilege.h index b033839..a3e5bff 100644 --- a/include/privilege.h +++ b/include/privilege.h @@ -26,11 +26,13 @@ #include "stdinc.h" -typedef enum { +enum { PRIV_NEEDOPER = 1 -} PrivilegeFlags; +}; +typedef unsigned int PrivilegeFlags; struct PrivilegeSet { + unsigned int status; /* If CONF_ILLEGAL, delete when no refs */ int refs; char *name; char *privs; @@ -40,8 +42,12 @@ struct PrivilegeSet { int privilegeset_in_set(struct PrivilegeSet *set, const char *priv); struct PrivilegeSet *privilegeset_set_new(const char *name, const char *privs, PrivilegeFlags flags); +struct PrivilegeSet *privilegeset_extend(struct PrivilegeSet *parent, const char *name, const char *privs, PrivilegeFlags flags); struct PrivilegeSet *privilegeset_get(const char *name); -void privilegeset_ref(struct PrivilegeSet *set); +struct PrivilegeSet *privilegeset_ref(struct PrivilegeSet *set); void privilegeset_unref(struct PrivilegeSet *set); +void privilegeset_mark_all_illegal(void); +void privilegeset_delete_all_illegal(void); +void privilegeset_report(struct Client *source_p); #endif