5 Author: Pekka Riikonen <priikone@silcnet.org>
7 Copyright (C) 1997 - 2002 Pekka Riikonen
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
26 int silc_server_packet_send_real(SilcServer server,
27 SilcSocketConnection sock,
29 void silc_server_packet_send(SilcServer server,
30 SilcSocketConnection sock,
32 SilcPacketFlags flags,
36 void silc_server_packet_send_dest(SilcServer server,
37 SilcSocketConnection sock,
39 SilcPacketFlags flags,
41 SilcIdType dst_id_type,
45 void silc_server_packet_send_srcdest(SilcServer server,
46 SilcSocketConnection sock,
48 SilcPacketFlags flags,
50 SilcIdType src_id_type,
52 SilcIdType dst_id_type,
56 void silc_server_packet_broadcast(SilcServer server,
57 SilcSocketConnection sock,
58 SilcPacketContext *packet);
59 void silc_server_packet_route(SilcServer server,
60 SilcSocketConnection sock,
61 SilcPacketContext *packet);
62 void silc_server_packet_send_clients(SilcServer server,
63 SilcHashTable clients,
65 SilcPacketFlags flags,
70 void silc_server_packet_send_to_channel(SilcServer server,
71 SilcSocketConnection sender,
72 SilcChannelEntry channel,
78 void silc_server_packet_relay_to_channel(SilcServer server,
79 SilcSocketConnection sender_sock,
80 SilcChannelEntry channel,
82 SilcIdType sender_type,
83 SilcClientEntry sender_entry,
87 void silc_server_packet_send_local_channel(SilcServer server,
88 SilcChannelEntry channel,
90 SilcPacketFlags flags,
94 void silc_server_send_private_message(SilcServer server,
95 SilcSocketConnection dst_sock,
99 SilcPacketContext *packet);
100 void silc_server_send_motd(SilcServer server,
101 SilcSocketConnection sock);
102 void silc_server_send_error(SilcServer server,
103 SilcSocketConnection sock,
104 const char *fmt, ...);
105 void silc_server_send_notify(SilcServer server,
106 SilcSocketConnection sock,
109 SilcUInt32 argc, ...);
110 void silc_server_send_notify_args(SilcServer server,
111 SilcSocketConnection sock,
116 void silc_server_send_notify_channel_change(SilcServer server,
117 SilcSocketConnection sock,
119 SilcChannelID *old_id,
120 SilcChannelID *new_id);
121 void silc_server_send_notify_nick_change(SilcServer server,
122 SilcSocketConnection sock,
124 SilcClientID *old_id,
125 SilcClientID *new_id,
126 const char *nickname);
127 void silc_server_send_notify_join(SilcServer server,
128 SilcSocketConnection sock,
130 SilcChannelEntry channel,
131 SilcClientID *client_id);
132 void silc_server_send_notify_leave(SilcServer server,
133 SilcSocketConnection sock,
135 SilcChannelEntry channel,
136 SilcClientID *client_id);
137 void silc_server_send_notify_cmode(SilcServer server,
138 SilcSocketConnection sock,
140 SilcChannelEntry channel,
141 SilcUInt32 mode_mask,
142 void *id, SilcIdType id_type,
143 const char *cipher, const char *hmac,
144 const char *passphrase,
145 SilcPublicKey founder_key);
146 void silc_server_send_notify_cumode(SilcServer server,
147 SilcSocketConnection sock,
149 SilcChannelEntry channel,
150 SilcUInt32 mode_mask,
151 void *id, SilcIdType id_type,
152 SilcClientID *target,
153 SilcPublicKey founder_key);
154 void silc_server_send_notify_signoff(SilcServer server,
155 SilcSocketConnection sock,
157 SilcClientID *client_id,
158 const char *message);
159 void silc_server_send_notify_topic_set(SilcServer server,
160 SilcSocketConnection sock,
162 SilcChannelEntry channel,
163 void *id, SilcIdType id_type,
165 void silc_server_send_notify_kicked(SilcServer server,
166 SilcSocketConnection sock,
168 SilcChannelEntry channel,
169 SilcClientID *client_id,
170 SilcClientID *kicker,
172 void silc_server_send_notify_killed(SilcServer server,
173 SilcSocketConnection sock,
175 SilcClientID *client_id,
177 void *killer, SilcIdType killer_type);
178 void silc_server_send_notify_umode(SilcServer server,
179 SilcSocketConnection sock,
181 SilcClientID *client_id,
182 SilcUInt32 mode_mask);
183 void silc_server_send_notify_ban(SilcServer server,
184 SilcSocketConnection sock,
186 SilcChannelEntry channel,
187 unsigned char *action,
189 void silc_server_send_notify_invite(SilcServer server,
190 SilcSocketConnection sock,
192 SilcChannelEntry channel,
193 SilcClientID *client_id,
194 unsigned char *action,
196 void silc_server_send_notify_watch(SilcServer server,
197 SilcSocketConnection sock,
198 SilcClientEntry watcher,
199 SilcClientEntry client,
200 const char *nickname,
201 SilcNotifyType type);
202 void silc_server_send_notify_dest(SilcServer server,
203 SilcSocketConnection sock,
206 SilcIdType dest_id_type,
208 SilcUInt32 argc, ...);
209 void silc_server_send_notify_to_channel(SilcServer server,
210 SilcSocketConnection sender,
211 SilcChannelEntry channel,
214 SilcUInt32 argc, ...);
215 void silc_server_send_notify_on_channels(SilcServer server,
216 SilcClientEntry sender,
217 SilcClientEntry client,
219 SilcUInt32 argc, ...);
220 void silc_server_send_new_id(SilcServer server,
221 SilcSocketConnection sock,
223 void *id, SilcIdType id_type,
225 void silc_server_send_new_channel(SilcServer server,
226 SilcSocketConnection sock,
230 SilcUInt32 channel_id_len,
232 void silc_server_send_channel_key(SilcServer server,
233 SilcSocketConnection sender,
234 SilcChannelEntry channel,
235 unsigned char route);
236 void silc_server_send_command(SilcServer server,
237 SilcSocketConnection sock,
240 SilcUInt32 argc, ...);
241 void silc_server_send_command_reply(SilcServer server,
242 SilcSocketConnection sock,
247 SilcUInt32 argc, ...);
248 void silc_server_send_dest_command_reply(SilcServer server,
249 SilcSocketConnection sock,
251 SilcIdType dst_id_type,
256 SilcUInt32 argc, ...);
257 void silc_server_send_heartbeat(SilcServer server,
258 SilcSocketConnection sock);
259 void silc_server_relay_packet(SilcServer server,
260 SilcSocketConnection dst_sock,
264 SilcPacketContext *packet,
266 void silc_server_send_connection_auth_request(SilcServer server,
267 SilcSocketConnection sock,
268 SilcUInt16 conn_type,
269 SilcAuthMethod auth_meth);
270 void silc_server_packet_queue_purge(SilcServer server,
271 SilcSocketConnection sock);
272 void silc_server_send_opers(SilcServer server,
274 SilcPacketFlags flags,
275 bool route, bool local,
279 void silc_server_send_opers_notify(SilcServer server,
283 SilcUInt32 argc, ...);