]> code.citadel.org Git - citadel.git/blobdiff - citadel/server.h
* Added a generic (void *) parameter to the ForEachUser() and ForEachRoom()
[citadel.git] / citadel / server.h
index 001775ad8e55415f4ddc8814b4973fe92299f752..00136f7ea42d45990737df05faa9491e18b0878e 100644 (file)
@@ -64,7 +64,7 @@ struct CitContext {
        char temp[32];          /* temp file name */
        int nologin;            /* not allowed to log in */
 
-       char net_node[32];
+       char net_node[32];      /* Is the client another Citadel server? */
        int client_socket;
        int cs_pid;             /* session ID */
        time_t cs_lastupdt;     /* time of last update */
@@ -72,6 +72,7 @@ struct CitContext {
        time_t lastidle;        /* For computing idle time */
        char lastcmdname[5];    /* name of last command executed */
        unsigned cs_flags;      /* miscellaneous flags */
+       void (*h_command_function) (void) ;     /* service command function */
 
        /* feeping creaturisms... */
        int cs_clientdev;       /* client developer ID */
@@ -97,8 +98,7 @@ struct CitContext {
        char fake_hostname[25]; /* Name of the fake hostname <bc>    */
        char fake_roomname[ROOMNAMELEN];        /* Name of the fake room <bc> */
 
-       int FloorBeingSearched; /* This is used by cmd_lrms() etc.   */
-       struct CtdlSessData *FirstSessData;
+       struct CtdlSessData *FirstSessData;     /* Allocated session data */
 };
 
 typedef struct CitContext t_context;
@@ -161,6 +161,7 @@ enum {
        S_NETDB,
        S_SUPPMSGMAIN,
        S_I_WANNA_SELECT,
+       S_CONFIG,
        MAX_SEMAPHORES
 };
 
@@ -183,6 +184,13 @@ enum {
        MT_DOWNLOAD             /* Download a component */
 };
 
+/*
+ * Message format types in the database
+ */
+#define        FMT_CITADEL     0       /* Citadel vari-format (proprietary) */
+#define FMT_FIXED      1       /* Fixed format (proprietary)        */
+#define FMT_RFC822     4       /* Standard (headers are in M field) */
+
 
 /*
  * Citadel DataBases (define one for each cdb we need to open)
@@ -307,6 +315,19 @@ enum {
 
 
 
+/*
+ * ServiceFunctionHook extensions are used for hooks which implement various
+ * non-Citadel services (on TCP protocols) directly in the Citadel server.
+ */
+struct ServiceFunctionHook {
+       struct ServiceFunctionHook *next;
+       int tcp_port;
+       void (*h_greeting_function) (void) ;
+       void (*h_command_function) (void) ;
+       int msock;
+};
+extern struct ServiceFunctionHook *ServiceHookTable;
+
 
 
 /* Defines the relationship of a user to a particular room */