X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmsgbase.h;h=e94b46deded550b4f1d6a13654b1238e2383b102;hb=e6219cc9b27e56e3b41170f864da30fa7b13ee01;hp=3bf009e58bd851c5147aa5622649fdba48070ff4;hpb=0b0f8a2280a8f22877baccd2355d7b41b863bfa0;p=citadel.git diff --git a/citadel/msgbase.h b/citadel/msgbase.h index 3bf009e58..e94b46ded 100644 --- a/citadel/msgbase.h +++ b/citadel/msgbase.h @@ -114,7 +114,7 @@ long CtdlSubmitMsg(struct CtdlMessage *, struct recptypes *, const char *, int); void quickie_message(const char *from, const char *fromaddr, - char *to, + const char *to, char *room, const char *text, int format_type, @@ -122,14 +122,17 @@ void quickie_message(const char *from, void flood_protect_quickie_message(const char *from, const char *fromaddr, - char *to, + const char *to, char *room, const char *text, int format_type, const char *subject, int nCriterions, const char **CritStr, - long *CritStrLen); + long *CritStrLen, + long ccid, + long ioid, + time_t NOW); void cmd_ent0 (char *entargs); void cmd_dele (char *delstr); @@ -160,6 +163,18 @@ void CtdlWriteObject(char *req_room, /* Room to stuff it in */ unsigned int flags /* Internal save flags */ ); struct CtdlMessage *CtdlFetchMessage(long msgnum, int with_body); +struct CtdlMessage * CtdlDuplicateMessage(struct CtdlMessage *OrgMsg); +int CM_IsEmpty (struct CtdlMessage *Msg, eMsgField which); +void CM_SetField (struct CtdlMessage *Msg, eMsgField which, const char *buf, long length); +void CM_SetFieldLONG (struct CtdlMessage *Msg, eMsgField which, long lvalue); +void CM_CopyField (struct CtdlMessage *Msg, eMsgField WhichToPutTo, eMsgField WhichtToCopy); +void CM_CutFieldAt (struct CtdlMessage *Msg, eMsgField WhichToCut, long maxlen); +void CM_FlushField (struct CtdlMessage *Msg, eMsgField which); +void CM_SetAsField (struct CtdlMessage *Msg, eMsgField which, char **buf, long length); +void CM_SetAsFieldSB (struct CtdlMessage *Msg, eMsgField which, StrBuf **buf); +void CM_GetAsField (struct CtdlMessage *Msg, eMsgField which, char **ret, long *retlen); +void CM_PrependToField (struct CtdlMessage *Msg, eMsgField which, const char *buf, long length); + void CtdlFreeMessage(struct CtdlMessage *msg); void CtdlFreeMessageContents(struct CtdlMessage *msg); void serialize_message(struct ser_ret *, struct CtdlMessage *); @@ -168,11 +183,11 @@ void ReplicationChecks(struct CtdlMessage *); int CtdlSaveMsgPointersInRoom(char *roomname, long newmsgidlist[], int num_newmsgs, int do_repl_check, struct CtdlMessage *supplied_msg, int suppress_refcount_adj); int CtdlSaveMsgPointerInRoom(char *roomname, long msgid, int do_repl_check, struct CtdlMessage *msg); -char *CtdlReadMessageBody(char *terminator, long tlen, size_t maxlen, char *exist, int crlf, int *sock); +char *CtdlReadMessageBody(char *terminator, long tlen, size_t maxlen, StrBuf *exist, int crlf, int *sock); StrBuf *CtdlReadMessageBodyBuf(char *terminator, /* token signalling EOT */ long tlen, size_t maxlen, /* maximum message length */ - char *exist, /* if non-null, append to it; + StrBuf *exist, /* if non-null, append to it; exist is ALWAYS freed */ int crlf, /* CRLF newlines instead of LF */ int *sock /* socket handle or 0 for this session's client socket */ @@ -263,7 +278,7 @@ ReadAsyncMsg *NewAsyncMsg(const char *terminator, /* token signalling EOT */ long tlen, size_t expectlen, /* if we expect a message, how long should it be? */ size_t maxlen, /* maximum message length */ - char *exist, /* if non-null, append to it; + StrBuf *exist, /* if non-null, append to it; exist is ALWAYS freed */ long eLen, /* length of exist */ int crlf /* CRLF newlines instead of LF */ @@ -278,12 +293,12 @@ extern int MessageDebugEnabled; #define CCCID CCC->cs_pid #define MSG_syslog(LEVEL, FORMAT, ...) \ MSGDBGLOG(LEVEL) syslog(LEVEL, \ - "CC[%d]" FORMAT, \ + "CC[%d]MSG" FORMAT, \ CCCID, __VA_ARGS__) #define MSGM_syslog(LEVEL, FORMAT) \ MSGDBGLOG(LEVEL) syslog(LEVEL, \ - "CC[%d]" FORMAT, \ + "CC[%d]MSG" FORMAT, \ CCCID)