projects
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
More bug-fixes, GSASL DIGEST-MD5 now works.
[exim.git]
/
src
/
src
/
routers
/
iplookup.c
diff --git
a/src/src/routers/iplookup.c
b/src/src/routers/iplookup.c
index e7fba34470426cd1253a99bf9387f95a26074ad1..e9c4df91959716661f2efaa4c51030ba32bf5f07 100644
(file)
--- a/
src/src/routers/iplookup.c
+++ b/
src/src/routers/iplookup.c
@@
-1,10
+1,8
@@
-/* $Cambridge: exim/src/src/routers/iplookup.c,v 1.4 2005/09/12 15:09:55 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
9
*/
/* See the file NOTICE for conditions of use and distribution. */
/* See the file NOTICE for conditions of use and distribution. */
@@
-202,11
+200,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
+238,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
+376,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;