From 9ac43822c5a6ffe052630b4fc6e8fab2f98edca1 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Sun, 17 Feb 2013 17:22:05 +0100 Subject: [PATCH] add utility function to set / replace cm_flield entries. --- citadel/msgbase.c | 9 +++++++++ citadel/msgbase.h | 1 + 2 files changed, 10 insertions(+) diff --git a/citadel/msgbase.c b/citadel/msgbase.c index 0b8e8ba91..a125d01e3 100644 --- a/citadel/msgbase.c +++ b/citadel/msgbase.c @@ -116,6 +116,15 @@ char *msgkeys[] = { NULL /* Z */ }; +void CtdlMsgSetCM_Fields(struct CtdlMessage *Msg, const char which, const char *buf, long length) +{ + if (Msg->cm_fields[which] != NULL) + free (Msg->cm_fields[which]); + Msg->cm_fields[which] = malloc(length + 1); + memcpy(Msg->cm_fields[which], buf, length); + Msg->cm_fields[which][length] = '\0'; +} + /* * This function is self explanatory. * (What can I say, I'm in a weird mood today...) diff --git a/citadel/msgbase.h b/citadel/msgbase.h index 45a7f765c..c051f490e 100644 --- a/citadel/msgbase.h +++ b/citadel/msgbase.h @@ -161,6 +161,7 @@ void CtdlWriteObject(char *req_room, /* Room to stuff it in */ ); struct CtdlMessage *CtdlFetchMessage(long msgnum, int with_body); struct CtdlMessage * CtdlDuplicateMessage(struct CtdlMessage *OrgMsg); +void CtdlMsgSetCM_Fields(struct CtdlMessage *Msg, const char which, const char *buf, long length); void CtdlFreeMessage(struct CtdlMessage *msg); void CtdlFreeMessageContents(struct CtdlMessage *msg); void serialize_message(struct ser_ret *, struct CtdlMessage *); -- 2.30.2