5 Author: Pekka Riikonen <priikone@silcnet.org>
7 Copyright (C) 1997 - 2003 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,
79 void silc_server_packet_relay_to_channel(SilcServer server,
80 SilcSocketConnection sender_sock,
81 SilcChannelEntry channel,
83 SilcIdType sender_type,
84 SilcClientEntry sender_entry,
88 void silc_server_packet_send_local_channel(SilcServer server,
89 SilcChannelEntry channel,
91 SilcPacketFlags flags,
95 void silc_server_send_private_message(SilcServer server,
96 SilcSocketConnection dst_sock,
100 SilcPacketContext *packet);
101 void silc_server_send_motd(SilcServer server,
102 SilcSocketConnection sock);
103 void silc_server_send_error(SilcServer server,
104 SilcSocketConnection sock,
105 const char *fmt, ...);
106 void silc_server_send_notify(SilcServer server,
107 SilcSocketConnection sock,
110 SilcUInt32 argc, ...);
111 void silc_server_send_notify_args(SilcServer server,
112 SilcSocketConnection sock,
117 void silc_server_send_notify_channel_change(SilcServer server,
118 SilcSocketConnection sock,
120 SilcChannelID *old_id,
121 SilcChannelID *new_id);
122 void silc_server_send_notify_nick_change(SilcServer server,
123 SilcSocketConnection sock,
125 SilcClientID *old_id,
126 SilcClientID *new_id,
127 const char *nickname);
128 void silc_server_send_notify_join(SilcServer server,
129 SilcSocketConnection sock,
131 SilcChannelEntry channel,
132 SilcClientID *client_id);
133 void silc_server_send_notify_leave(SilcServer server,
134 SilcSocketConnection sock,
136 SilcChannelEntry channel,
137 SilcClientID *client_id);
138 void silc_server_send_notify_cmode(SilcServer server,
139 SilcSocketConnection sock,
141 SilcChannelEntry channel,
142 SilcUInt32 mode_mask,
143 void *id, SilcIdType id_type,
144 const char *cipher, const char *hmac,
145 const char *passphrase,
146 SilcPublicKey founder_key,
147 SilcBuffer channel_pubkeys);
148 void silc_server_send_notify_cumode(SilcServer server,
149 SilcSocketConnection sock,
151 SilcChannelEntry channel,
152 SilcUInt32 mode_mask,
153 void *id, SilcIdType id_type,
154 SilcClientID *target,
155 SilcPublicKey founder_key);
156 void silc_server_send_notify_signoff(SilcServer server,
157 SilcSocketConnection sock,
159 SilcClientID *client_id,
160 const char *message);
161 void silc_server_send_notify_topic_set(SilcServer server,
162 SilcSocketConnection sock,
164 SilcChannelEntry channel,
165 void *id, SilcIdType id_type,
167 void silc_server_send_notify_kicked(SilcServer server,
168 SilcSocketConnection sock,
170 SilcChannelEntry channel,
171 SilcClientID *client_id,
172 SilcClientID *kicker,
174 void silc_server_send_notify_killed(SilcServer server,
175 SilcSocketConnection sock,
177 SilcClientID *client_id,
179 void *killer, SilcIdType killer_type);
180 void silc_server_send_notify_umode(SilcServer server,
181 SilcSocketConnection sock,
183 SilcClientID *client_id,
184 SilcUInt32 mode_mask);
185 void silc_server_send_notify_ban(SilcServer server,
186 SilcSocketConnection sock,
188 SilcChannelEntry channel,
189 unsigned char *action,
191 void silc_server_send_notify_invite(SilcServer server,
192 SilcSocketConnection sock,
194 SilcChannelEntry channel,
195 SilcClientID *client_id,
196 unsigned char *action,
198 void silc_server_send_notify_watch(SilcServer server,
199 SilcSocketConnection sock,
200 SilcClientEntry watcher,
201 SilcClientEntry client,
202 const char *nickname,
203 SilcNotifyType type);
204 void silc_server_send_notify_dest(SilcServer server,
205 SilcSocketConnection sock,
208 SilcIdType dest_id_type,
210 SilcUInt32 argc, ...);
211 void silc_server_send_notify_to_channel(SilcServer server,
212 SilcSocketConnection sender,
213 SilcChannelEntry channel,
215 bool send_to_clients,
217 SilcUInt32 argc, ...);
218 void silc_server_send_notify_on_channels(SilcServer server,
219 SilcClientEntry sender,
220 SilcClientEntry client,
222 SilcUInt32 argc, ...);
223 void silc_server_send_new_id(SilcServer server,
224 SilcSocketConnection sock,
226 void *id, SilcIdType id_type,
228 void silc_server_send_new_channel(SilcServer server,
229 SilcSocketConnection sock,
233 SilcUInt32 channel_id_len,
235 void silc_server_send_channel_key(SilcServer server,
236 SilcSocketConnection sender,
237 SilcChannelEntry channel,
238 unsigned char route);
239 void silc_server_send_command(SilcServer server,
240 SilcSocketConnection sock,
243 SilcUInt32 argc, ...);
244 void silc_server_send_command_reply(SilcServer server,
245 SilcSocketConnection sock,
250 SilcUInt32 argc, ...);
251 void silc_server_send_dest_command_reply(SilcServer server,
252 SilcSocketConnection sock,
254 SilcIdType dst_id_type,
259 SilcUInt32 argc, ...);
260 void silc_server_send_heartbeat(SilcServer server,
261 SilcSocketConnection sock);
262 void silc_server_relay_packet(SilcServer server,
263 SilcSocketConnection dst_sock,
267 SilcPacketContext *packet,
269 void silc_server_send_connection_auth_request(SilcServer server,
270 SilcSocketConnection sock,
271 SilcUInt16 conn_type,
272 SilcAuthMethod auth_meth);
273 void silc_server_packet_queue_purge(SilcServer server,
274 SilcSocketConnection sock);
275 void silc_server_send_opers(SilcServer server,
277 SilcPacketFlags flags,
278 bool route, bool local,
282 void silc_server_send_opers_notify(SilcServer server,
286 SilcUInt32 argc, ...);