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 version number and copyright year.
[exim.git]
/
src
/
src
/
routers
/
iplookup.c
diff --git
a/src/src/routers/iplookup.c
b/src/src/routers/iplookup.c
index f4120d91c6ef606f79abe9c70ac0fbb0202b54bd..97bff0a8c02528a8918e773a88f4247f2ebe8ff4 100644
(file)
--- a/
src/src/routers/iplookup.c
+++ b/
src/src/routers/iplookup.c
@@
-1,10
+1,10
@@
-/* $Cambridge: exim/src/src/routers/iplookup.c,v 1.
3 2005/06/27 14:29:44
ph10 Exp $ */
+/* $Cambridge: exim/src/src/routers/iplookup.c,v 1.
10 2007/01/08 10:50:20
ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 200
5
*/
+/* Copyright (c) University of Cambridge 1995 - 200
7
*/
/* See the file NOTICE for conditions of use and distribution. */
/* See the file NOTICE for conditions of use and distribution. */
@@
-137,7
+137,7
@@
iplookup_router_entry(
router_instance *rblock, /* data for this instantiation */
address_item *addr, /* address we are working on */
struct passwd *pw, /* passwd entry after check_local_user */
router_instance *rblock, /* data for this instantiation */
address_item *addr, /* address we are working on */
struct passwd *pw, /* passwd entry after check_local_user */
-
BOOL verify, /* TRUE when verifying
*/
+
int verify, /* v_none/v_recipient/v_sender/v_expn
*/
address_item **addr_local, /* add it to this if it's local */
address_item **addr_remote, /* add it to this if it's remote */
address_item **addr_new, /* put new addresses on here */
address_item **addr_local, /* add it to this if it's local */
address_item **addr_remote, /* add it to this if it's remote */
address_item **addr_new, /* put new addresses on here */
@@
-202,11
+202,11
@@
while ((hostname = string_nextinlist(&listptr, &sep, host_buffer,
host->mx = MX_NONE;
host->next = NULL;
host->mx = MX_NONE;
host->next = NULL;
- if (string_is_ip_address(host->name, NULL))
+ if (string_is_ip_address(host->name, NULL)
!= 0
)
host->address = host->name;
else
{
host->address = host->name;
else
{
- int rc = host_find_byname(host, NULL, NULL, TRUE);
+ int rc = host_find_byname(host, NULL,
HOST_FIND_QUALIFY_SINGLE,
NULL, TRUE);
if (rc == HOST_FIND_FAILED || rc == HOST_FIND_AGAIN) continue;
}
if (rc == HOST_FIND_FAILED || rc == HOST_FIND_AGAIN) continue;
}
@@
-240,6
+240,7
@@
while ((hostname = string_nextinlist(&listptr, &sep, host_buffer,
if (ip_connect(query_socket, host_af, h->address,ob->port, ob->timeout) < 0)
{
if (ip_connect(query_socket, host_af, h->address,ob->port, ob->timeout) < 0)
{
+ close(query_socket);
DEBUG(D_route)
debug_printf("connection to %s failed: %s\n", h->address,
strerror(errno));
DEBUG(D_route)
debug_printf("connection to %s failed: %s\n", h->address,
strerror(errno));
@@
-377,6
+378,9
@@
new_addr->parent = addr;
copyflag(new_addr, addr, af_propagate);
new_addr->p = addr->p;
copyflag(new_addr, addr, af_propagate);
new_addr->p = addr->p;
+if (addr->child_count == SHRT_MAX)
+ log_write(0, LOG_MAIN|LOG_PANIC_DIE, "%s router generated more than %d "
+ "child addresses for <%s>", rblock->name, SHRT_MAX, addr->address);
addr->child_count++;
new_addr->next = *addr_new;
*addr_new = new_addr;
addr->child_count++;
new_addr->next = *addr_new;
*addr_new = new_addr;