/* General definitions */
+/* SILC port */
+#define SILC_PORT 768;
+
/* Server and router. Used internally by the code. */
#define SILC_SERVER 0
#define SILC_ROUTER 1
/* 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 */
void silc_server_packet_parse_type(SilcServer server,
SilcSocketConnection sock,
SilcPacketContext *packet);
+void silc_server_create_connection(SilcServer server,
+ char *remote_host, unsigned int port);
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 *hmac,
+ char *channel_name,
+ int broadcast);
+SilcChannelEntry
+silc_server_create_new_channel_with_id(SilcServer server,
+ char *cipher,
+ char *hmac,
+ 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);
+void silc_server_get_users_on_channel(SilcServer server,
+ SilcChannelEntry channel,
+ SilcBuffer *user_list,
+ SilcBuffer *mode_list,
+ unsigned int *user_count);
+void silc_server_save_users_on_channel(SilcServer server,
+ SilcSocketConnection sock,
+ SilcChannelEntry channel,
+ SilcClientID *noadd,
+ SilcBuffer user_list,
+ SilcBuffer mode_list,
+ unsigned int user_count);
#endif