]>
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 | ||
53 | /* Send command to all servers except one */ | |
54 | extern void sendcmdto_serv_butone(struct Client *from, const char *cmd, | |
55 | const char *tok, struct Client *one, | |
56 | const char *pattern, ...); | |
57 | ||
58 | /* Send command to all channels user is on */ | |
59 | extern void sendcmdto_common_channels_butone(struct Client *from, | |
60 | const char *cmd, | |
61 | const char *tok, | |
62 | struct Client *one, | |
63 | const char *pattern, ...); | |
64 | ||
65 | /* Send command to all channel users on this server */ | |
66 | extern void sendcmdto_channel_butserv_butone(struct Client *from, | |
67 | const char *cmd, | |
68 | const char *tok, | |
69 | struct Channel *to, | |
70 | struct Client *one, | |
71 | unsigned int skip, | |
72 | const char *pattern, ...); | |
73 | ||
74 | /* Send command to all servers interested in a channel */ | |
75 | extern void sendcmdto_channel_servers_butone(struct Client *from, | |
76 | const char *cmd, | |
77 | const char *tok, | |
78 | struct Channel *to, | |
79 | struct Client *one, | |
80 | unsigned int skip, | |
81 | const char *pattern, ...); | |
82 | ||
83 | /* Send command to all interested channel users */ | |
84 | extern void sendcmdto_channel_butone(struct Client *from, const char *cmd, | |
85 | const char *tok, struct Channel *to, | |
86 | struct Client *one, unsigned int skip, | |
87 | const char *pattern, ...); | |
88 | ||
89 | #define SKIP_DEAF 0x01 /**< skip users that are +d */ | |
90 | #define SKIP_BURST 0x02 /**< skip users that are bursting */ | |
91 | #define SKIP_NONOPS 0x04 /**< skip users that aren't chanops */ | |
92 | #define SKIP_NONVOICES 0x08 /**< skip users that aren't voiced (includes | |
93 | chanops) */ | |
94 | ||
95 | /* Send command to all users having a particular flag set */ | |
96 | extern void sendwallto_group_butone(struct Client *from, int type, | |
97 | struct Client *one, const char *pattern, | |
98 | ...); | |
99 | ||
100 | #define WALL_DESYNCH 1 /**< send as a DESYNCH message */ | |
101 | #define WALL_WALLOPS 2 /**< send to all +w opers */ | |
102 | #define WALL_WALLUSERS 3 /**< send to all +w users */ | |
103 | ||
104 | /* Send command to all matching clients */ | |
105 | extern void sendcmdto_match_butone(struct Client *from, const char *cmd, | |
106 | const char *tok, const char *to, | |
107 | struct Client *one, unsigned int who, | |
108 | const char *pattern, ...); | |
109 | ||
110 | /* Send server notice to opers but one--one can be NULL */ | |
111 | extern void sendto_opmask_butone(struct Client *one, unsigned int mask, | |
112 | const char *pattern, ...); | |
113 | ||
114 | /* Same as above, but rate limited */ | |
115 | extern void sendto_opmask_butone_ratelimited(struct Client *one, | |
116 | unsigned int mask, time_t *rate, | |
117 | const char *pattern, ...); | |
118 | ||
119 | /* Same as above, but with variable argument list */ | |
120 | extern void vsendto_opmask_butone(struct Client *one, unsigned int mask, | |
121 | const char *pattern, va_list vl); | |
122 | ||
123 | #endif /* INCLUDED_send_h */ |