X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/9291987bba2e61795ad1603541641caae0591676..48811aebd5d28aa2a1de81993d76d205b51a392d:/include/privilege.h diff --git a/include/privilege.h b/include/privilege.h index b033839..46d5cd9 100644 --- a/include/privilege.h +++ b/include/privilege.h @@ -31,6 +31,7 @@ typedef enum { } PrivilegeFlags; struct PrivilegeSet { + unsigned int status; /* If CONF_ILLEGAL, delete when no refs */ int refs; char *name; char *privs; @@ -40,8 +41,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