updates.
[silc.git] / apps / silcd / server_internal.h
index 93d046ad6ea5adb7f29e9884aefb9b4d3876b518..24942e378d23f4158ae4ebee0c6bf9b9bb57a3cd 100644 (file)
    various things. */
 typedef struct {
   /* Local stats (server and router) */
-  uint32 my_clients;     /* Locally connected clients */
-  uint32 my_servers;     /* Locally connected servers */
-  uint32 my_routers;     /* Locally connected routers */
-  uint32 my_channels;    /* Locally created channels */
+  uint32 my_clients;             /* Locally connected clients */
+  uint32 my_servers;             /* Locally connected servers */
+  uint32 my_routers;             /* Locally connected routers */
+  uint32 my_channels;            /* Locally created channels */
   uint32 my_chanclients;         /* Local clients on local channels */
-  uint32 my_aways;       /* Local clients away (XXX) */
-  uint32 my_server_ops;          /* Local server operators */
-  uint32 my_router_ops;          /* Local router operators */
+  uint32 my_aways;               /* Local clients away (XXX) */
+  uint32 my_server_ops;                  /* Local server operators */
+  uint32 my_router_ops;                  /* Local router operators */
 
   /* Global stats (mainly for router) */
-  uint32 cell_clients;   /* All clients in cell */
-  uint32 cell_servers;   /* All servers in cell */
-  uint32 cell_channels;          /* All channels in cell */
-  uint32 cell_chanclients; /* All clients on cell's channels */
-  uint32 clients;        /* All clients */
-  uint32 servers;        /* All servers */
-  uint32 routers;        /* All routers */
-  uint32 channels;       /* All channels */
-  uint32 chanclients;    /* All clients on channels */
-  uint32 server_ops;     /* All server operators */
-  uint32 router_ops;     /* All router operators */
+  uint32 cell_clients;           /* All clients in cell */
+  uint32 cell_servers;           /* All servers in cell */
+  uint32 cell_channels;                  /* All channels in cell */
+  uint32 cell_chanclients;       /* All clients on cell's channels */
+  uint32 clients;                /* All clients */
+  uint32 servers;                /* All servers */
+  uint32 routers;                /* All routers */
+  uint32 channels;               /* All channels */
+  uint32 chanclients;            /* All clients on channels */
+  uint32 server_ops;             /* All server operators */
+  uint32 router_ops;             /* All router operators */
 
   /* General */
-  uint32 conn_attempts;          /* Connection attempts */
-  uint32 conn_failures;          /* Connection failure */
-  uint32 auth_attempts;          /* Authentication attempts */
-  uint32 auth_failures;          /* Authentication failures */
-  uint32 packets_sent;   /* Sent packets */
-  uint32 packets_received; /* Received packets */
+  uint32 conn_attempts;                  /* Connection attempts */
+  uint32 conn_failures;                  /* Connection failure */
+  uint32 auth_attempts;                  /* Authentication attempts */
+  uint32 auth_failures;                  /* Authentication failures */
+  uint32 packets_sent;           /* Sent packets */
+  uint32 packets_received;       /* Received packets */
 } SilcServerStatistics;
 
 typedef struct {
@@ -95,7 +95,8 @@ struct SilcServerStruct {
   /* Back pointer to the primary router of this server. */
   SilcServerEntry router;
 
-  /* SILC server task queues */
+  /* SILC server schduler and task queues */
+  SilcSchedule schedule;
   SilcTaskQueue io_queue;
   SilcTaskQueue timeout_queue;
   SilcTaskQueue generic_queue;
@@ -175,17 +176,18 @@ do {                                                                      \
   silc_task_set_iotype(tmptask, SILC_TASK_WRITE);                      \
 } while(0)
 
-#define SILC_SET_CONNECTION_FOR_INPUT(fd)                              \
+#define SILC_SET_CONNECTION_FOR_INPUT(s, fd)                           \
 do {                                                                   \
-  silc_schedule_set_listen_fd((fd), (1L << SILC_TASK_READ));            \
+  silc_schedule_set_listen_fd((s), (fd), (1L << SILC_TASK_READ));      \
 } while(0)
      
-#define SILC_SET_CONNECTION_FOR_OUTPUT(fd)                             \
+#define SILC_SET_CONNECTION_FOR_OUTPUT(s, fd)                          \
 do {                                                                   \
-  silc_schedule_set_listen_fd((fd), ((1L << SILC_TASK_READ) |           \
-                                    (1L << SILC_TASK_WRITE)));         \
+  silc_schedule_set_listen_fd((s), (fd), ((1L << SILC_TASK_READ) |     \
+                                    (1L << SILC_TASK_WRITE)));         \
 } while(0)
 
 /* Prototypes */
+SILC_TASK_CALLBACK_GLOBAL(silc_server_rekey_final);
 
 #endif