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
Update all copyright messages to cover 1995 - 2009. Remove tab from exim_checkaccess.src
[exim.git]
/
src
/
src
/
routers
/
rf_lookup_hostlist.c
diff --git
a/src/src/routers/rf_lookup_hostlist.c
b/src/src/routers/rf_lookup_hostlist.c
index a5beb49f4f7c2cafed52a4d05b6799c5f635039e..b47d3283581f62e78e2f73cb96bfc05aa711f8c1 100644
(file)
--- a/
src/src/routers/rf_lookup_hostlist.c
+++ b/
src/src/routers/rf_lookup_hostlist.c
@@
-1,10
+1,10
@@
-/* $Cambridge: exim/src/src/routers/rf_lookup_hostlist.c,v 1.
9 2007/03/13 15:32:48 ph10
Exp $ */
+/* $Cambridge: exim/src/src/routers/rf_lookup_hostlist.c,v 1.
11 2009/11/16 19:50:38 nm4
Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 200
7
*/
+/* Copyright (c) University of Cambridge 1995 - 200
9
*/
/* See the file NOTICE for conditions of use and distribution. */
/* See the file NOTICE for conditions of use and distribution. */
@@
-64,13
+64,13
@@
list of MX hosts. If the first host is the local host, act according to the
"self" option in the configuration. */
prev = NULL;
"self" option in the configuration. */
prev = NULL;
-for (h = addr->host_list; h != NULL;
prev = h,
h = next_h)
+for (h = addr->host_list; h != NULL; h = next_h)
{
uschar *canonical_name;
int rc, len, port;
next_h = h->next;
{
uschar *canonical_name;
int rc, len, port;
next_h = h->next;
- if (h->address != NULL)
continue;
+ if (h->address != NULL)
{ prev = h; continue; }
DEBUG(D_route|D_host_lookup)
debug_printf("finding IP address for %s\n", h->name);
DEBUG(D_route|D_host_lookup)
debug_printf("finding IP address for %s\n", h->name);
@@
-160,8
+160,7
@@
for (h = addr->host_list; h != NULL; prev = h, h = next_h)
if (hff_code == hff_ignore)
{
if (prev == NULL) addr->host_list = next_h; else prev->next = next_h;
if (hff_code == hff_ignore)
{
if (prev == NULL) addr->host_list = next_h; else prev->next = next_h;
- h = prev; /* Because the loop sets prev to h */
- continue; /* With the next host */
+ continue; /* With the next host, leave prev unchanged */
}
if (hff_code == hff_pass) return PASS;
}
if (hff_code == hff_pass) return PASS;
@@
-213,6
+212,12
@@
for (h = addr->host_list; h != NULL; prev = h, h = next_h)
}
self_send = TRUE;
}
}
self_send = TRUE;
}
+
+ /* Ensure that prev is the host before next_h; this will not be h if a lookup
+ found multiple addresses or multiple MX records. */
+
+ prev = h;
+ while (prev->next != next_h) prev = prev->next;
}
return OK;
}
return OK;