updates.
[silc.git] / apps / silcd / idlist.h
index 10bf4e32748cce2972ba3866b7d439f9d01bd2ac..37d3e9bb55ff85befdae4b59dae1809f6e3ee740 100644 (file)
@@ -38,6 +38,7 @@ typedef struct {
   void *context;
   SilcChannelEntry channel;
   uint32 key_len;
+  SilcTask task;
 } *SilcServerChannelRekey;
 
 /* Generic rekey context for connections */
@@ -59,6 +60,7 @@ typedef uint8 SilcIDListStatus;
 #define SILC_IDLIST_STATUS_RESOLVED     0x02    /* Entry info is resolved */
 #define SILC_IDLIST_STATUS_RESOLVING    0x04    /* Entry is being resolved
                                                   with WHOIS or IDENTIFY */
+#define SILC_IDLIST_STATUS_DISABLED     0x08    /* Entry is disabled */
 
 /*
    Generic ID list data structure.
@@ -78,22 +80,29 @@ typedef struct {
   SilcCipher send_key;
   SilcCipher receive_key;
 
-  /* Re-key context */
-  SilcServerRekey rekey;
-
-  /* Hash selected in the SKE protocol, NULL if not needed at all */
-  SilcHash hash;
-
   /* HMAC */
   SilcHmac hmac_send;
   SilcHmac hmac_receive;
 
+  /* Packet sequence numbers */
+  uint32 psn_send;
+  uint32 psn_receive;
+
+  /* Hash selected in the SKE protocol, NULL if not needed at all */
+  SilcHash hash;
+
   /* Public key */
   SilcPublicKey public_key;
+  unsigned char fingerprint[20];
+
+  /* Re-key context */
+  SilcServerRekey rekey;
 
   long last_receive;           /* Time last received data */
   long last_sent;              /* Time last sent data */
 
+  unsigned long created;       /* Time when entry was created */
+
   SilcIDListStatus status;     /* Status mask of the entry */
 } *SilcIDListData, SilcIDListDataStruct;
 
@@ -481,6 +490,9 @@ struct SilcChannelEntryStruct {
   SilcHmac hmac;
 
   SilcServerChannelRekey rekey;
+
+  unsigned long created;
+  bool disabled;
 };
 
 /*