-void silc_idlist_add_server(SilcServerList **list,
- char *server_name, int server_type,
- SilcServerID *id, SilcServerList *router,
- SilcCipher send_key, SilcCipher receive_key,
- SilcPKCS public_key, SilcHmac hmac,
- SilcServerList **new_idlist);
-void silc_idlist_add_client(SilcClientList **list, char *nickname,
- char *username, char *userinfo,
- SilcClientID *id, SilcServerList *router,
- SilcCipher send_key, SilcCipher receive_key,
- SilcPKCS public_key, SilcHmac hmac,
- SilcClientList **new_idlist);
-void silc_idlist_del_client(SilcClientList **list, SilcClientList *entry);
-SilcClientList *
-silc_idlist_find_client_by_nickname(SilcClientList *list,
- char *nickname,
- char *server);
-SilcClientList *
-silc_idlist_find_client_by_hash(SilcClientList *list,
- char *nickname, SilcHash hash);
-SilcClientList *
-silc_idlist_find_client_by_id(SilcClientList *list, SilcClientID *id);
-void silc_idlist_add_channel(SilcChannelList **list,
- char *channel_name, int mode,
- SilcChannelID *id, SilcServerList *router,
- SilcCipher channel_key,
- SilcChannelList **new_idlist);
-SilcChannelList *
-silc_idlist_find_channel_by_id(SilcChannelList *list, SilcChannelID *id);
-void silc_idlist_del_channel(SilcChannelList **list, SilcChannelList *entry);
+void silc_idlist_add_data(void *entry, SilcIDListData idata);
+void silc_idlist_del_data(void *entry);
+SILC_TASK_CALLBACK(silc_idlist_purge);
+SilcServerEntry
+silc_idlist_add_server(SilcIDList id_list,
+ char *server_name, int server_type,
+ SilcServerID *id, SilcServerEntry router,
+ void *connection);
+SilcServerEntry
+silc_idlist_find_server_by_id(SilcIDList id_list, SilcServerID *id,
+ SilcBool registered, SilcIDCacheEntry *ret_entry);
+SilcServerEntry
+silc_idlist_find_server_by_name(SilcIDList id_list, char *name,
+ SilcBool registered, SilcIDCacheEntry *ret_entry);
+SilcServerEntry
+silc_idlist_find_server_by_conn(SilcIDList id_list, char *hostname,
+ int port, SilcBool registered,
+ SilcIDCacheEntry *ret_entry);
+SilcServerEntry
+silc_idlist_replace_server_id(SilcIDList id_list, SilcServerID *old_id,
+ SilcServerID *new_id);
+int silc_idlist_del_server(SilcIDList id_list, SilcServerEntry entry);
+void silc_idlist_server_destructor(SilcIDCache cache,
+ SilcIDCacheEntry entry,
+ void *dest_context,
+ void *app_context);
+SilcClientEntry
+silc_idlist_add_client(SilcIDList id_list, char *nickname, char *username,
+ char *userinfo, SilcClientID *id,
+ SilcServerEntry router, void *connection);
+int silc_idlist_del_client(SilcIDList id_list, SilcClientEntry entry);
+int silc_idlist_get_clients_by_nickname(SilcIDList id_list, char *nickname,
+ char *server,
+ SilcClientEntry **clients,
+ SilcUInt32 *clients_count);
+int silc_idlist_get_clients_by_hash(SilcIDList id_list,
+ char *nickname, char *server,
+ SilcHash md5hash,
+ SilcClientEntry **clients,
+ SilcUInt32 *clients_count);
+SilcClientEntry
+silc_idlist_find_client_by_id(SilcIDList id_list, SilcClientID *id,
+ SilcBool registered, SilcIDCacheEntry *ret_entry);
+SilcClientEntry
+silc_idlist_replace_client_id(SilcServer server,
+ SilcIDList id_list, SilcClientID *old_id,
+ SilcClientID *new_id, const char *nickname);
+void silc_idlist_client_destructor(SilcIDCache cache,
+ SilcIDCacheEntry entry,
+ void *dest_context,
+ void *app_context);
+SilcChannelEntry
+silc_idlist_add_channel(SilcIDList id_list, char *channel_name, int mode,
+ SilcChannelID *id, SilcServerEntry router,
+ SilcCipher send_key, SilcCipher receive_key,
+ SilcHmac hmac);
+void silc_idlist_channel_destructor(SilcIDCache cache,
+ SilcIDCacheEntry entry,
+ void *dest_context,
+ void *app_context);
+int silc_idlist_del_channel(SilcIDList id_list, SilcChannelEntry entry);
+SilcChannelEntry
+silc_idlist_find_channel_by_name(SilcIDList id_list, char *name,
+ SilcIDCacheEntry *ret_entry);
+SilcChannelEntry
+silc_idlist_find_channel_by_id(SilcIDList id_list, SilcChannelID *id,
+ SilcIDCacheEntry *ret_entry);
+SilcChannelEntry
+silc_idlist_replace_channel_id(SilcIDList id_list, SilcChannelID *old_id,
+ SilcChannelID *new_id);
+SilcChannelEntry *
+silc_idlist_get_channels(SilcIDList id_list, SilcChannelID *channel_id,
+ SilcUInt32 *channels_count);