6 #ifndef INCLUDED_s_user_h
7 #define INCLUDED_s_user_h
8 #ifndef INCLUDED_sys_types_h
10 #define INCLUDED_sys_types_h
25 * Minimum time between nick changes.
26 * (The first two changes are allowed quickly after another however).
32 * Minimum time between target changes.
33 * (MAXTARGETS are allowed simultaneously however).
34 * Its set to a power of 2 because we devide through it quite a lot.
36 #define TARGET_DELAY 128
38 /* return values for hunt_server() */
40 #define HUNTED_NOSUCH (-1) /* if the hunted server is not found */
41 #define HUNTED_ISME 0 /* if this server should execute the command */
42 #define HUNTED_PASS 1 /* if message passed onwards successfully */
44 /* used when sending to #mask or $mask */
46 #define MATCH_SERVER 1
49 #define COOKIE_VERIFIED 0xffffffff
51 extern struct SLink *opsarray[];
53 typedef void (*InfoFormatter)(struct Client* who, struct MsgBuf* buf);
58 extern struct User* make_user(struct Client *cptr);
59 extern void free_user(struct User *user);
60 extern int register_user(struct Client* cptr, struct Client* sptr,
61 const char* nick, char* username,
62 struct Gline *agline);
64 extern void user_count_memory(size_t* count_out, size_t* bytes_out);
66 extern int user_set_away(struct User* user, char* message);
67 extern int do_nick_name(char* nick);
68 extern int set_nick_name(struct Client* cptr, struct Client* sptr,
69 const char* nick, int parc, char* parv[]);
70 extern void send_umode_out(struct Client* cptr, struct Client* sptr, int old,
72 extern int whisper(struct Client* source, const char* nick,
73 const char* channel, const char* text, int is_notice);
74 extern void send_user_info(struct Client* to, char* names, int rpl,
76 extern int add_silence(struct Client* sptr, const char* mask);
78 extern int set_user_mode(struct Client *cptr, struct Client *sptr,
79 int parc, char *parv[]);
80 extern int is_silenced(struct Client *sptr, struct Client *acptr);
81 extern int hunt_server(int, struct Client *cptr, struct Client *sptr,
82 char *command, int server, int parc, char *parv[]);
83 extern int hunt_server_cmd(struct Client *from, const char *cmd,
84 const char *tok, struct Client *one,
85 int MustBeOper, const char *pattern, int server,
86 int parc, char *parv[]);
87 extern struct Client* next_client(struct Client* next, const char* ch);
88 extern char *umode_str(struct Client *cptr);
89 extern void send_umode(struct Client *cptr, struct Client *sptr, int old, int sendmask);
90 extern int del_silence(struct Client *sptr, char *mask);
91 extern void set_snomask(struct Client *, unsigned int, int);
92 extern int is_snomask(char *);
93 extern int check_target_limit(struct Client *sptr, void *target, const char *name,
95 extern void add_target(struct Client *sptr, void *target);
96 extern unsigned int umode_make_snomask(unsigned int oldmask, char *arg,
99 #define NAMES_ALL 1 /* List all users in channel */
100 #define NAMES_VIS 2 /* List only visible users in non-secret channels */
101 #define NAMES_EON 4 /* Add an 'End Of Names' reply to the end */
103 void do_names(struct Client* sptr, struct Channel* chptr, int filter);
105 #endif /* INCLUDED_s_user_h */