SMTP-Relaying: implement a method to choose a relay by sender email address or username
[citadel.git] / citadel / msgbase.h
index 59b02457b7a3b8d45f8a4ab58b679c3e47a81e70..f33cbb44acabcbd73157c52d17f2b9a5b547a1b6 100644 (file)
@@ -72,6 +72,7 @@ struct recptypes {
        char *recp_internet;
        char *recp_ignet;
        char *recp_room;
+       char *recp_orgroom;
        char *display_recp;
        char *bounce_to;
        char *envelope_from;
@@ -143,7 +144,6 @@ struct CtdlMessage *CtdlFetchMessage(long msgnum, int with_body);
 void CtdlFreeMessage(struct CtdlMessage *msg);
 void CtdlFreeMessageContents(struct CtdlMessage *msg);
 void serialize_message(struct ser_ret *, struct CtdlMessage *);
-void dump_message(struct CtdlMessage *msg, long Siz);
 int is_valid_message(struct CtdlMessage *);
 void ReplicationChecks(struct CtdlMessage *);
 int CtdlSaveMsgPointersInRoom(char *roomname, long newmsgidlist[], int num_newmsgs,
@@ -165,7 +165,9 @@ int CtdlOutputMsg(long msg_num,             /* message number (local) to fetch */
                  int do_proto,         /* do Citadel protocol responses? */
                  int crlf,             /* 0=LF, 1=CRLF */
                  char *section,                /* output a message/rfc822 section */
-                 int flags             /* should the bessage be exported clean? */
+                 int flags,            /* should the bessage be exported clean? */
+                 char **Author,        /* if you want to know the author of the message... */
+                 char **Address        /* if you want to know the sender address of the message... */
 );
 
 /* Flags which may be passed to CtdlOutputMsg() and CtdlOutputPreLoadedMsg() */
@@ -259,6 +261,20 @@ ReadAsyncMsg *NewAsyncMsg(const char *terminator,  /* token signalling EOT */
 eReadState CtdlReadMessageBodyAsync(AsyncIO *IO);
 void DeleteAsyncMsg(ReadAsyncMsg **Msg);
 
+extern int MessageDebugEnabled;
+
+#define MSGDBGLOG(LEVEL) if ((LEVEL != LOG_DEBUG) || (MessageDebugEnabled != 0))
+#define CCCID CCC->cs_pid
+#define MSG_syslog(LEVEL, FORMAT, ...)                 \
+       MSGDBGLOG(LEVEL) syslog(LEVEL,                  \
+                               "CC[%d]" FORMAT,        \
+                               CCCID, __VA_ARGS__)
+
+#define MSGM_syslog(LEVEL, FORMAT)                     \
+       MSGDBGLOG(LEVEL) syslog(LEVEL,                  \
+                               "CC[%d]" FORMAT,        \
+                               CCCID)
+
 
 
 #endif /* MSGBASE_H */