]> code.citadel.org Git - citadel.git/blobdiff - citadel/server.h
Began implementation of Journaling and Envelope Journaling.
[citadel.git] / citadel / server.h
index b6fba598e0e5d71d9fb1f8dd3a41eba380f11f6d..2b60be19372c40d96a2253db6f05a85c65d11771 100644 (file)
@@ -54,12 +54,11 @@ struct CitContext {
        char curr_user[USERNAME_SIZE];  /* name of current user */
        int logged_in;          /* logged in */
        int internal_pgm;       /* authenticated as internal program */
-       char temp[PATH_MAX];    /* temp file name */
        int nologin;            /* not allowed to log in */
        int is_local_socket;    /* set to 1 if client is on unix domain sock */
        int curr_view;          /* The view type for the current user/room */
 
-       char net_node[PATH_MAX];/* Is the client another Citadel server? */
+       char net_node[32]       ;/* Is the client another Citadel server? */
        time_t previous_login;  /* Date/time of previous login */
        char lastcmdname[5];    /* name of last command executed */
        unsigned cs_flags;      /* miscellaneous flags */
@@ -78,14 +77,14 @@ struct CitContext {
        char cs_addr[64];       /* address logged in from */
 
        /* The Internet type of thing */
-       char cs_inet_email[SIZ];/* Return address of outbound Internet mail */
+       char cs_inet_email[128];/* Return address of outbound Internet mail */
 
        FILE *download_fp;      /* Fields relating to file transfer */
        char download_desired_section[128];
        FILE *upload_fp;
-       char upl_file[PATH_MAX];
+       char upl_file[256];
        char upl_path[PATH_MAX];
-       char upl_comment[SIZ];
+       char upl_comment[256];
        char upl_filedir[PATH_MAX];
        char dl_is_net;
        char upload_type;
@@ -96,8 +95,7 @@ struct CitContext {
        /* Beginning of cryptography - session nonce */
        char cs_nonce[NONCE_SIZE];      /* The nonce for this session's next auth transaction */
 
-       /* Redirect this session's output to somewhere else? */
-       FILE *redirect_fp;              /* a file instead (will go away) */
+       /* Redirect this session's output to a memory buffer? */
        char *redirect_buffer;          /* the buffer */
        size_t redirect_len;            /* length of data in buffer */
        size_t redirect_alloc;          /* length of allocated buffer */
@@ -121,7 +119,7 @@ struct CitContext {
        char fake_hostname[64];                 /* Fake hostname <bc> */
        char fake_roomname[ROOMNAMELEN];        /* Fake roomname <bc> */
 
-       char preferred_formats[SIZ];            /* Preferred MIME formats */
+       char preferred_formats[256];            /* Preferred MIME formats */
 
        /* Dynamically allocated session data */
        struct citimap *IMAP;
@@ -159,6 +157,19 @@ enum {
 struct CitContext *MyContext(void);
 #define CC MyContext()
 
+/*
+ * This is the control record for the message base... 
+ */
+struct CitControl {
+       long MMhighest;                 /* highest message number in file   */
+       unsigned MMflags;               /* Global system flags              */
+       long MMnextuser;                /* highest user number on system    */
+       long MMnextroom;                /* highest room number on system    */
+       int version;                    /* Server-hosted upgrade level      */
+       int fulltext_wordbreaker;       /* ID of wordbreaker in use         */
+       long MMfulltext;                /* highest message number indexed   */
+};
+
 extern struct CitContext *ContextList;
 extern int ScheduledShutdown;
 extern struct CitControl CitControl;
@@ -207,6 +218,8 @@ enum {
        S_LDAP,
        S_FLOORCACHE,
        S_DEBUGMEMLEAKS,
+       S_ATBF,
+       S_JOURNAL_QUEUE,
        MAX_SEMAPHORES
 };
 
@@ -250,6 +263,8 @@ enum {
        CDB_DIRECTORY,          /* address book directory        */
        CDB_USETABLE,           /* network use table             */
        CDB_BIGMSGS,            /* larger message bodies         */
+       CDB_FULLTEXT,           /* full text search index        */
+       CDB_EUIDINDEX,          /* locate msgs by EUID           */
        MAXCDB                  /* total number of CDB's defined */
 };
 
@@ -275,6 +290,12 @@ struct CleanupFunctionHook {
 };
 extern struct CleanupFunctionHook *CleanupHookTable;
 
+struct FixedOutputHook {
+       struct FixedOutputHook *next;
+       char content_type[64];
+       void (*h_function_pointer) (char *, int);
+};
+extern struct FixedOutputHook *FixedOutputTable;
 
 
 
@@ -446,6 +467,6 @@ struct ser_ret {
 /*               **********                    Important fields */
 /*                         ***************     Semi-important fields */
 /*                                        *    Message text (MUST be last) */
-#define FORDER "IPTAFONHRDBCEGJKLQSVWXYZUM"
+#define FORDER "IPTAFONHRDBCEJGKLQSVWXZYUM"
 
 #endif /* SERVER_H */