]>
Commit | Line | Data |
---|---|---|
189935b1 | 1 | /** @file s_user.h |
2 | * @brief Miscellaneous user-related helper functions. | |
9f8856e9 | 3 | * @version $Id: s_user.h,v 1.20.2.1 2006/02/16 03:49:54 entrope Exp $ |
189935b1 | 4 | */ |
5 | #ifndef INCLUDED_s_user_h | |
6 | #define INCLUDED_s_user_h | |
7 | #ifndef INCLUDED_sys_types_h | |
8 | #include <sys/types.h> | |
9 | #define INCLUDED_sys_types_h | |
10 | #endif | |
11 | ||
12 | struct Client; | |
13 | struct User; | |
14 | struct Channel; | |
15 | struct MsgBuf; | |
16 | struct Flags; | |
17 | ||
18 | /* | |
19 | * Macros | |
20 | */ | |
21 | ||
22 | /** | |
23 | * Nick flood limit. | |
24 | * Minimum time between nick changes. | |
25 | * (The first two changes are allowed quickly after another however). | |
26 | */ | |
27 | #define NICK_DELAY 30 | |
28 | ||
29 | /** | |
30 | * Target flood time. | |
31 | * Minimum time between target changes. | |
32 | * (MAXTARGETS are allowed simultaneously however). | |
33 | * Its set to a power of 2 because we devide through it quite a lot. | |
34 | */ | |
35 | #define TARGET_DELAY 128 | |
36 | ||
37 | /* return values for hunt_server() */ | |
38 | ||
39 | #define HUNTED_NOSUCH (-1) /**< if the hunted server is not found */ | |
40 | #define HUNTED_ISME 0 /**< if this server should execute the command */ | |
41 | #define HUNTED_PASS 1 /**< if message passed onwards successfully */ | |
42 | ||
43 | /* send sets for send_umode() */ | |
44 | #define ALL_UMODES 0 /**< both local and global user modes */ | |
45 | #define SEND_UMODES 1 /**< global user modes only */ | |
46 | #define SEND_UMODES_BUT_OPER 2 /**< global user modes except for FLAG_OPER */ | |
47 | ||
48 | /* used when sending to #mask or $mask */ | |
49 | ||
50 | #define MATCH_SERVER 1 /**< flag for relay_masked_message (etc) to indicate the mask matches a server name */ | |
51 | #define MATCH_HOST 2 /**< flag for relay_masked_message (etc) to indicate the mask matches host name */ | |
52 | ||
189935b1 | 53 | /** Formatter function for send_user_info(). |
54 | * @param who Client being displayed. | |
55 | * @param sptr Client requesting information. | |
56 | * @param buf Message buffer that should receive the response text. | |
57 | */ | |
58 | typedef void (*InfoFormatter)(struct Client* who, struct Client *sptr, struct MsgBuf* buf); | |
59 | ||
60 | /* | |
61 | * Prototypes | |
62 | */ | |
63 | extern struct User* make_user(struct Client *cptr); | |
64 | extern void free_user(struct User *user); | |
9f8856e9 | 65 | extern int register_user(struct Client* cptr, struct Client *sptr); |
189935b1 | 66 | |
67 | extern void user_count_memory(size_t* count_out, size_t* bytes_out); | |
68 | ||
69 | extern int set_nick_name(struct Client* cptr, struct Client* sptr, | |
70 | const char* nick, int parc, char* parv[]); | |
71 | extern void send_umode_out(struct Client* cptr, struct Client* sptr, | |
72 | struct Flags* old, int prop); | |
73 | extern int whisper(struct Client* source, const char* nick, | |
74 | const char* channel, const char* text, int is_notice); | |
75 | extern void send_user_info(struct Client* to, char* names, int rpl, | |
76 | InfoFormatter fmt); | |
77 | ||
78 | extern int hide_hostmask(struct Client *cptr, unsigned int flags); | |
79 | extern int set_user_mode(struct Client *cptr, struct Client *sptr, | |
80 | int parc, char *parv[]); | |
81 | extern int is_silenced(struct Client *sptr, struct Client *acptr); | |
82 | extern int hunt_server_cmd(struct Client *from, const char *cmd, | |
83 | const char *tok, struct Client *one, | |
84 | int MustBeOper, const char *pattern, int server, | |
85 | int parc, char *parv[]); | |
86 | extern int hunt_server_prio_cmd(struct Client *from, const char *cmd, | |
87 | const char *tok, struct Client *one, | |
88 | int MustBeOper, const char *pattern, | |
89 | int server, int parc, char *parv[]); | |
90 | extern struct Client* next_client(struct Client* next, const char* ch); | |
91 | extern char *umode_str(struct Client *cptr); | |
92 | extern void send_umode(struct Client *cptr, struct Client *sptr, | |
93 | struct Flags *old, int sendset); | |
94 | extern void set_snomask(struct Client *, unsigned int, int); | |
95 | extern int is_snomask(char *); | |
96 | extern int check_target_limit(struct Client *sptr, void *target, const char *name, | |
97 | int created); | |
98 | extern void add_target(struct Client *sptr, void *target); | |
99 | extern unsigned int umode_make_snomask(unsigned int oldmask, char *arg, | |
100 | int what); | |
101 | extern int send_supported(struct Client *cptr); | |
102 | ||
103 | #define NAMES_ALL 1 /**< List all users in channel */ | |
104 | #define NAMES_VIS 2 /**< List only visible users in non-secret channels */ | |
105 | #define NAMES_EON 4 /**< Add an 'End Of Names' reply to the end */ | |
106 | #define NAMES_DEL 8 /**< Show delayed joined users only */ | |
107 | ||
108 | void do_names(struct Client* sptr, struct Channel* chptr, int filter); | |
109 | ||
110 | #endif /* INCLUDED_s_user_h */ |