Transform string_append_listele{,_n}() to proper expanding-string triplet interface
[exim.git] / src / src / routers / rf_get_munge_headers.c
index 48c4bcd78ce0acde20645d998a81798de0d49e17..745704f6241ddb112a4af50957dca8f5cc8d481c 100644 (file)
@@ -46,8 +46,9 @@ if (rblock->extra_headers)
       {
       if (!expand_string_forcedfail)
        {
-       addr->message = string_sprintf("%s router failed to expand \"%s\": %s",
-         rblock->name, rblock->extra_headers, expand_string_message);
+       addr->message = string_sprintf(
+         "%s router failed to expand add_headers item \"%s\": %s",
+         rblock->name, s, expand_string_message);
        return DEFER;
        }
       }
@@ -90,22 +91,29 @@ if (rblock->remove_headers)
   const uschar * list = rblock->remove_headers;
   int sep = ':';
   uschar * s;
+  int size = 0, len = 0;
+
+  if (*remove_headers)
+    size = (len = Ustrlen(*remove_headers)) + 1;
 
   while ((s = string_nextinlist(&list, &sep, NULL, 0)))
     if (!(s = expand_string(s)))
       {
       if (!expand_string_forcedfail)
        {
-       addr->message = string_sprintf("%s router failed to expand \"%s\": %s",
-         rblock->name, rblock->remove_headers, expand_string_message);
+       addr->message = string_sprintf(
+         "%s router failed to expand remove_headers item \"%s\": %s",
+         rblock->name, s, expand_string_message);
        return DEFER;
        }
       }
     else if (*s)
-      *remove_headers = string_append_listele(*remove_headers, ':', s);
+      *remove_headers = string_append_listele(*remove_headers, &size, &len, ':', s);
   }
 
 return OK;
 }
 
+/* vi: aw ai sw=4
+*/
 /* End of rf_get_munge_headers.c */