Integrated the DKIM signer into serv_smtpclient, but disabled it
[citadel.git] / webcit / messages.h
index 32a172a7bfa97a17669c3dbd8d7860faae16fb67..41ab5b3d347a7c8ea5a2b819257e99119bf2f309 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996-2013 by the citadel.org team
+ * Copyright (c) 1996-2020 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.
@@ -42,52 +42,53 @@ void DestroyMime(void *vMime);
 #define MSGFLAG_READ (1<<0)
 
 typedef struct _message_summary {
-       long msgnum;            /* the message number on the citadel server */
+       long msgnum;                            // the message number on the citadel server
        int Flags;
-
-       time_t date;            /* its creation date */
+       time_t date;                            // its creation date
        int nhdr;
        int format_type;
        StrBuf *euid;
-       StrBuf *from;           /* the author */
-       StrBuf *to;             /* the recipient */
-       StrBuf *subj;           /* the title / subject */
+       StrBuf *from;                           // display name of message author
+       StrBuf *to;                             // the recipient
+       StrBuf *subj;                           // title / subject
        StrBuf *reply_inreplyto;
-       long    reply_inreplyto_hash;
+       long reply_inreplyto_hash;
        StrBuf *reply_references;
-       long    reply_references_hash;
+       long reply_references_hash;
        StrBuf *ReplyTo;
        StrBuf *cccc;
        StrBuf *AllRcpt;
        StrBuf *Room;
-       StrBuf *Rfca;
+       StrBuf *Rfca;                           // UPN or email address of message author
        StrBuf *EnvTo;
        const StrBuf *PartNum;
-       HashList *Attachments;  /* list of attachments */
+       HashList *Attachments;                  // list of attachments
        HashList *Submessages;
        HashList *AttachLinks;
        HashList *AllAttach;
        int hasattachments;
-
-       /* The mime part of the message */
-       wc_mime_attachment *MsgBody;
+       int is_local;                           // nonzero if the message originated on the local system
+       wc_mime_attachment *MsgBody;            // the MIME part of the message
 } message_summary;
+
 void DestroyMessageSummary(void *vMsg);
 
-/* Maps to msgkeys[] in msgbase.c: */
+/* some of these fields map to msgkeys[] in msgbase.c ... others don't */
 
+/* I think these are supposed to align with fieldMnemonics in msg_renderers.c
+ * So if you change one you have to change the other.
+ * TODO: figure out who did this and beat them with a wet noodle.
+ */
 typedef enum _eMessageField {
        eAuthor,
        eXclusivID,
        erFc822Addr,
-       eHumanNode,
        emessageId,
        eJournal,
        eReplyTo,
        eListID,
-       eMesageText,
-       eNodeName,
-       eOriginalRoom,
+       eMessageText,
+       eIsLocal,
        eMessagePath,
        eRecipient,
        eSpecialField,
@@ -99,41 +100,37 @@ typedef enum _eMessageField {
        eHeaderOnly,
        eFormatType,
        eMessagePart,
-       ePevious,
        eSubFolder,
        eLastHeader
-}eMessageField;
+} eMessageField;
 
 extern const char* fieldMnemonics[];
 
 int GetFieldFromMnemonic(eMessageField *f, const char* c);
-
 int EvaluateMsgHdr(const char *HeaderName, long HdrNLen, message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset);
 int EvaluateMsgHdrEnum(eMessageField f, message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset);
 
 
-
-static inline message_summary* GetMessagePtrAt(int n, HashList *Summ)
-{
+static inline message_summary* GetMessagePtrAt(int n, HashList *Summ) {
        const char *Key;
        long HKLen;
        void *vMsg;
 
-       if (Summ == NULL)
+       if (Summ == NULL) {
                return NULL;
+       }
        GetHashAt(Summ, n, &HKLen, &Key, &vMsg);
        return (message_summary*) vMsg;
 }
 
-typedef void (*ExamineMsgHeaderFunc)(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset);
 
+typedef void (*ExamineMsgHeaderFunc)(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset);
 void evaluate_mime_part(StrBuf *Target, WCTemplputParams *TP);
 
-
 typedef enum _eCustomRoomRenderer {
        eUseDefault = VIEW_JOURNAL + 100, 
        eReadEUIDS
-}eCustomRoomRenderer;
+} eCustomRoomRenderer;
 
 enum {
        do_search,