X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fnickserv.h;h=322170e2825422abdfb1b805b17a7df2a0548c67;hb=c7ac1f35024b9921d892bb47e1a532baffaf9bf3;hp=6d6bcd5eedc012daca005b5e4d13347509c20d0f;hpb=55dbd232d16ec5afa4cfd2e98388c58dcc93c928;p=srvx.git diff --git a/src/nickserv.h b/src/nickserv.h index 6d6bcd5..322170e 100644 --- a/src/nickserv.h +++ b/src/nickserv.h @@ -38,8 +38,13 @@ struct svccmd; #define HI_FLAG_NODELETE 0x00000080 #define HI_FLAG_NETWORK_HELPER 0x00000100 #define HI_FLAG_BOT 0x00000200 +#define HI_FLAG_AUTOHIDE 0x00000400 +#define HI_FLAG_INVI 0x00000800 +#define HI_FLAG_OPER 0x00001000 +#define HI_FLAG_NETWORK 0x00002000 + /* Flag characters for the above. First char is LSB, etc. */ -#define HANDLE_FLAGS "SphgscfnHb" +#define HANDLE_FLAGS "SphgscfnHbxIoN" /* HI_STYLE_* go into handle_info.userlist_style */ #define HI_STYLE_DEF 'd' @@ -59,6 +64,7 @@ struct svccmd; #define IsHelping(user) (user->handle_info && HANDLE_FLAGGED(user->handle_info, HELPING)) #define IsStaff(user) (IsOper(user) || IsSupportHelper(user) || IsNetworkHelper(user)) #define IsBot(user) (user->handle_info && HANDLE_FLAGGED(user->handle_info, BOT)) +#define IsInvi(user) (user->handle_info && HANDLE_FLAGGED(user->handle_info, INVI)) enum cookie_type { ACTIVATION, @@ -84,6 +90,15 @@ struct handle_note { char note[1]; }; +struct authlogEntry { + unsigned long login_time; + unsigned long logout_time; + const char *hostmask; + const char *quit_reason; + struct userNode *user; + struct authlogEntry *next; +}; + struct handle_info { struct nick_info *nicks; struct string_list *masks; @@ -92,6 +107,9 @@ struct handle_info { struct handle_cookie *cookie; struct handle_note *notes; struct language *language; + struct authlogEntry *authlog; + char *website; + char *devnull; char *email_addr; char *epithet; char *infoline; @@ -104,6 +122,7 @@ struct handle_info { int karma; unsigned short flags; unsigned short opserv_level; + unsigned short staff_level; unsigned short screen_width; unsigned short table_width; unsigned char userlist_style; @@ -135,7 +154,15 @@ struct nick_info *get_nick_info(const char *nick); struct modeNode *find_handle_in_channel(struct chanNode *channel, struct handle_info *handle, struct userNode *except); int nickserv_modify_handle_flags(struct userNode *user, struct userNode *bot, const char *str, unsigned long *add, unsigned long *remove); int oper_has_access(struct userNode *user, struct userNode *bot, unsigned int min_level, unsigned int quiet); +int staff_has_access(struct userNode *user, struct userNode *bot, unsigned int min_level, unsigned int quiet); void nickserv_show_oper_accounts(struct userNode *user, struct svccmd *cmd); +struct handle_info *checklogin(const char *user, const char *pass, const char *numeric, const char *hostmask, const char *ipmask); +char *getfakehost(const char *user); +void nickserv_devnull_delete(char *name); +void nickserv_devnull_rename(char *oldname, char *newname); +char *generate_fakehost(struct handle_info *handle); +char *generate_fakeident(struct handle_info *handle, struct userNode *user); +void apply_fakehost(struct handle_info *handle, struct userNode *user); /* auth_funcs are called when a user gets a new handle_info. They are * called *after* user->handle_info has been updated. */