X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fnickserv.h;h=322170e2825422abdfb1b805b17a7df2a0548c67;hb=c7ac1f35024b9921d892bb47e1a532baffaf9bf3;hp=4b75a9ebad0d0bf2993d2348189675aa3fd10918;hpb=da8cd3de6f2144016e9eeba741a138c6ac2663a7;p=srvx.git diff --git a/src/nickserv.h b/src/nickserv.h index 4b75a9e..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, @@ -71,19 +77,28 @@ struct handle_cookie { struct handle_info *hi; char *data; enum cookie_type type; - time_t expires; + unsigned long expires; char cookie[COOKIELEN+1]; }; struct handle_note { struct handle_note *next; - time_t expires; - time_t set; + unsigned long expires; + unsigned long set; int id; char setter[NICKSERV_HANDLE_LEN+1]; 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,19 +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; -#ifdef WITH_PROTOCOL_BAHAMUT + char *fakeident; unsigned long id; -#endif - time_t registered; - time_t lastseen; + 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; @@ -136,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. */