]> code.citadel.org Git - citadel.git/blobdiff - citadel/server.h
* Shut off hostname resolution when dealing with Unix domain sockets
[citadel.git] / citadel / server.h
index 0c2083e53780999c02787950acc3188104f3e408..9b105bf85db544ba70bd8254680c72cdc723ad83 100644 (file)
@@ -63,6 +63,7 @@ struct CitContext {
        int internal_pgm;       /* authenticated as internal program */
        char temp[32];          /* temp file name */
        int nologin;            /* not allowed to log in */
+       int is_local_socket;    /* set to 1 if client is on unix domain sock */
 
        char net_node[32];      /* Is the client another Citadel server? */
        int client_socket;
@@ -91,18 +92,21 @@ struct CitContext {
        char dl_is_net;
        char upload_type;
 
+       /* Redirect this session's output to somewhere else? */
+       FILE *redirect_fp;
+       int redirect_sock;
+
+       /* A linked list of all express messages sent to us. */
        struct ExpressMessage *FirstExpressMessage;
 
+       /* Masquerade... */
        char fake_username[32]; /* Fake username <bc>                */
        char fake_postname[32]; /* Fake postname <bc>                */
        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;     /* Allocated session data */
-       char buffer1[256];              /* General-purpose workspace */
-       char buffer2[256];              /* General-purpose workspace */
+       /* Dynamically allocated session data */
+       struct CtdlSessData *FirstSessData;
 };
 
 typedef struct CitContext t_context;
@@ -165,6 +169,7 @@ enum {
        S_NETDB,
        S_SUPPMSGMAIN,
        S_I_WANNA_SELECT,
+       S_CONFIG,
        MAX_SEMAPHORES
 };
 
@@ -260,8 +265,8 @@ extern struct SessionFunctionHook *SessionHookTable;
 #define EVT_RWHO       7       /* An RWHO command is being executed */
 
 
-
-
+#define EVT_TIMER      50      /* Timer events are called once per minute
+                                  and are not tied to any session */
 
 /*
  * UserFunctionHook extensions are used for any type of hook which implements
@@ -325,6 +330,7 @@ enum {
 struct ServiceFunctionHook {
        struct ServiceFunctionHook *next;
        int tcp_port;
+       char *sockpath;
        void (*h_greeting_function) (void) ;
        void (*h_command_function) (void) ;
        int msock;
@@ -409,7 +415,7 @@ struct ser_ret {
 
 
 /* Preferred field order */
-/*               *********                     Important fields */
-/*                        ****************     Semi-important fields */
+/*               **********                    Important fields */
+/*                         ***************     Semi-important fields */
 /*                                        *    Message text (MUST be last) */
-#define FORDER "IPTAONHRDBCEFGJKLQSUVWXYZM"
+#define FORDER "IPTAFONHRDBCEGJKLQSUVWXYZM"