*/
typedef struct {
- unsigned int retry_count;
- unsigned long retry_interval_min;
- unsigned long retry_interval_min_usec;
- unsigned long retry_interval_max;
+ uint32 retry_count;
+ uint32 retry_interval_min;
+ uint32 retry_interval_min_usec;
+ uint32 retry_interval_max;
char retry_keep_trying;
- unsigned long protocol_timeout;
- unsigned long protocol_timeout_usec;
+ uint32 protocol_timeout;
+ uint32 protocol_timeout_usec;
char require_reverse_mapping;
} *SilcServerParams;
silc_free(__fmt__); \
} while(0);
+/* Check whether rekey protocol is active */
+#define SILC_SERVER_IS_REKEY(sock) \
+ (sock->protocol && sock->protocol->protocol && \
+ sock->protocol->protocol->type == SILC_PROTOCOL_SERVER_REKEY)
+
/* Prototypes */
int silc_server_alloc(SilcServer *new_server);
void silc_server_free(SilcServer server);
SilcSocketConnection sock,
SilcPacketContext *packet);
void silc_server_create_connection(SilcServer server,
- char *remote_host, unsigned int port);
+ char *remote_host, uint32 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);
+ SilcClientEntry client,
+ int notify,
+ char *signoff);
void silc_server_free_sock_user_data(SilcServer server,
SilcSocketConnection sock);
int silc_server_channel_has_global(SilcChannelEntry channel);
int silc_server_channel_has_local(SilcChannelEntry channel);
int silc_server_remove_clients_by_server(SilcServer server,
- SilcServerEntry entry);
+ SilcServerEntry entry,
+ int server_signoff);
void silc_server_remove_from_channels(SilcServer server,
SilcSocketConnection sock,
SilcClientEntry client,
- char *signoff_message);
+ int notify,
+ char *signoff_message,
+ int keygen);
int silc_server_remove_from_one_channel(SilcServer server,
SilcSocketConnection sock,
SilcChannelEntry channel,
int broadcast);
void silc_server_create_channel_key(SilcServer server,
SilcChannelEntry channel,
- unsigned int key_len);
+ uint32 key_len);
SilcChannelEntry silc_server_save_channel_key(SilcServer server,
SilcBuffer key_payload,
SilcChannelEntry channel);
void silc_server_perform_heartbeat(SilcSocketConnection sock,
void *hb_context);
+void silc_server_announce_get_channel_users(SilcServer server,
+ SilcChannelEntry channel,
+ SilcBuffer *channel_users,
+ SilcBuffer *channel_users_modes);
+void silc_server_announce_get_channels(SilcServer server,
+ SilcIDList id_list,
+ SilcBuffer *channels,
+ SilcBuffer *channel_users,
+ SilcBuffer *channel_users_modes);
void silc_server_announce_servers(SilcServer server);
void silc_server_announce_clients(SilcServer server);
void silc_server_announce_channels(SilcServer server);
SilcChannelEntry channel,
SilcBuffer *user_list,
SilcBuffer *mode_list,
- unsigned int *user_count);
+ uint32 *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);
+ uint32 user_count);
+SilcSocketConnection silc_server_get_client_route(SilcServer server,
+ unsigned char *id_data,
+ uint32 id_len,
+ SilcClientID *client_id,
+ SilcIDListData *idata);
+SilcBuffer silc_server_get_client_channel_list(SilcServer server,
+ SilcClientEntry client);
+SilcClientEntry silc_server_get_client_resolve(SilcServer server,
+ SilcClientID *client_id);
#endif