summaryrefslogtreecommitdiff
path: root/dns
diff options
context:
space:
mode:
authorRong-En Fan <rafan@FreeBSD.org>2007-08-21 01:33:56 +0000
committerRong-En Fan <rafan@FreeBSD.org>2007-08-21 01:33:56 +0000
commitfa77a4b1cf94f3d8c1a790afbe3c7b04dfa77d38 (patch)
treece5b174c0e7ea2dd7057fda7398e19ba231a0ad3 /dns
parent- fix MAINTAINER's email address (diff)
- Add a patch for chained CNAME
PR: ports/115297 Submitted by: rafan Approved by: farrokhi (maintainer) Obtained from: http://hugo.vulcano.cl/development/adns-cc
Notes
Notes: svn path=/head/; revision=197996
Diffstat (limited to 'dns')
-rw-r--r--dns/adns/Makefile1
-rw-r--r--dns/adns/files/patch-cname-chains56
2 files changed, 57 insertions, 0 deletions
diff --git a/dns/adns/Makefile b/dns/adns/Makefile
index 7e8ca98c662b..419620b1cefa 100644
--- a/dns/adns/Makefile
+++ b/dns/adns/Makefile
@@ -7,6 +7,7 @@
PORTNAME= adns
PORTVERSION= 1.4
+PORTREVISION= 1
CATEGORIES= dns
MASTER_SITES= ftp://ftp.chiark.greenend.org.uk/users/ian/adns/ \
http://www.chiark.greenend.org.uk/~ian/adns/ftp/
diff --git a/dns/adns/files/patch-cname-chains b/dns/adns/files/patch-cname-chains
new file mode 100644
index 000000000000..4958d48eafd8
--- /dev/null
+++ b/dns/adns/files/patch-cname-chains
@@ -0,0 +1,56 @@
+Index: src/query.c
+===================================================================
+--- src/query.c (revision 14)
++++ src/query.c (working copy)
+@@ -63,6 +63,10 @@
+
+ qu->cname_dgram= 0;
+ qu->cname_dglen= qu->cname_begin= 0;
++ /* Patch to allow CNAME chains */
++ /* Credits: Brad Spencer, see http://www.chiark.greenend.org.uk/pipermail/adns-discuss/2006/001161.html */
++ /* Allow CNAME chains up to some sane limit */
++ qu->cname_alias_hops_left = 10;
+
+ adns__vbuf_init(&qu->search_vb);
+ qu->search_origlen= qu->search_pos= qu->search_doneabs= 0;
+Index: src/internal.h
+===================================================================
+--- src/internal.h (revision 14)
++++ src/internal.h (working copy)
+@@ -231,6 +231,11 @@
+ int cname_dglen, cname_begin;
+ /* If non-0, has been allocated using . */
+
++ /* Patch to allow CNAME chains */
++ /* Credits: Brad Spencer, see http://www.chiark.greenend.org.uk/pipermail/adns-discuss/2006/001161.html */
++ int cname_alias_hops_left;
++ /* The number of cname alias hops we will allow */
++
+ vbuf search_vb;
+ int search_origlen, search_pos, search_doneabs;
+ /* Used by the searching algorithm. The query domain in textual form
+Index: src/reply.c
+===================================================================
+--- src/reply.c (revision 14)
++++ src/reply.c (working copy)
+@@ -190,12 +190,17 @@
+ if (qu->flags & adns_qf_cname_forbid) {
+ adns__query_fail(qu,adns_s_prohibitedcname);
+ return;
+- } else if (qu->cname_dgram) { /* Ignore second and subsequent CNAME(s) */
++ }
++
++ /* Patch to allow CNAME chains */
++ /* Credits: Brad Spencer, see http://www.chiark.greenend.org.uk/pipermail/adns-discuss/2006/001161.html */
++ else if (qu->cname_dgram && --(qu->cname_alias_hops_left) <= 0) { /* Don't follow "too long" CNAME chains */
+ adns__debug(ads,serv,qu,"allegedly canonical name %s"
+- " is actually alias for %s", qu->answer->cname,
++ " is actually alias for %s and aliases too deep",
++ qu->answer->cname,
+ adns__diag_domain(ads,serv,qu, &qu->vb,
+ dgram,dglen,rdstart));
+- adns__query_fail(qu,adns_s_prohibitedcname);
++ adns__query_fail(qu,adns_s_norecurse);
+ return;
+ } else if (wantedrrs) { /* Ignore CNAME(s) after RR(s). */
+ adns__debug(ads,serv,qu,"ignoring CNAME (to %s) coexisting with RR",