]>
Commit | Line | Data |
---|---|---|
189935b1 | 1 | /** @file send.h |
2 | * @brief Send messages to certain targets. | |
3 | * @version $Id: send.h,v 1.22 2004/12/16 03:28:51 entrope Exp $ | |
4 | */ | |
5 | #ifndef INCLUDED_send_h | |
6 | #define INCLUDED_send_h | |
7 | #ifndef INCLUDED_stdarg_h | |
8 | #include <stdarg.h> /* va_list */ | |
9 | #define INCLUDED_stdarg_h | |
10 | #endif | |
11 | #ifndef INCLUDED_time_h | |
12 | #include <time.h> /* time_t */ | |
13 | #define INCLUDED_time_h | |
14 | #endif | |
15 | ||
16 | struct Channel; | |
17 | struct Client; | |
18 | struct DBuf; | |
19 | struct MsgBuf; | |
20 | ||
21 | /* | |
22 | * Prototypes | |
23 | */ | |
24 | extern struct SLink *opsarray[]; | |
25 | ||
26 | extern void send_buffer(struct Client* to, struct MsgBuf* buf, int prio); | |
27 | ||
28 | extern void kill_highest_sendq(int servers_too); | |
29 | extern void flush_connections(struct Client* cptr); | |
30 | extern void send_queued(struct Client *to); | |
31 | ||
32 | /* Send a raw message to one client; USE ONLY IF YOU MUST SEND SOMETHING | |
33 | * WITHOUT A PREFIX! | |
34 | */ | |
35 | extern void sendrawto_one(struct Client *to, const char *pattern, ...); | |
36 | ||
37 | /* Send a command to one client */ | |
38 | extern void sendcmdto_one(struct Client *from, const char *cmd, | |
39 | const char *tok, struct Client *to, | |
40 | const char *pattern, ...); | |
41 | ||
42 | /* Same as above, except it puts the message on the priority queue */ | |
43 | extern void sendcmdto_prio_one(struct Client *from, const char *cmd, | |
44 | const char *tok, struct Client *to, | |
45 | const char *pattern, ...); | |
46 | ||
47 | /* Send command to servers by flags except one */ | |
48 | extern void sendcmdto_flag_serv_butone(struct Client *from, const char *cmd, | |
49 | const char *tok, struct Client *one, | |
50 | int require, int forbid, | |
51 | const char *pattern, ...); | |
52 | ||
49f8e96a | 53 | /* Send command to servers by flag arrays except one */ |
54 | void sendcmdto_flagarray_serv_butone(struct Client *from, const char *cmd, | |
55 | const char *tok, struct Client *one, | |
56 | int *require, unsigned int requiresize, | |
57 | int *forbid, unsigned int forbidsize, | |
58 | const char *pattern, ...); | |
59 | ||
189935b1 | 60 | /* Send command to all servers except one */ |
61 | extern void sendcmdto_serv_butone(struct Client *from, const char *cmd, | |
62 | const char *tok, struct Client *one, | |
63 | const char *pattern, ...); | |
64 | ||
65 | /* Send command to all channels user is on */ | |
66 | extern void sendcmdto_common_channels_butone(struct Client *from, | |
67 | const char *cmd, | |
68 | const char *tok, | |
69 | struct Client *one, | |
70 | const char *pattern, ...); | |
71 | ||
72 | /* Send command to all channel users on this server */ | |
73 | extern void sendcmdto_channel_butserv_butone(struct Client *from, | |
74 | const char *cmd, | |
75 | const char *tok, | |
76 | struct Channel *to, | |
77 | struct Client *one, | |
78 | unsigned int skip, | |
79 | const char *pattern, ...); | |
80 | ||
81 | /* Send command to all servers interested in a channel */ | |
82 | extern void sendcmdto_channel_servers_butone(struct Client *from, | |
83 | const char *cmd, | |
84 | const char *tok, | |
85 | struct Channel *to, | |
86 | struct Client *one, | |
87 | unsigned int skip, | |
88 | const char *pattern, ...); | |
89 | ||
90 | /* Send command to all interested channel users */ | |
91 | extern void sendcmdto_channel_butone(struct Client *from, const char *cmd, | |
92 | const char *tok, struct Channel *to, | |
93 | struct Client *one, unsigned int skip, | |
94 | const char *pattern, ...); | |
95 | ||
96 | #define SKIP_DEAF 0x01 /**< skip users that are +d */ | |
97 | #define SKIP_BURST 0x02 /**< skip users that are bursting */ | |
98 | #define SKIP_NONOPS 0x04 /**< skip users that aren't chanops */ | |
99 | #define SKIP_NONVOICES 0x08 /**< skip users that aren't voiced (includes | |
100 | chanops) */ | |
101 | ||
102 | /* Send command to all users having a particular flag set */ | |
103 | extern void sendwallto_group_butone(struct Client *from, int type, | |
104 | struct Client *one, const char *pattern, | |
105 | ...); | |
106 | ||
107 | #define WALL_DESYNCH 1 /**< send as a DESYNCH message */ | |
108 | #define WALL_WALLOPS 2 /**< send to all +w opers */ | |
109 | #define WALL_WALLUSERS 3 /**< send to all +w users */ | |
110 | ||
111 | /* Send command to all matching clients */ | |
112 | extern void sendcmdto_match_butone(struct Client *from, const char *cmd, | |
113 | const char *tok, const char *to, | |
114 | struct Client *one, unsigned int who, | |
115 | const char *pattern, ...); | |
116 | ||
117 | /* Send server notice to opers but one--one can be NULL */ | |
118 | extern void sendto_opmask_butone(struct Client *one, unsigned int mask, | |
119 | const char *pattern, ...); | |
120 | ||
121 | /* Same as above, but rate limited */ | |
122 | extern void sendto_opmask_butone_ratelimited(struct Client *one, | |
123 | unsigned int mask, time_t *rate, | |
124 | const char *pattern, ...); | |
125 | ||
126 | /* Same as above, but with variable argument list */ | |
127 | extern void vsendto_opmask_butone(struct Client *one, unsigned int mask, | |
128 | const char *pattern, va_list vl); | |
129 | ||
130 | #endif /* INCLUDED_send_h */ |