X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fnickserv.h;h=a37195fe2e27d40b5fdeba55bc2ca6de74ce62bc;hb=HEAD;hp=93579ff561b4fac4732d5fbb221e49df7f4b17f1;hpb=e4427641a86ef4b3d8336133db350ca359650ef2;p=srvx.git diff --git a/src/nickserv.h b/src/nickserv.h index 93579ff..a37195f 100644 --- a/src/nickserv.h +++ b/src/nickserv.h @@ -40,9 +40,11 @@ struct svccmd; #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 "SphgscfnHbxI" +#define HANDLE_FLAGS "SphgscfnHbxIoN" /* HI_STYLE_* go into handle_info.userlist_style */ #define HI_STYLE_DEF 'd' @@ -88,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; @@ -96,20 +107,22 @@ 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; char *handle; char *fakehost; char *fakeident; + unsigned int devnull_id; unsigned long id; unsigned long registered; unsigned long lastseen; 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; @@ -141,11 +154,14 @@ 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); +void nickserv_devnull_delete(unsigned int devnull_id); +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. */