]> code.citadel.org Git - citadel.git/blobdiff - citadel/server.h
* Merge LDAP code; bindings are not yet complete
[citadel.git] / citadel / server.h
index 8994f4199aeb1a3e3ec50cdfd8470ce9316305cb..9fc9ca6ec2458f798b5d3e230ac74b46770aec02 100644 (file)
@@ -32,6 +32,8 @@ struct CtdlMessage {
 
 
 
+#define CTDLEXIT_SHUTDOWN      0       /* Normal shutdown; do NOT auto-restart */
+
 /*
  * Exit codes 101 through 109 are used for conditions in which
  * we deliberately do NOT want the service to automatically
@@ -43,7 +45,7 @@ struct CtdlMessage {
 #define CTDLEXIT_OOD           104     /* Out Of Date config - rerun setup */
 #define CTDLEXIT_DB            105     /* Unable to initialize database */
 #define CTDLEXIT_LIBCITADEL    106     /* Incorrect version of libcitadel */
-
+#define CTDL_EXIT_UNSUP_AUTH   107     /* Unsupported auth mode configured */
 
 
 
@@ -62,6 +64,7 @@ struct CitContext {
        int kill_me;            /* Set to nonzero to flag for termination */
        int client_socket;
        int cs_pid;             /* session ID */
+       int dont_term;          /* for special activities like artv so we don't get killed */
        time_t lastcmd;         /* time of last command executed */
        time_t lastidle;        /* For computing idle time */
 
@@ -122,10 +125,6 @@ struct CitContext {
        int redirect_ssl;
 #endif
 
-       int buffering;
-       char *output_buffer;    /* hold output for one big dump */
-       int buffer_len;
-
        /* A linked list of all instant messages sent to us. */
        struct ExpressMessage *FirstExpressMessage;
        int disable_exp;        /* Set to 1 to disable incoming pages */
@@ -144,7 +143,9 @@ struct CitContext {
        char *session_specific_data;            /* Used by individual protocol modules */
        struct cit_ical *CIT_ICAL;              /* calendaring data */
        struct ma_info *ma;                     /* multipart/alternative data */
-       const char* ServiceName;                /**< whats our actual purpose? */
+       const char *ServiceName;                /* readable purpose of this session */
+       void *openid_data;                      /* Data stored by the OpenID module */
+       char *ldap_dn;                          /* DN of user when using AUTHMODE_LDAP */
 };
 
 typedef struct CitContext t_context;
@@ -184,6 +185,7 @@ struct CitControl {
        int version;                    /* Server-hosted upgrade level      */
        int fulltext_wordbreaker;       /* ID of wordbreaker in use         */
        long MMfulltext;                /* highest message number indexed   */
+       int MMdbversion;                /* Version of Berkeley DB used on previous server run */
 };
 
 extern struct CitContext *ContextList;
@@ -230,7 +232,6 @@ enum {
        S_DIRECTORY,
        S_NETCONFIGS,
        S_PUBLIC_CLIENTS,
-       S_LDAP,
        S_FLOORCACHE,
        S_DEBUGMEMLEAKS,
        S_ATBF,
@@ -243,7 +244,8 @@ enum {
        S_THREAD_LIST,
        S_XMPP_QUEUE,
        S_SCHEDULE_LIST,
-       S_OPENID_ASSOC,
+       S_SINGLE_USER,
+       S_LDAP,
        MAX_SEMAPHORES
 };
 
@@ -290,6 +292,8 @@ enum {
        CDB_BIGMSGS,            /* larger message bodies         */
        CDB_FULLTEXT,           /* full text search index        */
        CDB_EUIDINDEX,          /* locate msgs by EUID           */
+       CDB_USERSBYNUMBER,      /* index of users by number      */
+       CDB_OPENID,             /* associates OpenIDs with users */
        MAXCDB                  /* total number of CDB's defined */
 };