More error printing to backup resuming code.
[silc.git] / apps / silcd / server_internal.h
index 1d679b0b30a5bbeaa2c127a226614fe654ccaeba..e521db68fedfec1bb0d829b58cb716f3da73fa7c 100644 (file)
@@ -49,6 +49,10 @@ typedef struct {
   SilcUInt32 detached;                   /* All clients detached */
   SilcUInt32 server_ops;                 /* All server operators */
   SilcUInt32 router_ops;                 /* All router operators */
+  /* More to add
+  SilcUInt32 secret_channels;
+  SilcUInt32 private_channels;
+  */
 
   /* General */
   SilcUInt32 conn_attempts;              /* Connection attempts */
@@ -81,6 +85,11 @@ struct SilcServerStruct {
   unsigned int backup_router  : 1;   /* Set if this is backup router */
   unsigned int backup_primary : 1;   /* Set if we've switched our primary
                                        router to a backup router. */
+  unsigned int backup_noswitch: 1;   /* Set if we've won't switch to 
+                                       become primary (we are backup) */
+  unsigned int wait_backup    : 1;   /* Set if we are waiting for backup
+                                       router to connect to us. */
+  unsigned int server_shutdown: 1;   /* Set when shutting down */
 
   SilcServerEntry router;           /* Pointer to the primary router */
   unsigned long router_connect;             /* Time when router was connected */
@@ -139,16 +148,10 @@ struct SilcServerStruct {
 #endif
 };
 
-/* Server's heartbeat context */
-typedef struct {
-  SilcServer server;
-} *SilcServerHBContext;
-
 /* Failure context. This is allocated when failure packet is received.
    Failure packets are processed with timeout and data is saved in this
    structure. */
 typedef struct {
-  SilcServer server;
   SilcSocketConnection sock;
   SilcUInt32 failure;
 } *SilcServerFailureContext;
@@ -163,9 +166,8 @@ typedef struct {
 #define SILC_BROADCAST(server) (server->server_type == SILC_ROUTER) 
 
 /* Return TRUE if entry is locally connected or local to us */
-#define SILC_IS_LOCAL(entry)                                           \
-  ((entry)->connection ? TRUE :                                                \
-   (entry)->data.status & SILC_IDLIST_STATUS_LOCAL ? TRUE : FALSE)
+#define SILC_IS_LOCAL(entry) \
+  (((SilcIDListData)entry)->status & SILC_IDLIST_STATUS_LOCAL)
 
 /* Registers generic task for file descriptor for reading from network and
    writing to network. As being generic task the actual task is allocated