]> code.citadel.org Git - citadel.git/blobdiff - citadel/server/msgbase.c
CM_SetField() no longer accepts a length, just uses strdup()
[citadel.git] / citadel / server / msgbase.c
index c6c40a56010e0ba36f8bb949d16fe38eb378408f..7ed1b8c36541d7bd9ef3358971468685e72417fb 100644 (file)
@@ -134,17 +134,12 @@ int CM_IsEmpty(struct CtdlMessage *Msg, eMsgField which) {
 }
 
 
-void CM_SetField(struct CtdlMessage *Msg, eMsgField which, const char *buf, long length) {
+void CM_SetField(struct CtdlMessage *Msg, eMsgField which, const char *buf) {
        if (Msg->cm_fields[which] != NULL) {
-               free (Msg->cm_fields[which]);
-       }
-       if (length < 0) {                       // You can set the length to -1 to have CM_SetField measure it for you
-               length = strlen(buf);
+               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';
-       Msg->cm_lengths[which] = length;
+       Msg->cm_fields[which] = strdup(buf);
+       Msg->cm_lengths[which] = strlen(buf);
 }
 
 
@@ -152,7 +147,7 @@ void CM_SetFieldLONG(struct CtdlMessage *Msg, eMsgField which, long lvalue) {
        char buf[128];
        long len;
        len = snprintf(buf, sizeof(buf), "%ld", lvalue);
-       CM_SetField(Msg, which, buf, len);
+       CM_SetField(Msg, which, buf);
 }
 
 
@@ -234,6 +229,7 @@ void CM_PrependToField(struct CtdlMessage *Msg, eMsgField which, const char *buf
 }
 
 
+// wtf?
 void CM_SetAsField(struct CtdlMessage *Msg, eMsgField which, char **buf, long length) {
        if (Msg->cm_fields[which] != NULL) {
                free (Msg->cm_fields[which]);
@@ -1081,7 +1077,7 @@ struct CtdlMessage *CtdlDeserializeMessage(long msgnum, int with_body, const cha
                which = field_header;
                len = strlen(mptr);
 
-               CM_SetField(ret, which, mptr, len);
+               CM_SetField(ret, which, mptr);
 
                mptr += len + 1;                                // advance to next field
 
@@ -1130,7 +1126,7 @@ struct CtdlMessage *CtdlFetchMessage(long msgnum, int with_body) {
                }
        }
        if (CM_IsEmpty(ret, eMesageText)) {
-               CM_SetField(ret, eMesageText, HKEY("\r\n\r\n (no text)\r\n"));
+               CM_SetField(ret, eMesageText, "\r\n\r\n (no text)\r\n");
        }
 
        return (ret);
@@ -2425,7 +2421,7 @@ long send_message(struct CtdlMessage *msg) {
                                       CtdlGetConfigStr("c_fqdn")
                        );
 
-               CM_SetField(msg, emessageId, msgidbuf, msgidbuflen);
+               CM_SetField(msg, emessageId, msgidbuf);
        }
 
        retval = CtdlSaveThisMessage(msg, newmsgid, 1);
@@ -2574,7 +2570,7 @@ long CtdlSubmitMsg(struct CtdlMessage *msg,       /* message to save */
                        }
                }
                else {
-                       CM_SetField(msg, eMessagePath, HKEY("unknown"));
+                       CM_SetField(msg, eMessagePath, "unknown");
                }
        }
 
@@ -2650,7 +2646,7 @@ long CtdlSubmitMsg(struct CtdlMessage *msg,       /* message to save */
         * If this message has no O (room) field, generate one.
         */
        if (CM_IsEmpty(msg, eOriginalRoom) && !IsEmptyStr(CC->room.QRname)) {
-               CM_SetField(msg, eOriginalRoom, CC->room.QRname, -1);
+               CM_SetField(msg, eOriginalRoom, CC->room.QRname);
        }
 
        /* Perform "before save" hooks (aborting if any return nonzero) */
@@ -2859,11 +2855,11 @@ long quickie_message(char *from,
        msg->cm_format_type = format_type;
 
        if (!IsEmptyStr(from)) {
-               CM_SetField(msg, eAuthor, from, -1);
+               CM_SetField(msg, eAuthor, from);
        }
        else if (!IsEmptyStr(fromaddr)) {
                char *pAt;
-               CM_SetField(msg, eAuthor, fromaddr, -1);
+               CM_SetField(msg, eAuthor, fromaddr);
                pAt = strchr(msg->cm_fields[eAuthor], '@');
                if (pAt != NULL) {
                        CM_CutFieldAt(msg, eAuthor, pAt - msg->cm_fields[eAuthor]);
@@ -2873,17 +2869,17 @@ long quickie_message(char *from,
                msg->cm_fields[eAuthor] = strdup("Citadel");
        }
 
-       if (!IsEmptyStr(fromaddr)) CM_SetField(msg, erFc822Addr, fromaddr, -1);
-       if (!IsEmptyStr(room)) CM_SetField(msg, eOriginalRoom, room, -1);
+       if (!IsEmptyStr(fromaddr)) CM_SetField(msg, erFc822Addr, fromaddr);
+       if (!IsEmptyStr(room)) CM_SetField(msg, eOriginalRoom, room);
        if (!IsEmptyStr(to)) {
-               CM_SetField(msg, eRecipient, to, -1);
+               CM_SetField(msg, eRecipient, to);
                recp = validate_recipients(to, NULL, 0);
        }
        if (!IsEmptyStr(subject)) {
-               CM_SetField(msg, eMsgSubject, subject, -1);
+               CM_SetField(msg, eMsgSubject, subject);
        }
        if (!IsEmptyStr(text)) {
-               CM_SetField(msg, eMesageText, text, -1);
+               CM_SetField(msg, eMesageText, text);
        }
 
        long msgnum = CtdlSubmitMsg(msg, recp, room);
@@ -3071,15 +3067,15 @@ struct CtdlMessage *CtdlMakeMessageLen(
 
        /* Path or Return-Path */
        if (myelen > 0) {
-               CM_SetField(msg, eMessagePath, my_email, myelen);
+               CM_SetField(msg, eMessagePath, my_email);
        }
        else if (!IsEmptyStr(author->fullname)) {
-               CM_SetField(msg, eMessagePath, author->fullname, -1);
+               CM_SetField(msg, eMessagePath, author->fullname);
        }
        convert_spaces_to_underscores(msg->cm_fields[eMessagePath]);
 
        blen = snprintf(buf, sizeof buf, "%ld", (long)time(NULL));
-       CM_SetField(msg, eTimestamp, buf, blen);
+       CM_SetField(msg, eTimestamp, buf);
 
        if (fnlen > 0) {
                FakeAuthor = NewStrBufPlain (fake_name, fnlen);
@@ -3093,25 +3089,25 @@ struct CtdlMessage *CtdlMakeMessageLen(
 
        if (!!IsEmptyStr(CC->room.QRname)) {
                if (CC->room.QRflags & QR_MAILBOX) {            /* room */
-                       CM_SetField(msg, eOriginalRoom, &CC->room.QRname[11], -1);
+                       CM_SetField(msg, eOriginalRoom, &CC->room.QRname[11]);
                }
                else {
-                       CM_SetField(msg, eOriginalRoom, CC->room.QRname, -1);
+                       CM_SetField(msg, eOriginalRoom, CC->room.QRname);
                }
        }
 
        if (rcplen > 0) {
-               CM_SetField(msg, eRecipient, recipient, rcplen);
+               CM_SetField(msg, eRecipient, recipient);
        }
        if (cclen > 0) {
-               CM_SetField(msg, eCarbonCopY, recp_cc, cclen);
+               CM_SetField(msg, eCarbonCopY, recp_cc);
        }
 
        if (myelen > 0) {
-               CM_SetField(msg, erFc822Addr, my_email, myelen);
+               CM_SetField(msg, erFc822Addr, my_email);
        }
        else if ( (author == &CC->user) && (!IsEmptyStr(CC->cs_inet_email)) ) {
-               CM_SetField(msg, erFc822Addr, CC->cs_inet_email, -1);
+               CM_SetField(msg, erFc822Addr, CC->cs_inet_email);
        }
 
        if (subject != NULL) {
@@ -3126,7 +3122,7 @@ struct CtdlMessage *CtdlMakeMessageLen(
                               (IsAscii = isascii(subject[i]) != 0 ))
                                i++;
                        if (IsAscii != 0)
-                               CM_SetField(msg, eMsgSubject, subject, subjlen);
+                               CM_SetField(msg, eMsgSubject, subject);
                        else /* ok, we've got utf8 in the string. */
                        {
                                char *rfc2047Subj;
@@ -3138,15 +3134,15 @@ struct CtdlMessage *CtdlMakeMessageLen(
        }
 
        if (euidlen > 0) {
-               CM_SetField(msg, eExclusiveID, supplied_euid, euidlen);
+               CM_SetField(msg, eExclusiveID, supplied_euid);
        }
 
        if (reflen > 0) {
-               CM_SetField(msg, eWeferences, references, reflen);
+               CM_SetField(msg, eWeferences, references);
        }
 
        if (preformatted_text != NULL) {
-               CM_SetField(msg, eMesageText, preformatted_text, textlen);
+               CM_SetField(msg, eMesageText, preformatted_text);
        }
        else {
                StrBuf *MsgBody;
@@ -3424,8 +3420,8 @@ long CtdlWriteObject(char *req_room,                      // Room to stuff it in
        msg->cm_magic = CTDLMESSAGE_MAGIC;
        msg->cm_anon_type = MES_NORMAL;
        msg->cm_format_type = 4;
-       CM_SetField(msg, eAuthor, CC->user.fullname, -1);
-       CM_SetField(msg, eOriginalRoom, req_room, -1);
+       CM_SetField(msg, eAuthor, CC->user.fullname);
+       CM_SetField(msg, eOriginalRoom, req_room);
        msg->cm_flags = flags;
        
        CM_SetAsFieldSB(msg, eMesageText, &encoded_message);