updates.
[silc.git] / lib / silcclient / idlist.h
index b9f832ad97cc2f6755cf389eee95d9425ee41688..835da1aa02fbf5df3d53012c469a56de1a0e4404 100644 (file)
    (it receives its ID, for example, by IDENTIFY request) we create new
    client entry. This entry also includes the private message keys if
    they are used. */
-typedef struct SilcClientEntryStruct {
+typedef struct {
   char *nickname;              /* nickname */
   char *username;              /* username[@host] */
   char *server;                        /* SILC server name */
   char *realname;              /* Realname (userinfo) */
-  unsigned int num;
-  unsigned int mode;           /* User mode in SILC */
+  uint32 num;
+  uint32 mode;                 /* User mode in SILC */
   SilcClientID *id;            /* The Client ID */
   SilcCipher send_key;         /* Private message key for sending */
   SilcCipher receive_key;      /* Private message key for receiving */
   unsigned char *key;          /* Set only if appliation provided the
                                   key material. NULL if the library 
                                   generated the key. */
-  unsigned int key_len;
+  uint32 key_len;
   int generated;               /* TRUE if library generated the key */
   SilcClientKeyAgreement ke;   /* Current key agreement context or NULL */
 } *SilcClientEntry;
@@ -46,7 +46,7 @@ typedef struct SilcClientEntryStruct {
 /* Client and its mode on a channel */
 typedef struct SilcChannelUserStruct {
   SilcClientEntry client;
-  unsigned int mode;
+  uint32 mode;
   struct SilcChannelUserStruct *next;
 } *SilcChannelUser;
 
@@ -55,7 +55,7 @@ typedef struct {
   SilcCipher cipher;                 /* The cipher and key */
   SilcHmac hmac;                     /* The HMAC and hmac key */
   unsigned char *key;                /* The key data */
-  unsigned int key_len;                      /* The key length */
+  uint32 key_len;                    /* The key length */
 } *SilcChannelPrivateKey;
 
 /* Channel entry context. This is allocate for every channel client has
@@ -63,7 +63,7 @@ typedef struct {
 typedef struct SilcChannelEntryStruct {
   char *channel_name;
   SilcChannelID *id;
-  unsigned int mode;
+  uint32 mode;
   int on_channel;
 
   /* Joined clients */
@@ -72,20 +72,29 @@ typedef struct SilcChannelEntryStruct {
   /* Channel keys */
   SilcCipher channel_key;                    /* The channel key */
   unsigned char *key;                       /* Raw key data */
-  unsigned int key_len;
+  uint32 key_len;
   unsigned char iv[SILC_CIPHER_MAX_IV_SIZE]; /* Current IV */
   SilcHmac hmac;                            /* Current HMAC */
   SilcDList private_keys;                   /* List of private keys or NULL */
   SilcChannelPrivateKey curr_key;           /* Current private key */
 } *SilcChannelEntry;
 
+/* Server entry context. This represents one server. When server information
+   is resolved with INFO command the server info is saved in this context. 
+   Also the connected servers are saved here. */
+typedef struct {
+  char *server_name;
+  char *server_info;
+  SilcServerID *server_id;
+} *SilcServerEntry;
+
 /* Prototypes (some functions are defined in the silcapi.h) */
 
 SilcClientEntry silc_idlist_get_client(SilcClient client,
                                       SilcClientConnection conn,
                                       char *nickname,
                                       char *server,
-                                      unsigned int num,
+                                      uint32 num,
                                       int query);
 
 #endif