#ifndef MSGBASE_H
#define MSGBASE_H
-#define aide_message(text, subject) quickie_message("Citadel",NULL,NULL,AIDEROOM,text,0,subject)
+#define aide_message(text, subject) quickie_message("Citadel",NULL,NULL,AIDEROOM,text,FMT_CITADEL,subject)
enum {
MSGS_ALL,
MSGS_LAST,
MSGS_GT,
MSGS_EQ,
- MSGS_SEARCH
+ MSGS_SEARCH,
+ MSGS_EUID
};
/*
char *recp_ignet;
char *recp_room;
char *display_recp;
+ char *bounce_to;
+ char *envelope_from;
};
#define RECPTYPES_MAGIC 0xfeeb
void cmd_dlat (char *cmdbuf);
long send_message (struct CtdlMessage *);
void loadtroom (void);
-long CtdlSubmitMsg(struct CtdlMessage *, struct recptypes *, char *);
-void quickie_message (char *, char *, char *, char *, char *, int, char *);
+long CtdlSubmitMsg(struct CtdlMessage *, struct recptypes *, char *, int);
+void quickie_message (const char *, const char *, char *, char *, const char *, int, const char *);
void cmd_ent0 (char *entargs);
void cmd_dele (char *delstr);
void cmd_move (char *args);
void (*CallBack) (long, void *),
void *userdata);
int CtdlDeleteMessages(char *, long *, int, char *);
-void CtdlWriteObject(char *, char *, char *, struct ctdluser *,
- int, int, unsigned int);
+void CtdlWriteObject(char *req_room, /* Room to stuff it in */
+ char *content_type, /* MIME type of this object */
+ char *raw_message, /* Data to be written */
+ off_t raw_length, /* Size of raw_message */
+ struct ctdluser *is_mailbox, /* Mailbox room? */
+ int is_binary, /* Is encoding necessary? */
+ int is_unique, /* Del others of this type? */
+ unsigned int flags /* Internal save flags */
+);
struct CtdlMessage *CtdlFetchMessage(long msgnum, int with_body);
void CtdlFreeMessage(struct CtdlMessage *msg);
void serialize_message(struct ser_ret *, struct CtdlMessage *);
char *CtdlGetSysConfig(char *sysconfname);
void CtdlPutSysConfig(char *sysconfname, char *sysconfdata);
int CtdlOutputMsg(long msg_num, /* message number (local) to fetch */
- int mode, /* how would you like that message? */
- int headers_only, /* eschew the message body? */
- int do_proto, /* do Citadel protocol responses? */
- int crlf, /* 0=LF, 1=CRLF */
- char *section /* output a message/rfc822 section */
+ int mode, /* how would you like that message? */
+ int headers_only, /* eschew the message body? */
+ 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? */
);
+
+#define QP_EADDR (1<<0)
+#define CRLF (1<<1)
+#define ESC_DOT (1<<2)
+
int CtdlOutputPreLoadedMsg(struct CtdlMessage *,
- int mode, /* how would you like that message? */
- int headers_only, /* eschew the message body? */
- int do_proto, /* do Citadel protocol responses? */
- int crlf /* 0=LF, 1=CRLF */
+ int mode, /* how would you like that message? */
+ int headers_only, /* eschew the message body? */
+ int do_proto, /* do Citadel protocol responses? */
+ int crlf, /* 0=LF, 1=CRLF */
+ int flags /* should the bessage be exported clean? */
);
-int CtdlCopyMsgsToRoom(long *msgnum, int num_msgs, char *dest);
int CtdlDoIHavePermissionToDeleteMessagesFromThisRoom(void);
enum {
POST_LOGGED_IN,
POST_EXTERNAL,
- CHECK_EXISTANCE
+ CHECK_EXISTANCE,
+ POST_LMTP
};
-int CtdlDoIHavePermissionToPostInThisRoom(char *errmsgbuf, size_t n, int PostPublic);
+int CtdlDoIHavePermissionToPostInThisRoom(char *errmsgbuf,
+ size_t n,
+ const char* RemoteIdentifier,
+ int PostPublic);
/* values for which_set */
struct ctdluser *which_user, struct ctdlroom *which_room);
void CtdlGetSeen(char *buf, int which_set);
-struct recptypes *validate_recipients(char *recipients, int Flags);
+struct recptypes *validate_recipients(char *recipients,
+ const char *RemoteIdentifier,
+ int Flags);
+
void free_recipients(struct recptypes *);
struct CtdlMessage *CtdlMakeMessage(
char *my_email, /* which of my email addresses to use (empty is ok) */
char *subject, /* Subject (optional) */
char *supplied_euid, /* ...or NULL if this is irrelevant */
- char *preformatted_text /* ...or NULL to read text from client */
+ char *preformatted_text, /* ...or NULL to read text from client */
+ char *references /* Thread references */
);
int CtdlCheckInternetMailPermission(struct ctdluser *who);
int CtdlIsMe(char *addr, int addr_buf_len);