/*
packet_send.h
Author: Pekka Riikonen <priikone@silcnet.org>
Copyright (C) 1997 - 2004 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; 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
GNU General Public License for more details.
*/
#ifndef PACKET_SEND_H
#define PACKET_SEND_H
/* 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,
SilcUInt32 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,
SilcUInt32 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,
SilcUInt32 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);
void silc_server_packet_send_clients(SilcServer server,
SilcHashTable clients,
SilcPacketType type,
SilcPacketFlags flags,
bool route,
unsigned char *data,
SilcUInt32 data_len,
bool force_send);
void silc_server_packet_send_to_channel(SilcServer server,
SilcSocketConnection sender,
SilcChannelEntry channel,
SilcPacketType type,
bool route,
bool send_to_clients,
unsigned char *data,
SilcUInt32 data_len,
bool force_send);
void silc_server_packet_relay_to_channel(SilcServer server,
SilcSocketConnection sender_sock,
SilcChannelEntry channel,
void *sender_id,
SilcIdType sender_type,
SilcClientEntry sender_entry,
unsigned char *data,
SilcUInt32 data_len,
bool force_send);
void silc_server_packet_send_local_channel(SilcServer server,
SilcChannelEntry channel,
SilcPacketType type,
SilcPacketFlags flags,
unsigned char *data,
SilcUInt32 data_len,
bool force_send);
void silc_server_send_private_message(SilcServer server,
SilcSocketConnection dst_sock,
SilcCipher cipher,
SilcHmac hmac,
SilcUInt32 sequence,
SilcPacketContext *packet);
void silc_server_send_motd(SilcServer server,
SilcSocketConnection sock);
void silc_server_send_error(SilcServer server,
SilcSocketConnection sock,
const char *fmt, ...);
void silc_server_send_notify(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcNotifyType type,
SilcUInt32 argc, ...);
void silc_server_send_notify_args(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcNotifyType type,
SilcUInt32 argc,
SilcBuffer args);
void silc_server_send_notify_channel_change(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcChannelID *old_id,
SilcChannelID *new_id);
void silc_server_send_notify_nick_change(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcClientID *old_id,
SilcClientID *new_id,
const char *nickname);
void silc_server_send_notify_join(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcChannelEntry channel,
SilcClientID *client_id);
void silc_server_send_notify_leave(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcChannelEntry channel,
SilcClientID *client_id);
void silc_server_send_notify_cmode(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcChannelEntry channel,
SilcUInt32 mode_mask,
void *id, SilcIdType id_type,
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,
SilcChannelEntry channel,
SilcUInt32 mode_mask,
void *id, SilcIdType id_type,
SilcClientID *target,
SilcPublicKey founder_key);
void silc_server_send_notify_signoff(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcClientID *client_id,
const char *message);
void silc_server_send_notify_topic_set(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcChannelEntry channel,
void *id, SilcIdType id_type,
char *topic);
void silc_server_send_notify_kicked(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcChannelEntry channel,
SilcClientID *client_id,
SilcClientID *kicker,
char *comment);
void silc_server_send_notify_killed(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcClientID *client_id,
const char *comment,
void *killer, SilcIdType killer_type);
void silc_server_send_notify_umode(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcClientID *client_id,
SilcUInt32 mode_mask);
void silc_server_send_notify_ban(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcChannelEntry channel,
unsigned char *action,
SilcBuffer list);
void silc_server_send_notify_invite(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
SilcChannelEntry channel,
SilcClientID *client_id,
unsigned char *action,
SilcBuffer list);
void silc_server_send_notify_watch(SilcServer server,
SilcSocketConnection 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,
void *dest_id,
SilcIdType dest_id_type,
SilcNotifyType type,
SilcUInt32 argc, ...);
void silc_server_send_notify_to_channel(SilcServer server,
SilcSocketConnection sender,
SilcChannelEntry channel,
bool route_notify,
bool send_to_clients,
SilcNotifyType type,
SilcUInt32 argc, ...);
void silc_server_send_notify_on_channels(SilcServer server,
SilcClientEntry sender,
SilcClientEntry client,
SilcNotifyType type,
SilcUInt32 argc, ...);
void silc_server_send_new_id(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
void *id, SilcIdType id_type,
SilcUInt32 id_len);
void silc_server_send_new_channel(SilcServer server,
SilcSocketConnection sock,
bool broadcast,
char *channel_name,
void *channel_id,
SilcUInt32 channel_id_len,
SilcUInt32 mode);
void silc_server_send_channel_key(SilcServer server,
SilcSocketConnection sender,
SilcChannelEntry channel,
unsigned char route);
void silc_server_send_command(SilcServer server,
SilcSocketConnection sock,
SilcCommand command,
SilcUInt16 ident,
SilcUInt32 argc, ...);
void silc_server_send_command_reply(SilcServer server,
SilcSocketConnection sock,
SilcCommand command,
SilcStatus status,
SilcStatus error,
SilcUInt16 ident,
SilcUInt32 argc, ...);
void silc_server_send_dest_command_reply(SilcServer server,
SilcSocketConnection sock,
void *dst_id,
SilcIdType dst_id_type,
SilcCommand command,
SilcStatus status,
SilcStatus error,
SilcUInt16 ident,
SilcUInt32 argc, ...);
void silc_server_send_heartbeat(SilcServer server,
SilcSocketConnection sock);
void silc_server_relay_packet(SilcServer server,
SilcSocketConnection dst_sock,
SilcCipher cipher,
SilcHmac hmac,
SilcUInt32 sequence,
SilcPacketContext *packet,
bool force_send);
void silc_server_send_connection_auth_request(SilcServer server,
SilcSocketConnection 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,
bool route, bool local,
unsigned char *data,
SilcUInt32 data_len,
bool force_send);
void silc_server_send_opers_notify(SilcServer server,
bool route,
bool local,
SilcNotifyType type,
SilcUInt32 argc, ...);
#endif /* PACKET_SEND_H */
syntax highlighted by Code2HTML, v. 0.9.1