Preliminary SILC Server 1.1 commit.
[silc.git] / apps / silcd / packet_send.h
index 2b0681b6012079463602f9fa9fbecc270878b880..bb5a18e8214ae08f5673cccea70a370acc1e0073 100644 (file)
@@ -4,7 +4,7 @@
 
   Author: Pekka Riikonen <priikone@silcnet.org>
 
-  Copyright (C) 1997 - 2004 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
 
 /* 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);
+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,
                                     SilcHashTable clients,
                                     SilcPacketType type,
                                     SilcPacketFlags flags,
-                                    bool route,
+                                    SilcBool route,
                                     unsigned char *data,
-                                    SilcUInt32 data_len,
-                                    bool force_send);
+                                    SilcUInt32 data_len);
 void silc_server_packet_send_to_channel(SilcServer server,
-                                       SilcSocketConnection sender,
+                                       SilcPacketStream sender,
                                        SilcChannelEntry channel,
                                        SilcPacketType type,
-                                       bool route,
-                                       bool send_to_clients,
+                                       SilcBool route,
+                                       SilcBool send_to_clients,
                                        unsigned char *data,
-                                       SilcUInt32 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_id,
                                         SilcIdType sender_type,
                                         SilcClientEntry sender_entry,
                                         unsigned char *data,
-                                        SilcUInt32 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,
-                                          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);
+                                          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,
                             SilcUInt32 argc, ...);
 void silc_server_send_notify_args(SilcServer server,
-                                 SilcSocketConnection sock,
-                                 bool broadcast,
+                                 SilcPacketStream sock,
+                                 SilcBool broadcast,
                                  SilcNotifyType type,
                                  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,
                                         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,
                                   SilcUInt32 mode_mask,
                                   void *id, SilcIdType id_type,
@@ -145,74 +129,74 @@ void silc_server_send_notify_cmode(SilcServer server,
                                   SilcPublicKey founder_key,
                                   SilcBuffer channel_pubkeys);
 void silc_server_send_notify_cumode(SilcServer server,
-                                   SilcSocketConnection sock,
-                                   bool broadcast,
+                                   SilcPacketStream sock,
+                                   SilcBool 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,
+                                    SilcPacketStream sock,
+                                    SilcBool broadcast,
                                     SilcClientID *client_id,
                                     const char *message);
 void silc_server_send_notify_topic_set(SilcServer server,
-                                      SilcSocketConnection sock,
-                                      bool broadcast,
+                                      SilcPacketStream sock,
+                                      SilcBool broadcast,
                                       SilcChannelEntry channel,
                                       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,
                                    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,
                                   SilcUInt32 mode_mask);
 void silc_server_send_notify_ban(SilcServer server,
-                                SilcSocketConnection sock,
-                                bool broadcast,
+                                SilcPacketStream sock,
+                                SilcBool broadcast,
                                 SilcChannelEntry channel,
                                 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,
                                    unsigned char *action,
                                    SilcBuffer list);
 void silc_server_send_notify_watch(SilcServer server,
-                                  SilcSocketConnection sock,
+                                  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,
                                  SilcUInt32 argc, ...);
 void silc_server_send_notify_to_channel(SilcServer server,
-                                       SilcSocketConnection sender,
+                                       SilcPacketStream sender,
                                        SilcChannelEntry channel,
-                                       bool route_notify,
-                                       bool send_to_clients,
+                                       SilcBool route_notify,
+                                       SilcBool send_to_clients,
                                        SilcNotifyType type,
                                        SilcUInt32 argc, ...);
 void silc_server_send_notify_on_channels(SilcServer server,
@@ -221,35 +205,35 @@ void silc_server_send_notify_on_channels(SilcServer server,
                                         SilcNotifyType type,
                                         SilcUInt32 argc, ...);
 void silc_server_send_new_id(SilcServer server,
-                            SilcSocketConnection sock,
-                            bool broadcast,
+                            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,
                                  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,
+                             SilcPacketStream sock,
                              SilcCommand command,
                              SilcUInt16 ident,
                              SilcUInt32 argc, ...);
 void silc_server_send_command_reply(SilcServer server,
-                                   SilcSocketConnection sock,
+                                   SilcPacketStream sock,
                                    SilcCommand command,
                                    SilcStatus status,
                                    SilcStatus error,
                                    SilcUInt16 ident,
                                    SilcUInt32 argc, ...);
 void silc_server_send_dest_command_reply(SilcServer server,
-                                        SilcSocketConnection sock,
+                                        SilcPacketStream sock,
                                         void *dst_id,
                                         SilcIdType dst_id_type,
                                         SilcCommand command,
@@ -257,31 +241,25 @@ void silc_server_send_dest_command_reply(SilcServer server,
                                         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,
+                             SilcPacketStream dst_sock,
                              SilcCipher cipher,
                              SilcHmac hmac,
                              SilcUInt32 sequence,
-                             SilcPacketContext *packet,
-                             bool force_send);
+                             SilcPacket *packet);
 void silc_server_send_connection_auth_request(SilcServer server,
-                                             SilcSocketConnection sock,
+                                             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,
-                           bool route, bool local,
+                           SilcBool route, bool local,
                            unsigned char *data,
-                           SilcUInt32 data_len,
-                           bool force_send);
+                           SilcUInt32 data_len);
 void silc_server_send_opers_notify(SilcServer server,
-                                  bool route,
-                                  bool local,
+                                  SilcBool route,
+                                  SilcBool local,
                                   SilcNotifyType type,
                                   SilcUInt32 argc, ...);