/* 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 */
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);
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,
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);
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