X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/0a49a7a4f1090b6f1ce1d0f9d969804c9226b53e..0cbf2b821bb13da0268556d0e30ea627d5592c60:/src/src/rewrite.c diff --git a/src/src/rewrite.c b/src/src/rewrite.c index 8a640565e..ca7fb6a11 100644 --- a/src/src/rewrite.c +++ b/src/src/rewrite.c @@ -1,10 +1,8 @@ -/* $Cambridge: exim/src/src/rewrite.c,v 1.5 2009/11/16 19:50:37 nm4 Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2009 */ +/* Copyright (c) University of Cambridge 1995 - 2015 */ /* See the file NOTICE for conditions of use and distribution. */ /* Functions concerned with rewriting headers */ @@ -14,7 +12,7 @@ /* Names for testing rewriting */ -static char *rrname[] = { +static const char *rrname[] = { " sender", " from", " to", @@ -29,20 +27,20 @@ static char *rrname[] = { typedef struct where_list_block { int bit; - uschar *string; + const uschar *string; } where_list_block; static where_list_block where_list[] = { - { rewrite_sender, US"sender:" }, - { rewrite_from, US"from:" }, - { rewrite_to, US"to:" }, - { rewrite_cc, US"cc:" }, - { rewrite_bcc, US"bcc:" }, - { rewrite_replyto, US"reply-to:" }, - { rewrite_envfrom, US"env-from" }, - { rewrite_envto, US"env-to" }, - { rewrite_smtp, US"smtp recipient" }, - { rewrite_smtp|rewrite_smtp_sender, US"smtp sender" } + { rewrite_sender, CUS"sender:" }, + { rewrite_from, CUS"from:" }, + { rewrite_to, CUS"to:" }, + { rewrite_cc, CUS"cc:" }, + { rewrite_bcc, CUS"bcc:" }, + { rewrite_replyto, CUS"reply-to:" }, + { rewrite_envfrom, CUS"env-from" }, + { rewrite_envto, CUS"env-to" }, + { rewrite_smtp, CUS"smtp recipient" }, + { rewrite_smtp|rewrite_smtp_sender, CUS"smtp sender" } }; static int where_list_size = sizeof(where_list)/sizeof(where_list_block); @@ -120,7 +118,8 @@ for (rule = rewrite_rules; { int start, end, pdomain; int count = 0; - uschar *save_localpart, *save_domain; + uschar *save_localpart; + const uschar *save_domain; uschar *error, *new, *newparsed; /* Ensure that the flag matches the flags in the rule. */ @@ -164,7 +163,7 @@ for (rule = rewrite_rules; /* Use the general function for matching an address against a list (here just one item, so use the "impossible value" separator UCHAR_MAX+1). */ - if (match_address_list(subject, FALSE, TRUE, &(rule->key), NULL, 0, + if (match_address_list(subject, FALSE, TRUE, CUSS &(rule->key), NULL, 0, UCHAR_MAX + 1, NULL) != OK) continue; @@ -248,11 +247,10 @@ for (rule = rewrite_rules; /* We have a validly rewritten address */ - if ((log_write_selector & L_address_rewrite) != 0 || - (debug_selector & D_rewrite) != 0) + if (LOGGING(address_rewrite) || (debug_selector & D_rewrite) != 0) { int i; - uschar *where = US"?"; + const uschar *where = CUS"?"; for (i = 0; i < where_list_size; i++) { @@ -294,7 +292,7 @@ for (rule = rewrite_rules; { uschar *p1 = new + start - 1; uschar *p2 = new + end + 1; - uschar *pf1, *pf2; + const uschar *pf1, *pf2; uschar buff1[256], buff2[256]; while (p1 > new && p1[-1] == ' ') p1--; @@ -451,8 +449,9 @@ Returns: NULL if header unchanged; otherwise the rewritten header */ static header_line * -rewrite_one_header(header_line *h, int flag, uschar *routed_old, - uschar *routed_new, rewrite_rule *rewrite_rules, int existflags, BOOL replace) +rewrite_one_header(header_line *h, int flag, + const uschar *routed_old, const uschar *routed_new, + rewrite_rule *rewrite_rules, int existflags, BOOL replace) { int lastnewline = 0; header_line *newh = NULL; @@ -719,7 +718,8 @@ Returns: NULL if header unchanged; otherwise the rewritten header */ header_line * -rewrite_header(header_line *h, uschar *routed_old, uschar *routed_new, +rewrite_header(header_line *h, + const uschar *routed_old, const uschar *routed_new, rewrite_rule *rewrite_rules, int existflags, BOOL replace) { switch (h->type)