From: amosjeffries <>
Date: Fri, 11 Jan 2008 10:49:18 +0000 (+0000)
Subject: AAAA/A failover fix and CNAME recursion deprecation
X-Git-Tag: BASIC_TPROXY4~197
X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bae9832dd15d8221a56cae6e5f8c699a8621ce2d;p=thirdparty%2Fsquid.git
AAAA/A failover fix and CNAME recursion deprecation
A bug in the final version of squid internal DNS resolver logics
caused any failover A results to overwrite the paired previous AAAA.
This patch adds state to store the DNS results between failover queries
and to merge the final sets before passing them out to the requestor.
Lookups should now be seemlessly handled within the DNS resolver stub.
CNAME recursion at the ipcache level should now be obsolete and has been
wrapped in a new ./configure --with-dns-cname option which defaults off.
That code has proven to be problematic anyway and will be no great loss.
Additional counters have been added to the squid statistics to track the
amount of queries of each type have been encountered.
---
diff --git a/configure.in b/configure.in
index b0248288b0..976104b0aa 100644
--- a/configure.in
+++ b/configure.in
@@ -1,7 +1,7 @@
dnl Configuration input file for Squid
dnl
-dnl $Id: configure.in,v 1.493 2007/12/27 15:48:53 hno Exp $
+dnl $Id: configure.in,v 1.494 2008/01/11 03:49:18 amosjeffries Exp $
dnl
dnl
dnl
@@ -11,7 +11,7 @@ AM_CONFIG_HEADER(include/autoconf.h)
AC_CONFIG_AUX_DIR(cfgaux)
AC_CONFIG_SRCDIR([src/main.cc])
AM_INIT_AUTOMAKE([tar-ustar])
-AC_REVISION($Revision: 1.493 $)dnl
+AC_REVISION($Revision: 1.494 $)dnl
AC_PREFIX_DEFAULT(/usr/local/squid)
AM_MAINTAINER_MODE
@@ -1790,6 +1790,15 @@ AC_ARG_WITH(localhost-ipv6,
# end IPv6-only options
fi
+dnl Optional CNAME-Recursion by Internal DNS engine
+AC_MSG_CHECKING([whether DNS CNAME recursion wanted])
+AC_ARG_WITH(dns-cname,
+ [ --with-dns-cname Enable CNAME-Recursion in Internal DNS stub.],
+ [AC_DEFINE(DNS_CNAME, 1, [ 1 == Enable expermental CNAME recursion inside Squid DNS resolver stub]) AC_MSG_RESULT(yes)],
+ [AC_DEFINE(DNS_CNAME, 0, [ 0 == Disable expermental CNAME recursion inside Squid DNS resolver stub]) AC_MSG_RESULT(no)]
+)
+
+
AC_ARG_WITH(filedescriptors,
[ --with-filedescriptors=NUMBER
Force squid to support NUMBER filedescriptors],
diff --git a/doc/release-notes/release-3.1.html b/doc/release-notes/release-3.1.html
index 5afdc230b0..23f45698c9 100644
--- a/doc/release-notes/release-3.1.html
+++ b/doc/release-notes/release-3.1.html
@@ -7,7 +7,7 @@
$Id: release-3.1.html,v 1.4 2008/01/11 03:49:18 amosjeffries Exp $
This document contains the release notes for version 3.1 of Squid.
Squid is a WWW Cache application developed by the National Laboratory
@@ -50,7 +50,7 @@ While this release is not deemed ready for production use, we believe it is read
Internet Protocol version 6 (IPv6)
-
Squid 3.1 supports IPv6. To enable IPv6 support, use the --enable-ipv6 ./configure option
+
Squid 3.1 supports IPv6. To enable IPv6 support, use the ./configure --enable-ipv6 option
New Features for IPv6
@@ -185,7 +185,6 @@ Squid will follow a policy of prefering IPv6 links, keeping the IPv4 only as a s
-
Changes to existing tags
@@ -202,7 +201,9 @@ Squid will follow a policy of prefering IPv6 links, keeping the IPv4 only as a s
external_acl_type
New options 'ipv4' and 'ipv6' are added to set the IPv4/v6 protocol between squid and its helpers.
-Please be aware of some limits to these options. see IPv6 Limits in section 2 above.
+Please be aware of some limits to these options. These options only affet the transport protocol used
+to send data to and from the helpers. Squid in IPv6-mode may still send %SRC addresses in IPv4 or IPv6
+format, so all helpers will need to be checked and converted to cope with such information cleanly.
ipv4 / ipv6 IP-mode used to communicate to this helper.
For compatability with older configurations and helpers
@@ -300,7 +301,7 @@ It has thus been turned off by default. Making the 'best choice' IP continue in
The default is to build with 127.0.0.1 and ::1 being considered seperate IP.
see the IPv6 details above for a better description.
-
--with-ipv6-split-stack<
+
--with-ipv6-split-stack
Enable special additions for IPv6 support in Windows XP.
see the IPv6 details above for a better description.
@@ -308,6 +309,15 @@ see the IPv6 details above for a better description.
Enable special additions for IPv6 support in Windows Vista.
see the IPv6 details above for a better description.
+
--with-dns-cname
+
Enable CNAME recursion within the Internal DNS resolver stub squid uses.
+This has no effect on the external DNS helper.
+Please note this extension is still experimental and may encounter problems.
+To see if it is actually needed you can run squid without it for a period and
+check the CNAME-Only Requests statistics squid maintains.
+If it produces ongoing serious problems the external helper may be needed
+but please report the bugs anyway.
+
Changes to existing options
diff --git a/doc/release-notes/release-3.1.man b/doc/release-notes/release-3.1.man
index 2eb458621a..b183dac3b7 100644
--- a/doc/release-notes/release-3.1.man
+++ b/doc/release-notes/release-3.1.man
@@ -1,4 +1,4 @@
-Squid 3.1.PRE1 release notesSquid Developers$Id: release-3.1.man,v 1.3 2008/01/11 02:38:58 amosjeffries Exp $This document contains the release notes for version 3.1 of Squid.
+Squid 3.1.PRE1 release notesSquid Developers$Id: release-3.1.man,v 1.4 2008/01/11 03:49:18 amosjeffries Exp $This document contains the release notes for version 3.1 of Squid.
Squid is a WWW Cache application developed by the National Laboratory
for Applied Network Research and members of the Web Caching community.Notice
@@ -45,7 +45,7 @@ Most user-facing changes are reflected in squid.conf (see below).
Internet Protocol version 6 (IPv6)
.Pp
-Squid 3.1 supports IPv6. To enable IPv6 support, use the --enable-ipv6 ./configure option
+Squid 3.1 supports IPv6. To enable IPv6 support, use the ./configure --enable-ipv6 option
.Pp
New Features for IPv6
@@ -231,7 +231,6 @@ New option to import entire secondary configuration files into squid.conf.
.if \n(ll>1 .RE
.nr ll -1
.Pp
-.Pp
Changes to existing tags
.Pp
@@ -260,7 +259,9 @@ New preset content
.nr bi 1
.Pp
New options 'ipv4' and 'ipv6' are added to set the IPv4/v6 protocol between squid and its helpers.
-Please be aware of some limits to these options. see IPv6 Limits in section 2 above.
+Please be aware of some limits to these options. These options only affet the transport protocol used
+to send data to and from the helpers. Squid in IPv6-mode may still send %SRC addresses in IPv4 or IPv6
+format, so all helpers will need to be checked and converted to cope with such information cleanly.
.DS
.sp
.ft RR
@@ -391,7 +392,7 @@ Build support for squid to map all 127.0.0.1 traffic onto ::1.
The default is to build with 127.0.0.1 and ::1 being considered seperate IP.
see the IPv6 details above for a better description.
.Pp
-.IP "--with-ipv6-split-stack<"
+.IP "--with-ipv6-split-stack"
.nr bi 1
.Pp
Enable special additions for IPv6 support in Windows XP.
@@ -403,6 +404,17 @@ see the IPv6 details above for a better description.
Enable special additions for IPv6 support in Windows Vista.
see the IPv6 details above for a better description.
.Pp
+.IP "--with-dns-cname"
+.nr bi 1
+.Pp
+Enable CNAME recursion within the Internal DNS resolver stub squid uses.
+This has no effect on the external DNS helper.
+Please note this extension is still experimental and may encounter problems.
+To see if it is actually needed you can run squid without it for a period and
+check the CNAME-Only Requests statistics squid maintains.
+If it produces ongoing serious problems the external helper may be needed
+but please report the bugs anyway.
+.Pp
.if \n(ll>1 .RE
.nr ll -1
Changes to existing options
diff --git a/doc/release-notes/release-3.1.sgml b/doc/release-notes/release-3.1.sgml
index f83dd7a499..a1fd8fbdf2 100644
--- a/doc/release-notes/release-3.1.sgml
+++ b/doc/release-notes/release-3.1.sgml
@@ -2,7 +2,7 @@
Squid 3.1.PRE1 release notesSquid Developers
-$Id: release-3.1.sgml,v 1.3 2008/01/11 02:38:58 amosjeffries Exp $
+$Id: release-3.1.sgml,v 1.4 2008/01/11 03:49:18 amosjeffries Exp $
This document contains the release notes for version 3.1 of Squid.
@@ -47,7 +47,7 @@ Most user-facing changes are reflected in squid.conf (see below).
Internet Protocol version 6 (IPv6)
-
Squid 3.1 supports IPv6. To enable IPv6 support, use the --enable-ipv6 ./configure option
+
Squid 3.1 supports IPv6. To enable IPv6 support, use the ./configure --enable-ipv6 option
New Features for IPv6
@@ -168,7 +168,6 @@ This section gives a thorough account of those changes in three categories:
-
Changes to existing tags