X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fserver.h;h=6aedb546393124cce3a72d7e6259eea3740404c5;hb=60f03c2407f834ba677dfac9fe545db255ac8263;hp=bcca4fb2b9345e788791573d2bc0eecfe4de70cb;hpb=d04e1208cf6c71816adb600c6493c48c7b9610f1;p=citadel.git diff --git a/citadel/server.h b/citadel/server.h index bcca4fb2b..6aedb5463 100644 --- a/citadel/server.h +++ b/citadel/server.h @@ -1,5 +1,3 @@ - - #ifndef SERVER_H #define SERVER_H @@ -23,6 +21,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) */ }; @@ -30,6 +29,28 @@ 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_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 */ @@ -138,8 +159,8 @@ enum { S_NETSPOOL, S_XMPP_QUEUE, S_SCHEDULE_LIST, - S_SINGLE_USER, - S_LDAP, + S_SINGLE_USER, + S_LDAP, S_IM_LOGS, MAX_SEMAPHORES }; @@ -167,7 +188,7 @@ enum { /* * Message format types in the database */ -#define FMT_CITADEL 0 /* Citadel vari-format (proprietary) */ +#define FMT_CITADEL 0 /* Citadel vari-format (proprietary) */ #define FMT_FIXED 1 /* Fixed format (proprietary) */ #define FMT_RFC822 4 /* Standard (headers are in M field) */ @@ -198,7 +219,7 @@ struct cdbdata { }; -/* +/* * Event types can't be enum'ed, because they must remain consistent between * builds (to allow for binary modules built somewhere else) */ @@ -226,6 +247,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 */ @@ -275,12 +297,12 @@ struct arcq { }; -/* +/* * Serialization routines use this struct to return a pointer and a length */ struct ser_ret { - size_t len; - unsigned char *ser; + size_t len; + unsigned char *ser; }; @@ -294,10 +316,40 @@ struct UseTable { -/* Preferred field order */ +/* Preferred field order */ /* ********** Important fields */ /* *************** Semi-important fields */ -/* * Message text (MUST be last) */ -#define FORDER "IPTAFONHRDBCEWJGKLQSVXZYUM" +/* ** internal only */ +/* * Message text (MUST be last) */ +///#define FORDER "IPTAFONHRDBCEWJGKLQSVXZYU12M" + +typedef enum _MsgField { + eAuthor = 'A', + eBig_message = 'B', + eRemoteRoom = 'C', + eDestination = 'D', + eExclusiveID = 'E', + erFc822Addr = 'F', + eHumanNode = 'H', + emessageId = 'I', + eJournal = 'J', + eReplyTo = 'K', + eListID = 'L', + eMesageText = 'M', + eNodeName = 'N', + eOriginalRoom = 'O', + eMessagePath = 'P', + eRecipient = 'R', + eSpecialField = 'S', + eTimestamp = 'T', + eMsgSubject = 'U', + eenVelopeTo = 'V', + eWeferences = 'W', + eCarbonCopY = 'Y', + eErrorMsg = '0', + eSuppressIdx = '1', + eExtnotify = '2', + eVltMsgNum = '3' +}eMsgField; #endif /* SERVER_H */