git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Retire EXPERIMENTAL_REQUIRETLS
[exim.git]
/
src
/
src
/
rewrite.c
diff --git
a/src/src/rewrite.c
b/src/src/rewrite.c
index 20c9f6f18e7084ec45c4a1644a5729f2083a64d3..6b194ca91c740c2e613dba469a9dbf2a329ac5dd 100644
(file)
--- a/
src/src/rewrite.c
+++ b/
src/src/rewrite.c
@@
-2,7
+2,7
@@
* Exim - an Internet mail transport agent *
*************************************************/
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 201
5
*/
+/* Copyright (c) University of Cambridge 1995 - 201
8
*/
/* See the file NOTICE for conditions of use and distribution. */
/* Functions concerned with rewriting headers */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions concerned with rewriting headers */
@@
-100,7
+100,6
@@
uschar *
rewrite_one(uschar *s, int flag, BOOL *whole, BOOL add_header, uschar *name,
rewrite_rule *rewrite_rules)
{
rewrite_one(uschar *s, int flag, BOOL *whole, BOOL add_header, uschar *name,
rewrite_rule *rewrite_rules)
{
-rewrite_rule *rule;
uschar *yield = s;
uschar *subject = s;
uschar *domain = NULL;
uschar *yield = s;
uschar *subject = s;
uschar *domain = NULL;
@@
-108,12
+107,12
@@
BOOL done = FALSE;
int rule_number = 1;
int yield_start = 0, yield_end = 0;
int rule_number = 1;
int yield_start = 0, yield_end = 0;
-if (whole
!= NULL
) *whole = FALSE;
+if (whole) *whole = FALSE;
/* Scan the rewriting rules */
/* Scan the rewriting rules */
-for (rule = rewrite_rules;
- rule
!= NULL
&& !done;
+for (r
ewrite_rule * r
ule = rewrite_rules;
+ rule && !done;
rule_number++, rule = rule->next)
{
int start, end, pdomain;
rule_number++, rule = rule->next)
{
int start, end, pdomain;
@@
-124,7
+123,7
@@
for (rule = rewrite_rules;
/* Ensure that the flag matches the flags in the rule. */
/* Ensure that the flag matches the flags in the rule. */
- if (
(rule->flags & flag) == 0
) continue;
+ if (
!(rule->flags & flag)
) continue;
/* Come back here for a repeat after a successful rewrite. We do this
only so many times. */
/* Come back here for a repeat after a successful rewrite. We do this
only so many times. */
@@
-137,12
+136,12
@@
for (rule = rewrite_rules;
with the other kinds of rewrite, where expansion happens inside
match_address_list(). */
with the other kinds of rewrite, where expansion happens inside
match_address_list(). */
- if (
(flag & rewrite_smtp) != 0
)
+ if (
flag & rewrite_smtp
)
{
uschar *key = expand_string(rule->key);
{
uschar *key = expand_string(rule->key);
- if (
key == NULL
)
+ if (
!key
)
{
{
- if (!expand_string_forcedfail)
+ if (!
f.
expand_string_forcedfail)
log_write(0, LOG_MAIN|LOG_PANIC, "failed to expand \"%s\" while "
"checking for SMTP rewriting: %s", rule->key, expand_string_message);
continue;
log_write(0, LOG_MAIN|LOG_PANIC, "failed to expand \"%s\" while "
"checking for SMTP rewriting: %s", rule->key, expand_string_message);
continue;
@@
-158,7
+157,7
@@
for (rule = rewrite_rules;
else
{
else
{
- if (
domain == NULL
) domain = Ustrrchr(subject, '@') + 1;
+ if (
!domain
) domain = Ustrrchr(subject, '@') + 1;
/* Use the general function for matching an address against a list (here
just one item, so use the "impossible value" separator UCHAR_MAX+1). */
/* Use the general function for matching an address against a list (here
just one item, so use the "impossible value" separator UCHAR_MAX+1). */
@@
-201,10
+200,10
@@
for (rule = rewrite_rules;
give up altogether. For other expansion failures we have a configuration
error. */
give up altogether. For other expansion failures we have a configuration
error. */
- if (
new == NULL
)
+ if (
!new
)
{
{
- if (expand_string_forcedfail)
- { if (
(rule->flags & rewrite_quit) != 0
) break; else continue; }
+ if (
f.
expand_string_forcedfail)
+ { if (
rule->flags & rewrite_quit
) break; else continue; }
expand_string_message = expand_hide_passwords(expand_string_message);
expand_string_message = expand_hide_passwords(expand_string_message);
@@
-219,7
+218,7
@@
for (rule = rewrite_rules;
newparsed = parse_extract_address(new, &error, &start, &end, &pdomain,
flag == rewrite_envfrom || flag == (rewrite_smtp|rewrite_smtp_sender));
newparsed = parse_extract_address(new, &error, &start, &end, &pdomain,
flag == rewrite_envfrom || flag == (rewrite_smtp|rewrite_smtp_sender));
- if (
newparsed == NULL
)
+ if (
!newparsed
)
{
log_write(0, LOG_MAIN|LOG_PANIC, "Rewrite of %s yielded unparseable "
"address: %s in address %s", subject, error, new);
{
log_write(0, LOG_MAIN|LOG_PANIC, "Rewrite of %s yielded unparseable "
"address: %s in address %s", subject, error, new);
@@
-233,7
+232,7
@@
for (rule = rewrite_rules;
if (pdomain == 0 && (*newparsed != 0 ||
(flag != rewrite_envfrom && flag != (rewrite_smtp|rewrite_smtp_sender))))
{
if (pdomain == 0 && (*newparsed != 0 ||
(flag != rewrite_envfrom && flag != (rewrite_smtp|rewrite_smtp_sender))))
{
- if (
(rule->flags & rewrite_qualify) != 0
)
+ if (
rule->flags & rewrite_qualify
)
{
newparsed = rewrite_address_qualify(newparsed, TRUE);
new = string_sprintf("%.*s%s%.*s", start, new, newparsed,
{
newparsed = rewrite_address_qualify(newparsed, TRUE);
new = string_sprintf("%.*s%s%.*s", start, new, newparsed,
@@
-252,17
+251,14
@@
for (rule = rewrite_rules;
if (LOGGING(address_rewrite) || (debug_selector & D_rewrite) != 0)
{
if (LOGGING(address_rewrite) || (debug_selector & D_rewrite) != 0)
{
- int i;
const uschar *where = CUS"?";
const uschar *where = CUS"?";
- for (i = 0; i < where_list_size; i++)
- {
+ for (int i = 0; i < where_list_size; i++)
if (flag == where_list[i].bit)
{
where = where_list[i].string;
break;
}
if (flag == where_list[i].bit)
{
where = where_list[i].string;
break;
}
- }
log_write(L_address_rewrite,
LOG_MAIN, "\"%s\" from %s rewritten as \"%s\" by rule %d",
yield, where, new, rule_number);
log_write(L_address_rewrite,
LOG_MAIN, "\"%s\" from %s rewritten as \"%s\" by rule %d",
yield, where, new, rule_number);
@@
-284,12
+280,12
@@
for (rule = rewrite_rules;
flag set and so we must preserve the non-active portion of the current
subject unless the current rule also has the w flag set. */
flag set and so we must preserve the non-active portion of the current
subject unless the current rule also has the w flag set. */
- if (whole
!= NULL && (flag & rewrite_all_headers) != 0
)
+ if (whole
&& (flag & rewrite_all_headers)
)
{
/* Current rule has the w flag set. We must ensure the phrase parts
are syntactically valid if they are present. */
{
/* Current rule has the w flag set. We must ensure the phrase parts
are syntactically valid if they are present. */
- if (
(rule->flags & rewrite_whole) != 0
)
+ if (
rule->flags & rewrite_whole
)
{
if (start > 0 && new[start-1] == '<')
{
{
if (start > 0 && new[start-1] == '<')
{
@@
-355,12
+351,12
@@
for (rule = rewrite_rules;
/* If no further rewrites are to be done, set the done flag. This allows
repeats of the current rule if configured before breaking the loop. */
/* If no further rewrites are to be done, set the done flag. This allows
repeats of the current rule if configured before breaking the loop. */
- if (
(rule->flags & rewrite_quit) != 0
) done = TRUE;
+ if (
rule->flags & rewrite_quit
) done = TRUE;
/* Allow the current rule to be applied up to 10 times if
requested. */
/* Allow the current rule to be applied up to 10 times if
requested. */
- if (
(rule->flags & rewrite_repeat) != 0
)
+ if (
rule->flags & rewrite_repeat
)
{
if (count++ < 10) goto REPEAT_RULE;
log_write(0, LOG_MAIN|LOG_PANIC, "rewrite rule repeat ignored after 10 "
{
if (count++ < 10) goto REPEAT_RULE;
log_write(0, LOG_MAIN|LOG_PANIC, "rewrite rule repeat ignored after 10 "
@@
-465,7
+461,7
@@
while (isspace(*s)) s++;
DEBUG(D_rewrite)
debug_printf("rewrite_one_header: type=%c:\n %s", h->type, h->text);
DEBUG(D_rewrite)
debug_printf("rewrite_one_header: type=%c:\n %s", h->type, h->text);
-parse_allow_group = TRUE; /* Allow group syntax */
+
f.
parse_allow_group = TRUE; /* Allow group syntax */
/* Loop for multiple addresses in the header. We have to go through them all
in case any need qualifying, even if there's no rewriting. Pathological headers
/* Loop for multiple addresses in the header. We have to go through them all
in case any need qualifying, even if there's no rewriting. Pathological headers
@@
-474,7
+470,7
@@
any that don't actually get rewritten. We also play silly games for those that
_are_ rewritten so as to avoid runaway store usage for these kinds of header.
We want to avoid keeping store for any intermediate versions. */
_are_ rewritten so as to avoid runaway store usage for these kinds of header.
We want to avoid keeping store for any intermediate versions. */
-while (*s
!= 0
)
+while (*s)
{
uschar *sprev;
uschar *ss = parse_find_address_end(s, FALSE);
{
uschar *sprev;
uschar *ss = parse_find_address_end(s, FALSE);
@@
-498,7
+494,7
@@
while (*s != 0)
/* There isn't much we can do for syntactic disasters at this stage.
Pro tem (possibly for ever) ignore them. */
/* There isn't much we can do for syntactic disasters at this stage.
Pro tem (possibly for ever) ignore them. */
- if (
recipient == NULL
)
+ if (
!recipient
)
{
store_reset(loop_reset_point);
continue;
{
store_reset(loop_reset_point);
continue;
@@
-544,8
+540,8
@@
while (*s != 0)
/* Can only qualify if permitted; if not, no rewrite. */
/* Can only qualify if permitted; if not, no rewrite. */
- if (changed && ((is_recipient && !allow_unqualified_recipient) ||
- (!is_recipient && !allow_unqualified_sender)))
+ if (changed && ((is_recipient && !
f.
allow_unqualified_recipient) ||
+ (!is_recipient && !
f.
allow_unqualified_sender)))
{
store_reset(loop_reset_point);
continue;
{
store_reset(loop_reset_point);
continue;
@@
-673,8
+669,8
@@
while (*s != 0)
}
}
}
}
-parse_allow_group = FALSE; /* Reset group flags */
-parse_found_group = FALSE;
+
f.
parse_allow_group = FALSE; /* Reset group flags */
+
f.
parse_found_group = FALSE;
/* If a rewrite happened and "replace" is true, put the new header into the
chain following the old one, and mark the old one as replaced. */
/* If a rewrite happened and "replace" is true, put the new header into the
chain following the old one, and mark the old one as replaced. */
@@
-771,7
+767,7
@@
Returns: nothing
void rewrite_test(uschar *s)
{
uschar *recipient, *error;
void rewrite_test(uschar *s)
{
uschar *recipient, *error;
-int
i,
start, end, domain;
+int start, end, domain;
BOOL done_smtp = FALSE;
if (rewrite_existflags == 0)
BOOL done_smtp = FALSE;
if (rewrite_existflags == 0)
@@
-808,14
+804,14
@@
if (parse_find_at(s) == NULL)
recipient = parse_extract_address(s, &error, &start, &end, &domain, FALSE);
recipient = parse_extract_address(s, &error, &start, &end, &domain, FALSE);
-if (
recipient == NULL
)
+if (
!recipient
)
{
if (!done_smtp)
printf("Syntax error in %s\n%c%s\n", s, toupper(error[0]), error+1);
return;
}
{
if (!done_smtp)
printf("Syntax error in %s\n%c%s\n", s, toupper(error[0]), error+1);
return;
}
-for (i = 0; i < 8; i++)
+for (i
nt i
= 0; i < 8; i++)
{
BOOL whole = FALSE;
int flag = 1 << i;
{
BOOL whole = FALSE;
int flag = 1 << i;