Merge commit 'origin/silc.1.1.branch'
[silc.git] / apps / silcd / idlist.h
index e6d1ce47514c0851fedb143cd210ee7524d94397..7b9c2ad139647bd385ee5e09369d5d4e7b130666 100644 (file)
@@ -162,6 +162,9 @@ struct SilcServerEntryStruct {
 
   /* Connection data */
   void *connection;
+
+  void *backup_proto;
+  unsigned int backup  : 1;    /* Set when executing backup protocol */
 };
 
 /*
@@ -543,6 +546,7 @@ struct SilcIDListStruct {
 typedef struct {
   /* Generic data structure. DO NOT add anything before this! */
   SilcIDListDataStruct data;
+  SilcAsyncOperation op;
   SilcServerConfigRef cconfig;
   SilcServerConfigRef sconfig;
   SilcServerConfigRef rconfig;
@@ -550,6 +554,7 @@ typedef struct {
   const char *hostname;
   const char *ip;
   SilcUInt16 port;
+  SilcConnectionType conn_type;
 } *SilcUnknownEntry;
 
 /* Prototypes */
@@ -575,6 +580,10 @@ 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,
@@ -584,7 +593,8 @@ 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,
+int silc_idlist_get_clients_by_hash(SilcIDList id_list,
+                                   char *nickname, char *server,
                                    SilcHash md5hash,
                                    SilcClientEntry **clients,
                                    SilcUInt32 *clients_count);
@@ -604,6 +614,10 @@ 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,