From: Philip Hazel Date: Fri, 3 Feb 2006 15:26:54 +0000 (+0000) Subject: Always recognize IPv6 domain literal domains. X-Git-Tag: exim-4_61~85 X-Git-Url: https://vcs.fsf.org/?p=exim.git;a=commitdiff_plain;h=309bd837529724b7574e2b0b7bdaf1a271137199 Always recognize IPv6 domain literal domains. --- diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index dc2d0ceff..212ec706c 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -1,4 +1,4 @@ -$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.282 2005/12/22 14:54:50 ph10 Exp $ +$Cambridge: 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 ------------------------------------------- @@ -67,6 +67,11 @@ PH/11 The exinext utility has a -C option for testing purposes, but although 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 ----------------- diff --git a/src/src/parse.c b/src/src/parse.c index 252628e1a..c4936ca94 100644 --- a/src/src/parse.c +++ b/src/src/parse.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/parse.c,v 1.5 2005/06/27 14:29:43 ph10 Exp $ */ +/* $Cambridge: 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 @@ s = skip_comment(s); 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); @@ -263,10 +262,6 @@ if (*s == '[') } while (*s == '.' || *s == ':' || isxdigit(*s)) *t++ = *s++; - #else - while (*s == '.' || isdigit(*s)) *t++ = *s++; - #endif - if (*s == ']') *t++ = *s++; else { *errorptr = US"malformed domain literal";