updates.
[silc.git] / apps / silcd / server.h
index 3a041fc63712446b7fefef3ef5bc7cb23d70b380..1b83e1a836216f968e0b4fd3fad50e784e18665d 100644 (file)
@@ -68,11 +68,12 @@ typedef struct {
 /* This macro is used to send notify messages with formatted string. The
    string is formatted with arguments and the formatted string is sent as
    argument. */
-#define SILC_SERVER_SEND_NOTIFY(server, sock, type, fmt)                   \
-do {                                                                       \
-  char *__fmt__ = silc_format fmt;                                         \
-  silc_server_send_notify(server, sock, type, 1, __fmt__, strlen(__fmt__)); \
-  silc_free(__fmt__);                                                      \
+#define SILC_SERVER_SEND_NOTIFY(server, sock, type, fmt)       \
+do {                                                           \
+  char *__fmt__ = silc_format fmt;                             \
+  silc_server_send_notify(server, sock, FALSE,                         \
+                         type, 1, __fmt__, strlen(__fmt__));   \
+  silc_free(__fmt__);                                          \
 } while(0);
 
 /* Prototypes */
@@ -88,6 +89,9 @@ void silc_server_packet_parse_type(SilcServer server,
                                   SilcPacketContext *packet);
 void silc_server_close_connection(SilcServer server,
                                  SilcSocketConnection sock);
+void silc_server_free_client_data(SilcServer server, 
+                                 SilcSocketConnection sock,
+                                 SilcClientEntry user_data, char *signoff);
 void silc_server_free_sock_user_data(SilcServer server, 
                                     SilcSocketConnection sock);
 int silc_server_channel_has_global(SilcChannelEntry channel);
@@ -96,7 +100,8 @@ int silc_server_remove_clients_by_server(SilcServer server,
                                         SilcServerEntry entry);
 void silc_server_remove_from_channels(SilcServer server, 
                                      SilcSocketConnection sock,
-                                     SilcClientEntry client);
+                                     SilcClientEntry client,
+                                     char *signoff_message);
 int silc_server_remove_from_one_channel(SilcServer server, 
                                        SilcSocketConnection sock,
                                        SilcChannelEntry channel,
@@ -110,7 +115,14 @@ void silc_server_disconnect_remote(SilcServer server,
 SilcChannelEntry silc_server_create_new_channel(SilcServer server, 
                                                SilcServerID *router_id,
                                                char *cipher, 
-                                               char *channel_name);
+                                               char *channel_name,
+                                               int broadcast);
+SilcChannelEntry 
+silc_server_create_new_channel_with_id(SilcServer server, 
+                                      char *cipher, 
+                                      char *channel_name,
+                                      SilcChannelID *channel_id,
+                                      int broadcast);
 void silc_server_create_channel_key(SilcServer server, 
                                    SilcChannelEntry channel,
                                    unsigned int key_len);
@@ -119,5 +131,8 @@ SilcChannelEntry silc_server_save_channel_key(SilcServer server,
                                              SilcChannelEntry channel);
 void silc_server_perform_heartbeat(SilcSocketConnection sock,
                                   void *hb_context);
+void silc_server_announce_servers(SilcServer server);
+void silc_server_announce_clients(SilcServer server);
+void silc_server_announce_channels(SilcServer server);
 
 #endif