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;
struct handle_cookie *cookie;
struct handle_note *notes;
struct language *language;
+ struct authlogEntry *authlog;
char *website;
char *devnull;
char *email_addr;
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;
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. */