ph10 2004/12/21 12:21:46 GMT
Modified files:
exim-doc/doc-txt ChangeLog NewStuff
exim-src/src/lookups dnsdb.c
exim-test-orig/AutoTest/scripts 082
exim-test-orig/AutoTest/stdout 082
Log:
Check dnsdb PTR key for IP address before playing the reversing game.
Revision Changes Path
1.53 +5 -0 exim/exim-doc/doc-txt/ChangeLog
1.22 +4 -0 exim/exim-doc/doc-txt/NewStuff
1.7 +5 -3 exim/exim-src/src/lookups/dnsdb.c
1.10 +2 -1 exim/exim-test-orig/AutoTest/scripts/082
1.10 +2 -1 exim/exim-test-orig/AutoTest/stdout/082
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- ChangeLog 21 Dec 2004 12:00:59 -0000 1.52
+++ ChangeLog 21 Dec 2004 12:21:46 -0000 1.53
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.52 2004/12/21 12:00:59 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.53 2004/12/21 12:21:46 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -233,6 +233,11 @@
of ldap_search was unknown to exim because of LDAP_RES_SEARCH_REFERENCE.
But simultaneously result of request was absolutely normal ldap result,
so I produce this patch..."
+
+55. Some experimental protocols are using DNS PTR records for new purposes. The
+ keys for these records are domain names, not reversed IP addresses. The
+ dnsdb lookup now tests whether it's key is an IP address. If not, it leaves
+ it alone. Component reversal etc. now happens only for IP addresses.
Exim version 4.43
Index: NewStuff
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- NewStuff 20 Dec 2004 15:24:27 -0000 1.21
+++ NewStuff 21 Dec 2004 12:21:46 -0000 1.22
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.21 2004/12/20 15:24:27 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.22 2004/12/21 12:21:46 ph10 Exp $
New Features in Exim
--------------------
@@ -233,6 +233,10 @@
19. The Exiscan patch is now merged into the main source. See src/EDITME for
parameters for the build.
+
+20. If the key for a dnsdb lookup is not an IP address, it is used verbatim,
+ without component reversal and without the addition of in-addr.arpa or
+ ip6.arpa.
Version 4.43
Index: dnsdb.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/lookups/dnsdb.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- dnsdb.c 20 Dec 2004 15:24:28 -0000 1.6
+++ dnsdb.c 21 Dec 2004 12:21:46 -0000 1.7
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/lookups/dnsdb.c,v 1.6 2004/12/20 15:24:28 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/lookups/dnsdb.c,v 1.7 2004/12/21 12:21:46 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -231,10 +231,12 @@
int searchtype = (type == T_ZNS)? T_NS : /* record type we want */
(type == T_MXH)? T_MX : type;
- /* If the type is PTR, we have to construct the relevant magic lookup
- key. This code is now in a separate function. */
+ /* If the type is PTR, we have to construct the relevant magic lookup key if
+ the original is an IP address (some experimental protocols are using PTR
+ records for different purposes where the key string is a host name). This
+ code for doing the reversal is now in a separate function. */
- if (type == T_PTR)
+ if (type == T_PTR && string_is_ip_address(domain, NULL))
{
dns_build_reverse(domain, rbuffer);
domain = rbuffer;
Index: 082
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/scripts/082,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- 082 20 Dec 2004 15:24:28 -0000 1.9
+++ 082 21 Dec 2004 12:21:46 -0000 1.10
@@ -439,7 +439,8 @@
zns=x.y.z.test.ex ${lookup dnsdb{zns=x.y.z.test.ex}{$value}fail}
mx=mxt1.test.ex ${lookup dnsdb{mx=mxt1.test.ex}{$value}fail}
mxh=mxt1.test.ex ${lookup dnsdb{mxh=mxt1.test.ex}{$value}fail}
-ptr=131.111.10.206 ${lookup dnsdb{ptr=131.111.10.206}{$value}fail}
+ptr=10.0.0.1 ${lookup dnsdb{ptr=10.0.0.1}{$value}fail}
+ptr=ptr.test.ex ${lookup dnsdb{ptr=ptr.test.ex}{$value}fail}
a6=xoanon.ipv6.test.ex ${lookup dnsdb {a6=xoanon.ipv6.test.ex}{$value}{fail}}
a6=prefix.ipv6.test.ex ${lookup dnsdb {a6=prefix.ipv6.test.ex}{$value}{fail}}
ptr=fe80:0:12:1:a00:20ff:fe86:a062 ${lookup dnsdb {ptr=<;fe80:0:12:1:a00:20ff:fe86:a062}{$value}{fail}}
Index: 082
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/082,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- 082 20 Dec 2004 15:24:28 -0000 1.9
+++ 082 21 Dec 2004 12:21:46 -0000 1.10
@@ -435,7 +435,8 @@
> zns=x.y.z.test.ex xoanon.csi.cam.ac.uk
> mx=mxt1.test.ex 5 xoanon.csi.cam.ac.uk
> mxh=mxt1.test.ex xoanon.csi.cam.ac.uk
-> ptr=131.111.10.206 xoanon.csi.cam.ac.uk
+> ptr=10.0.0.1 ten-1.test.ex
+> ptr=ptr.test.ex data.for.ptr.test.ex
> Failed: lookup of "a6=xoanon.ipv6.test.ex" gave DEFER: unsupported DNS record type
> Failed: lookup of "a6=prefix.ipv6.test.ex" gave DEFER: unsupported DNS record type
> ptr=fe80:0:12:1:a00:20ff:fe86:a062 testptr-arpa.ipv6.test.ex