]> code.citadel.org Git - citadel.git/blobdiff - citadel/server.h
foo
[citadel.git] / citadel / server.h
index 10e8bee731ff5e246c196e24c901ee50bc535472..ec821d91b941db2c7121a73dccc76c6a5d83c211 100644 (file)
@@ -1,3 +1,17 @@
+/* 
+ * Main declarations file for the Citadel server
+ *
+ * Copyright (c) 1987-2017 by the citadel.org team
+ *
+ * This program is open source software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
 #ifndef SERVER_H
 #define SERVER_H
 
@@ -21,6 +35,7 @@ struct CtdlMessage {
        char cm_anon_type;              /* Anonymous or author-visible */
        char cm_format_type;            /* Format type */
        char *cm_fields[256];           /* Data fields */
+       long cm_lengths[256];           /* size of datafields */
        unsigned int cm_flags;          /* How to handle (NOT SAVED TO DISK) */
 };
 
@@ -28,6 +43,27 @@ struct CtdlMessage {
 #define        CM_SKIP_HOOKS   0x01            /* Don't run server-side handlers */
 
 
+/* Data structure returned by validate_recipients() */
+typedef struct __recptypes {
+       int recptypes_magic;
+        int num_local;
+        int num_internet;
+        int num_ignet;
+       int num_room;
+        int num_error;
+       char *errormsg;
+       char *recp_local;
+       char *recp_internet;
+       char *recp_room;
+       char *recp_orgroom;
+       char *display_recp;
+       char *bounce_to;
+       char *envelope_from;
+       char *sending_room;
+} recptypes;
+
+#define RECPTYPES_MAGIC 0xfeeb
+
 
 #define CTDLEXIT_SHUTDOWN      0       /* Normal shutdown; do NOT auto-restart */
 
@@ -43,6 +79,8 @@ struct CtdlMessage {
 #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 */
+#define CTDLEXIT_UNUSER                108     /* Could not determine uid to run as */
+#define CTDLEXIT_CRYPTO                109     /* Problem initializing SSL or TLS */
 
 /*
  * Reasons why a session would be terminated (set CC->kill_me to these values)
@@ -78,22 +116,8 @@ enum {
 #define CS_POSTING     4       /* Posting */
 
 
-/*
- * 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   */
-       int MMdbversion;                /* Version of Berkeley DB used on previous server run */
-};
-
 extern int ScheduledShutdown;
-extern struct CitControl CitControl;
+extern uid_t ctdluid;
 
 struct ExpressMessage {
        struct ExpressMessage *next;
@@ -122,7 +146,6 @@ enum {
        S_SUPPMSGMAIN,
        S_CONFIG,
        S_HOUSEKEEPING,
-       S_NTTLIST,
        S_DIRECTORY,
        S_NETCONFIGS,
        S_PUBLIC_CLIENTS,
@@ -186,7 +209,8 @@ enum {
        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 */
+       CDB_EXTAUTH,            /* associates OpenIDs with users */
+       CDB_CONFIG,             /* system configuration database */
        MAXCDB                  /* total number of CDB's defined */
 };
 
@@ -224,6 +248,7 @@ struct cdbdata {
 #define EVT_BEFORESAVE 201
 #define EVT_AFTERSAVE  202
 #define EVT_SMTPSCAN   203     /* called before submitting a msg from SMTP */
+#define EVT_AFTERUSRMBOXSAVE 204 /* called afte a message was saved into a users inbox */
 /* Priority levels for paging functions (lower is better) */
 enum {
        XMSG_PRI_LOCAL,         /* Other users on -this- server */