ph10 2006/02/13 16:23:57 GMT
Modified files:
exim-doc/doc-txt ChangeLog
exim-src/src smtp_in.c
exim-test/dnszones-src db.ip4.V4NET
Log:
Fix "(during SMTP connection from NULL)" bug.
Revision Changes Path
1.295 +5 -0 exim/exim-doc/doc-txt/ChangeLog
1.32 +9 -4 exim/exim-src/src/smtp_in.c
1.2 +5 -1 exim/exim-test/dnszones-src/db.ip4.V4NET
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.294
retrieving revision 1.295
diff -u -r1.294 -r1.295
--- ChangeLog 13 Feb 2006 12:02:59 -0000 1.294
+++ ChangeLog 13 Feb 2006 16:23:57 -0000 1.295
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.294 2006/02/13 12:02:59 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.295 2006/02/13 16:23:57 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -143,6 +143,11 @@
PH/26 Added the /no_tell option to "control=freeze".
+PH/27 If a host name lookup failed very early in a connection, for example, if
+ the IP address matched host_lookup and the reverse lookup yielded a name
+ that did not have a forward lookup, an error message of the form "no IP
+ address found for host xxx.xxx.xxx (during SMTP connection from NULL)"
+ could be logged. Now it outputs the IP address instead of "NULL".
Exim version 4.60
Index: smtp_in.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/smtp_in.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- smtp_in.c 13 Feb 2006 12:02:59 -0000 1.31
+++ smtp_in.c 13 Feb 2006 16:23:57 -0000 1.32
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/smtp_in.c,v 1.31 2006/02/13 12:02:59 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/smtp_in.c,v 1.32 2006/02/13 16:23:57 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -626,6 +626,8 @@
/* This function is called when logging information about an SMTP connection.
It sets up appropriate source information, depending on the type of connection.
+If sender_fullhost is NULL, we are at a very early stage of the connection;
+just use the IP address.
Argument: none
Returns: a string describing the connection
@@ -634,21 +636,24 @@
uschar *
smtp_get_connection_info(void)
{
+uschar *hostname = (sender_fullhost == NULL)?
+ sender_host_address : sender_fullhost;
+
if (host_checking)
- return string_sprintf("SMTP connection from %s", sender_fullhost);
+ return string_sprintf("SMTP connection from %s", hostname);
if (sender_host_unknown || sender_host_notsocket)
return string_sprintf("SMTP connection from %s", sender_ident);
if (is_inetd)
- return string_sprintf("SMTP connection from %s (via inetd)", sender_fullhost);
+ return string_sprintf("SMTP connection from %s (via inetd)", hostname);
if ((log_extra_selector & LX_incoming_interface) != 0 &&
interface_address != NULL)
- return string_sprintf("SMTP connection from %s I=[%s]:%d", sender_fullhost,
+ return string_sprintf("SMTP connection from %s I=[%s]:%d", hostname,
interface_address, interface_port);
-return string_sprintf("SMTP connection from %s", sender_fullhost);
+return string_sprintf("SMTP connection from %s", hostname);
}
Index: db.ip4.V4NET
===================================================================
RCS file: /home/cvs/exim/exim-test/dnszones-src/db.ip4.V4NET,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- db.ip4.V4NET 6 Feb 2006 16:22:56 -0000 1.1
+++ db.ip4.V4NET 13 Feb 2006 16:23:57 -0000 1.2
@@ -1,4 +1,4 @@
-; $Cambridge: exim/exim-test/dnszones-src/db.ip4.V4NET,v 1.1 2006/02/06 16:22:56 ph10 Exp $
+; $Cambridge: exim/exim-test/dnszones-src/db.ip4.V4NET,v 1.2 2006/02/13 16:23:57 ph10 Exp $
; This is a testing reverse zone file for use when testing DNS handling in
; Exim. This is a fake zone of no real use - hence no SOA record. The zone name
@@ -48,10 +48,14 @@
96.99.99 PTR x.test.again.dns.
; This IP number points back to a legitimate host, but also to a name that
-; isn't forward registered
+; does not forward resolve to the same address
90.99.99 PTR oneback.test.ex.
90.99.99 PTR host1.masq.test.ex.
+
+; This IP number points back to a host that does not exist
+
+80.99.99 PTR nonexist.test.ex.
; This is a duff registration for testing