ph10 2006/02/03 15:26:54 GMT
Modified files:
exim-doc/doc-txt ChangeLog
exim-src/src parse.c
Log:
Always recognize IPv6 domain literal domains.
Revision Changes Path
1.283 +5 -0 exim/exim-doc/doc-txt/ChangeLog
1.6 +5 -10 exim/exim-src/src/parse.c
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.282
retrieving revision 1.283
diff -u -r1.282 -r1.283
--- ChangeLog 22 Dec 2005 14:54:50 -0000 1.282
+++ ChangeLog 3 Feb 2006 15:26:54 -0000 1.283
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.282 2005/12/22 14:54:50 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.283 2006/02/03 15:26:54 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -66,6 +66,11 @@
PH/12 In the smtp transport, treat an explicit ECONNRESET error the same as
an end-of-file indication when reading a command response.
+
+PH/13 Domain literals for IPv6 were not recognized unless IPv6 support was
+ compiled. In many other places in Exim, IPv6 addresses are always
+ recognized, so I have changed this. It also means that IPv4 domain
+ literals of the form [IPV4:n.n.n.n] are now always recognized.
Exim version 4.60
Index: parse.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/parse.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- parse.c 27 Jun 2005 14:29:43 -0000 1.5
+++ parse.c 3 Feb 2006 15:26:54 -0000 1.6
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/parse.c,v 1.5 2005/06/27 14:29:43 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/parse.c,v 1.6 2006/02/03 15:26:54 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -243,18 +243,17 @@
any character except [ ] \, including linear white space, and may contain
quoted characters. However, RFC 821 restricts literals to being dot-separated
3-digit numbers, and we make the obvious extension for IPv6. Go for a sequence
-of digits and dots (hex digits and colons for IPv6) here; later this will be
-checked for being a syntactically valid IP address if it ever gets to a router.
+of digits, dots, hex digits, and colons here; later this will be checked for
+being a syntactically valid IP address if it ever gets to a router.
-If IPv6 is supported, allow both the formal form, with IPV6: at the start, and
-the informal form without it, and accept IPV4: as well, 'cause someone will use
-it sooner or later. */
+Allow both the formal IPv6 form, with IPV6: at the start, and the informal form
+without it, and accept IPV4: as well, 'cause someone will use it sooner or
+later. */
if (*s == '[')
{
*t++ = *s++;
- #if HAVE_IPV6
if (strncmpic(s, US"IPv6:", 5) == 0 || strncmpic(s, US"IPv4:", 5) == 0)
{
memcpy(t, s, 5);
@@ -262,10 +261,6 @@
s += 5;
}
while (*s == '.' || *s == ':' || isxdigit(*s)) *t++ = *s++;
-
- #else
- while (*s == '.' || isdigit(*s)) *t++ = *s++;
- #endif
if (*s == ']') *t++ = *s++; else
{