X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmsgbase.h;h=754656d58ff0d02270db87a149f514ef54e111f9;hb=e61a54965652d093c8f94dd006866ee0086e4ec5;hp=50a1a64876fb01352d3f9948851affe45fa6053e;hpb=e024165eb98df86eb314c5ddea3cb38fcf478e67;p=citadel.git diff --git a/citadel/msgbase.h b/citadel/msgbase.h index 50a1a6487..754656d58 100644 --- a/citadel/msgbase.h +++ b/citadel/msgbase.h @@ -1,5 +1,8 @@ /* $Id$ */ +#ifndef MSGBASE_H +#define MSGBASE_H + #define aide_message(text, subject) quickie_message("Citadel",NULL,NULL,AIDEROOM,text,0,subject) enum { @@ -96,7 +99,7 @@ void cmd_opna (char *cmdbuf); void cmd_dlat (char *cmdbuf); long send_message (struct CtdlMessage *); void loadtroom (void); -long CtdlSubmitMsg(struct CtdlMessage *, struct recptypes *, char *); +long CtdlSubmitMsg(struct CtdlMessage *, struct recptypes *, char *, int); void quickie_message (char *, char *, char *, char *, char *, int, char *); void cmd_ent0 (char *entargs); void cmd_dele (char *delstr); @@ -121,6 +124,7 @@ void CtdlWriteObject(char *, char *, char *, struct ctdluser *, struct CtdlMessage *CtdlFetchMessage(long msgnum, int with_body); void CtdlFreeMessage(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, @@ -130,21 +134,38 @@ char *CtdlReadMessageBody(char *terminator, size_t maxlen, char *exist, int crlf 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); -int CtdlDoIHavePermissionToPostInThisRoom(char *errmsgbuf, size_t n); + +enum { + POST_LOGGED_IN, + POST_EXTERNAL, + CHECK_EXISTANCE, + POST_LMTP +}; +int CtdlDoIHavePermissionToPostInThisRoom(char *errmsgbuf, + size_t n, + const char* RemoteIdentifier, + int PostPublic); /* values for which_set */ @@ -157,7 +178,10 @@ void CtdlSetSeen(long *target_msgnums, int num_target_msgnums, struct ctdluser *which_user, struct ctdlroom *which_room); void CtdlGetSeen(char *buf, int which_set); -struct recptypes *validate_recipients(char *recipients); +struct recptypes *validate_recipients(char *recipients, + const char *RemoteIdentifier, + int Flags); + void free_recipients(struct recptypes *); struct CtdlMessage *CtdlMakeMessage( @@ -171,7 +195,10 @@ 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); + +#endif /* MSGBASE_H */