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 */
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 */
#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;
#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