+/*
+ * Main declarations file for the Citadel server
+ *
+ * Copyright (c) 1987-2015 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
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) */
};
#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_ignet;
+ 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 */
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 */
+ int MM_hosted_upgrade_level; /* Server-hosted upgrade level */
+ int MM_fulltext_wordbreaker; /* ID of wordbreaker in use */
long MMfulltext; /* highest message number indexed */
int MMdbversion; /* Version of Berkeley DB used on previous server run */
};
CDB_EUIDINDEX, /* locate msgs by EUID */
CDB_USERSBYNUMBER, /* index of users by number */
CDB_OPENID, /* associates OpenIDs with users */
+ CDB_CONFIG, /* global system configuration */
MAXCDB /* total number of CDB's defined */
};
#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 */