Correctly set Subject in vacation replies
authorArt Cancro <ajc@citadel.org>
Wed, 25 Oct 2006 03:11:40 +0000 (03:11 +0000)
committerArt Cancro <ajc@citadel.org>
Wed, 25 Oct 2006 03:11:40 +0000 (03:11 +0000)
citadel/serv_sieve.c

index e1be346b37a9dff8bfb112417078b6fc77fc46e5..276a588138be9b745e126d03892059ab78771133 100644 (file)
@@ -290,12 +290,20 @@ int ctdl_vacation(sieve2_context_t *s, void *my)
        int days = 1;
        const char *message;
        char *vacamsg_text = NULL;
+       char vacamsg_subject[1024];
 
        lprintf(CTDL_DEBUG, "Action is VACATION\n");
 
        message = sieve2_getvalue_string(s, "message");
        if (message == NULL) return SIEVE2_ERROR_BADARGS;
 
+       if (sieve2_getvalue_string(s, "subject") != NULL) {
+               safestrncpy(vacamsg_subject, sieve2_getvalue_string(s, "subject"), sizeof vacamsg_subject);
+       }
+       else {
+               snprintf(vacamsg_subject, sizeof vacamsg_subject, "Re: %s", cs->subject);
+       }
+
        days = sieve2_getvalue_int(s, "days");
        if (days < 1) days = 1;
        if (days > MAX_VACATION) days = MAX_VACATION;
@@ -331,7 +339,7 @@ int ctdl_vacation(sieve2_context_t *s, void *my)
                NULL,
                vacamsg_text,
                FMT_RFC822,
-               "Delivery status notification"
+               vacamsg_subject
        );
 
        free(vacamsg_text);