packet_send.h
- Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
+ Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 1997 - 2001 Pekka Riikonen
+ Copyright (C) 1997 - 2004, 2007 Pekka Riikonen
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
+ the Free Software Foundation; version 2 of the License.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
/* Prototypes */
-int silc_server_packet_send_real(SilcServer server,
- SilcSocketConnection sock,
- bool force_send);
-void silc_server_packet_send(SilcServer server,
- SilcSocketConnection sock,
- SilcPacketType type,
- SilcPacketFlags flags,
- unsigned char *data,
- uint32 data_len,
- bool force_send);
-void silc_server_packet_send_dest(SilcServer server,
- SilcSocketConnection sock,
- SilcPacketType type,
- SilcPacketFlags flags,
- void *dst_id,
- SilcIdType dst_id_type,
- unsigned char *data,
- uint32 data_len,
- bool force_send);
-void silc_server_packet_send_srcdest(SilcServer server,
- SilcSocketConnection sock,
- SilcPacketType type,
- SilcPacketFlags flags,
- void *src_id,
- SilcIdType src_id_type,
- void *dst_id,
- SilcIdType dst_id_type,
- unsigned char *data,
- uint32 data_len,
- bool force_send);
-void silc_server_packet_broadcast(SilcServer server,
- SilcSocketConnection sock,
- SilcPacketContext *packet);
-void silc_server_packet_route(SilcServer server,
- SilcSocketConnection sock,
- SilcPacketContext *packet);
+SilcBool silc_server_packet_send(SilcServer server,
+ SilcPacketStream sock,
+ SilcPacketType type,
+ SilcPacketFlags flags,
+ unsigned char *data,
+ SilcUInt32 data_len);
+SilcBool silc_server_packet_send_dest(SilcServer server,
+ SilcPacketStream sock,
+ SilcPacketType type,
+ SilcPacketFlags flags,
+ void *dst_id,
+ SilcIdType dst_id_type,
+ unsigned char *data,
+ SilcUInt32 data_len);
+SilcBool silc_server_packet_send_srcdest(SilcServer server,
+ SilcPacketStream sock,
+ SilcPacketType type,
+ SilcPacketFlags flags,
+ void *src_id,
+ SilcIdType src_id_type,
+ void *dst_id,
+ SilcIdType dst_id_type,
+ unsigned char *data,
+ SilcUInt32 data_len);
+SilcBool silc_server_packet_broadcast(SilcServer server,
+ SilcPacketStream sock,
+ SilcPacket packet);
+SilcBool silc_server_packet_route(SilcServer server,
+ SilcPacketStream sock,
+ SilcPacket packet);
void silc_server_packet_send_clients(SilcServer server,
- SilcClientEntry *clients,
- uint32 clients_count,
- SilcPacketType type,
+ SilcHashTable clients,
+ SilcPacketType type,
SilcPacketFlags flags,
- bool route,
- unsigned char *data,
- uint32 data_len,
- bool force_send);
+ SilcBool route,
+ unsigned char *data,
+ SilcUInt32 data_len);
void silc_server_packet_send_to_channel(SilcServer server,
- SilcSocketConnection sender,
+ SilcPacketStream sender,
SilcChannelEntry channel,
SilcPacketType type,
- bool route,
+ SilcBool route,
+ SilcBool send_to_clients,
unsigned char *data,
- uint32 data_len,
- bool force_send);
+ SilcUInt32 data_len);
void silc_server_packet_relay_to_channel(SilcServer server,
- SilcSocketConnection sender_sock,
+ SilcPacketStream sender_sock,
SilcChannelEntry channel,
- void *sender,
+ void *sender_id,
SilcIdType sender_type,
- void *sender_entry,
+ SilcClientEntry sender_entry,
unsigned char *data,
- uint32 data_len,
- bool force_send);
+ SilcUInt32 data_len);
void silc_server_packet_send_local_channel(SilcServer server,
SilcChannelEntry channel,
SilcPacketType type,
SilcPacketFlags flags,
unsigned char *data,
- uint32 data_len,
- bool force_send);
-void silc_server_send_private_message(SilcServer server,
- SilcSocketConnection dst_sock,
- SilcCipher cipher,
- SilcHmac hmac,
- uint32 sequence,
- SilcPacketContext *packet);
+ SilcUInt32 data_len);
void silc_server_send_motd(SilcServer server,
- SilcSocketConnection sock);
+ SilcPacketStream sock);
void silc_server_send_error(SilcServer server,
- SilcSocketConnection sock,
+ SilcPacketStream sock,
const char *fmt, ...);
void silc_server_send_notify(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcNotifyType type,
- uint32 argc, ...);
+ SilcUInt32 argc, ...);
void silc_server_send_notify_args(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcNotifyType type,
- uint32 argc,
+ SilcUInt32 argc,
SilcBuffer args);
void silc_server_send_notify_channel_change(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcChannelID *old_id,
SilcChannelID *new_id);
void silc_server_send_notify_nick_change(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcClientID *old_id,
- SilcClientID *new_id);
+ SilcClientID *new_id,
+ const char *nickname);
void silc_server_send_notify_join(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcChannelEntry channel,
SilcClientID *client_id);
void silc_server_send_notify_leave(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcChannelEntry channel,
SilcClientID *client_id);
void silc_server_send_notify_cmode(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcChannelEntry channel,
- uint32 mode_mask,
+ SilcUInt32 mode_mask,
void *id, SilcIdType id_type,
- char *cipher, char *hmac);
+ const char *cipher, const char *hmac,
+ const char *passphrase,
+ SilcPublicKey founder_key,
+ SilcBuffer channel_pubkeys);
void silc_server_send_notify_cumode(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcChannelEntry channel,
- uint32 mode_mask,
+ SilcUInt32 mode_mask,
void *id, SilcIdType id_type,
- SilcClientID *target);
+ SilcClientID *target,
+ SilcPublicKey founder_key);
void silc_server_send_notify_signoff(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcClientID *client_id,
- char *message);
+ const char *message);
void silc_server_send_notify_topic_set(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcChannelEntry channel,
- SilcClientID *client_id,
+ void *id, SilcIdType id_type,
char *topic);
void silc_server_send_notify_kicked(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcChannelEntry channel,
SilcClientID *client_id,
+ SilcClientID *kicker,
char *comment);
void silc_server_send_notify_killed(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcClientID *client_id,
- char *comment);
+ const char *comment,
+ void *killer, SilcIdType killer_type);
void silc_server_send_notify_umode(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcClientID *client_id,
- uint32 mode_mask);
+ SilcUInt32 mode_mask);
void silc_server_send_notify_ban(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcChannelEntry channel,
- char *add, char *del);
+ unsigned char *action,
+ SilcBuffer list);
void silc_server_send_notify_invite(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
SilcChannelEntry channel,
SilcClientID *client_id,
- char *add, char *del);
+ unsigned char *action,
+ SilcBuffer list);
+void silc_server_send_notify_watch(SilcServer server,
+ SilcPacketStream sock,
+ SilcClientEntry watcher,
+ SilcClientEntry client,
+ const char *nickname,
+ SilcNotifyType type,
+ SilcPublicKey public_key);
void silc_server_send_notify_dest(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
void *dest_id,
SilcIdType dest_id_type,
SilcNotifyType type,
- uint32 argc, ...);
+ SilcUInt32 argc, ...);
void silc_server_send_notify_to_channel(SilcServer server,
- SilcSocketConnection sender,
+ SilcPacketStream sender,
SilcChannelEntry channel,
- unsigned char route_notify,
+ SilcBool route_notify,
+ SilcBool send_to_clients,
SilcNotifyType type,
- uint32 argc, ...);
+ SilcUInt32 argc, ...);
void silc_server_send_notify_on_channels(SilcServer server,
SilcClientEntry sender,
SilcClientEntry client,
SilcNotifyType type,
- uint32 argc, ...);
+ SilcUInt32 argc, ...);
void silc_server_send_new_id(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
- void *id, SilcIdType id_type,
- uint32 id_len);
+ SilcPacketStream sock,
+ SilcBool broadcast,
+ void *id, SilcIdType id_type,
+ SilcUInt32 id_len);
void silc_server_send_new_channel(SilcServer server,
- SilcSocketConnection sock,
- bool broadcast,
+ SilcPacketStream sock,
+ SilcBool broadcast,
char *channel_name,
- void *channel_id,
- uint32 channel_id_len,
- uint32 mode);
+ void *channel_id,
+ SilcUInt32 channel_id_len,
+ SilcUInt32 mode);
void silc_server_send_channel_key(SilcServer server,
- SilcSocketConnection sender,
+ SilcPacketStream sender,
SilcChannelEntry channel,
unsigned char route);
-void silc_server_send_command(SilcServer server,
- SilcSocketConnection sock,
- SilcCommand command,
- uint16 ident,
- uint32 argc, ...);
-void silc_server_send_command_reply(SilcServer server,
- SilcSocketConnection sock,
- SilcCommand command,
- SilcCommandStatus status,
- uint16 ident,
- uint32 argc, ...);
-void silc_server_send_heartbeat(SilcServer server,
- SilcSocketConnection sock);
+void silc_server_send_command(SilcServer server,
+ SilcPacketStream sock,
+ SilcCommand command,
+ SilcUInt16 ident,
+ SilcUInt32 argc, ...);
+void silc_server_send_command_reply(SilcServer server,
+ SilcPacketStream sock,
+ SilcCommand command,
+ SilcStatus status,
+ SilcStatus error,
+ SilcUInt16 ident,
+ SilcUInt32 argc, ...);
+void silc_server_send_dest_command_reply(SilcServer server,
+ SilcPacketStream sock,
+ void *dst_id,
+ SilcIdType dst_id_type,
+ SilcCommand command,
+ SilcStatus status,
+ SilcStatus error,
+ SilcUInt16 ident,
+ SilcUInt32 argc, ...);
void silc_server_relay_packet(SilcServer server,
- SilcSocketConnection dst_sock,
+ SilcPacketStream dst_sock,
SilcCipher cipher,
SilcHmac hmac,
- uint32 sequence,
- SilcPacketContext *packet,
- bool force_send);
+ SilcUInt32 sequence,
+ SilcPacket *packet);
void silc_server_send_connection_auth_request(SilcServer server,
- SilcSocketConnection sock,
- uint16 conn_type,
+ SilcPacketStream sock,
+ SilcUInt16 conn_type,
SilcAuthMethod auth_meth);
-void silc_server_packet_queue_purge(SilcServer server,
- SilcSocketConnection sock);
+void silc_server_send_opers(SilcServer server,
+ SilcPacketType type,
+ SilcPacketFlags flags,
+ SilcBool route, bool local,
+ unsigned char *data,
+ SilcUInt32 data_len);
+void silc_server_send_opers_notify(SilcServer server,
+ SilcBool route,
+ SilcBool local,
+ SilcNotifyType type,
+ SilcUInt32 argc, ...);
-#endif
+#endif /* PACKET_SEND_H */