updates
[silc.git] / apps / silcd / server_internal.h
index 9f51174a0652b74f0ef1708c7f447e4a7e0c5abf..41df9ab805195c78fd85d781c76f7235afd29b42 100644 (file)
@@ -73,12 +73,15 @@ struct SilcServerStruct {
                                        does not have connection to network. */
   bool listenning;                  /* TRUE if server is listenning for
                                        incoming connections. */
-
   SilcServerEntry id_entry;         /* Server's own ID entry */
   SilcServerEntry router;           /* Pointer to the primary router */
   unsigned long router_connect;             /* Time when router was connected */
   SilcServerBackup backup;          /* Backup routers */
-  bool backup_router;
+  bool backup_router;               /* TRUE if this is backup router */
+  bool backup_primary;              /* TRUE if we've switched our primary
+                                       router to a backup router. */
+  SilcServerConnection router_conn; /* non-NULL when connecting to the
+                                      primary router, and NULL otherwise. */
 
   /* Current command identifier, 0 not used */
   uint16 cmd_ident;
@@ -93,11 +96,6 @@ struct SilcServerStruct {
   /* Table of connected sockets */
   SilcSocketConnection *sockets;
 
-  /* Server keys */
-  SilcCipher send_key;
-  SilcCipher receive_key;
-  SilcCipher none_cipher;
-
   /* Server public key */
   SilcPKCS pkcs;
   SilcPublicKey public_key;
@@ -170,6 +168,16 @@ do {                                                                             \
   silc_schedule_set_listen_fd((s), (fd), (SILC_TASK_READ | SILC_TASK_WRITE)); \
 } while(0)
 
+#define SILC_OPER_STATS_UPDATE(c, type, mod)   \
+do {                                           \
+  if ((c)->mode & (mod)) {                     \
+    if ((c)->connection)                       \
+      server->stat.my_ ## type ## _ops--;      \
+    if (server->server_type == SILC_ROUTER)    \
+      server->stat. type ## _ops--;            \
+  }                                            \
+} while(0)
+
 /* Prototypes */
 SILC_TASK_CALLBACK_GLOBAL(silc_server_rekey_final);