From 794c2f9267376a304256dd87a150959e90385f11 Mon Sep 17 00:00:00 2001 From: Peter van Dijk Date: Mon, 17 Sep 2012 08:46:18 +0000 Subject: [PATCH] Add presigned tests. Improve DNSKEY and NSEC3PARAM query handling, including for ANY queries (this fixes some presigned BOGUS validations). Fix TTLs on NSEC, NSEC3, SOA, RRSIG SOA and inside RRSIG SOA. Add bufsize support to sdig. Update all relevant testcases. git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@2709 d19b8d6e-7fed-0310-83ef-9ca221ded41b --- modules/tinydnsbackend/data | 5 +- modules/tinydnsbackend/data.cdb | Bin 1344958 -> 1344770 bytes pdns/dbdnsseckeeper.cc | 7 +- pdns/dns.hh | 3 +- pdns/dnssecinfra.hh | 2 +- pdns/dnsseckeeper.hh | 2 +- pdns/dnssecsigner.cc | 20 +++- pdns/packethandler.cc | 103 ++++++------------ pdns/packethandler.hh | 4 +- pdns/sdig.cc | 31 +++++- pdns/tcpreceiver.cc | 14 ++- .../tinydns-data-check/expected_result | 6 +- regression-tests/any-query/command | 2 +- regression-tests/any-query/expected_result | 4 +- .../any-query/expected_result.dnssec | 14 ++- .../any-query/expected_result.narrow | 17 ++- .../any-query/expected_result.nsec3 | 17 ++- regression-tests/any-wildcard-dnssec/command | 4 + .../any-wildcard-dnssec/expected_result | 7 ++ .../expected_result.narrow | 7 ++ .../any-wildcard-dnssec/expected_result.nsec3 | 7 ++ .../basic-soa-resolution/expected_result | 2 +- regression-tests/cleandig | 1 + .../cname-but-no-correct-type/expected_result | 2 +- .../ds-at-unsecure-delegation/command | 2 +- .../ds-at-unsecure-delegation/expected_result | 8 +- .../expected_result.narrow | 11 +- .../expected_result.nsec3 | 11 +- .../ds-at-unsecure-zone-cut/command | 2 +- .../ds-at-unsecure-zone-cut/expected_result | 8 +- .../expected_result.narrow | 11 +- .../expected_result.nsec3 | 11 +- .../expected_result.dnssec | 2 +- .../expected_result.narrow | 4 +- .../expected_result.nsec3 | 4 +- regression-tests/example.com | 4 +- .../command | 2 +- .../expected_result | 8 +- .../expected_result.narrow | 6 + .../expected_result.nsec3 | 8 +- regression-tests/five-levels-wildcard/command | 2 +- .../five-levels-wildcard/expected_result | 8 +- .../expected_result.narrow | 6 + .../expected_result.nsec3 | 8 +- .../minimal-noerror/expected_result | 2 +- .../minimal-noerror/expected_result.narrow | 2 +- .../minimal-noerror/expected_result.nsec3 | 2 +- .../minimal-nxdomain/expected_result | 2 +- .../minimal-nxdomain/expected_result.narrow | 2 +- .../minimal-nxdomain/expected_result.nsec3 | 2 +- .../expected_result | 2 +- .../expected_result | 2 +- .../ns-with-identical-glue/expected_result | 2 +- regression-tests/nsec-bitmap/command | 2 +- regression-tests/nsec-bitmap/expected_result | 6 +- .../nsec-bitmap/expected_result.narrow | 8 +- .../nsec-bitmap/expected_result.nsec3 | 8 +- .../nsec-glue-at-delegation/command | 2 + .../nsec-glue-at-delegation/expected_result | 7 ++ .../expected_result.narrow | 9 ++ .../expected_result.nsec3 | 9 ++ regression-tests/nsec-glue/command | 2 +- regression-tests/nsec-glue/expected_result | 11 +- .../nsec-glue/expected_result.narrow | 10 +- .../nsec-glue/expected_result.nsec3 | 14 ++- regression-tests/nsec-middle/command | 2 +- regression-tests/nsec-middle/expected_result | 11 +- .../nsec-middle/expected_result.narrow | 10 +- .../nsec-middle/expected_result.nsec3 | 14 ++- regression-tests/nsec-wildcard/command | 2 +- .../nsec-wildcard/expected_result | 11 +- .../nsec-wildcard/expected_result.narrow | 9 +- .../nsec-wildcard/expected_result.nsec3 | 11 +- regression-tests/nsec-wraparound/command | 2 +- .../nsec-wraparound/expected_result | 11 +- .../nsec-wraparound/expected_result.nsec3 | 14 ++- .../nsec-wrong-type-at-apex/command | 2 +- .../nsec-wrong-type-at-apex/expected_result | 8 +- .../expected_result.narrow | 8 +- .../expected_result.nsec3 | 8 +- regression-tests/nsec-wrong-type/command | 2 +- .../nsec-wrong-type/expected_result | 8 +- .../nsec-wrong-type/expected_result.narrow | 8 +- .../nsec-wrong-type/expected_result.nsec3 | 8 +- .../nxdomain-below-nonempty-terminal/command | 2 +- .../expected_result | 11 +- .../expected_result.narrow | 10 +- .../expected_result.nsec3 | 14 ++- .../expected_result | 2 +- .../second-level-nxdomain/command | 2 +- .../second-level-nxdomain/expected_result | 11 +- .../expected_result.narrow | 10 +- .../expected_result.nsec3 | 14 ++- regression-tests/start-test-stop | 85 +++++++++++++-- regression-tests/test.com | 4 +- regression-tests/two-level-nxdomain/command | 2 +- .../two-level-nxdomain/expected_result | 11 +- .../two-level-nxdomain/expected_result.narrow | 10 +- .../two-level-nxdomain/expected_result.nsec3 | 14 ++- 99 files changed, 642 insertions(+), 222 deletions(-) create mode 100644 regression-tests/any-wildcard-dnssec/command create mode 100644 regression-tests/any-wildcard-dnssec/expected_result create mode 100644 regression-tests/any-wildcard-dnssec/expected_result.narrow create mode 100644 regression-tests/any-wildcard-dnssec/expected_result.nsec3 create mode 100644 regression-tests/nsec-glue-at-delegation/command create mode 100644 regression-tests/nsec-glue-at-delegation/expected_result create mode 100644 regression-tests/nsec-glue-at-delegation/expected_result.narrow create mode 100644 regression-tests/nsec-glue-at-delegation/expected_result.nsec3 diff --git a/modules/tinydnsbackend/data b/modules/tinydnsbackend/data index c6465897fc..0be23c24d4 100644 --- a/modules/tinydnsbackend/data +++ b/modules/tinydnsbackend/data @@ -1,10 +1,9 @@ #2000081501 auto axfr-get -Zexample.com:ns1.example.com.:ahu.example.com.:2000081501:28800:7200:604800:86400:120 +Zexample.com:ns1.example.com.:ahu.example.com.:2000081501:28800:7200:604800:86400:100000 &example.com::ns1.example.com.:120 &example.com::ns2.example.com.:120 @example.com::smtp-servers.example.com.:10:120 @example.com::smtp-servers.test.com.:15:120 -:example.com:48:\001\000\003\005\003\001\000\001\252\323\210xO\202\360\366\361\140\215\361\100WpG\037\361\377\216\027\347\177lJ\015\3534\356\036\137\350V\266\271\376\247\350\236\026\012\375\030\310\357\204s\035\315\260\226\057S\245s\226\311\304\025\335\204\237\244V\175\317\341\201\375\266\354\274\032\047\325s25\376J\136\343\260E\321\331\134\206a\325\311.\334\007\010\310\332\350\017n\214\076F\305\054v4\373\024H\373\273\273\072\304\072\235\207\017\006\232\203\210\231\301\330\023\041:120 :escapedtext.example.com:16:\005begin\022the\040\042middle\042\040p\134art\007the\040end:120 Cexternal.example.com:somewhere.else.net.:120 @external-mail.example.com::server1.test.com.:25:120 @@ -20130,7 +20129,7 @@ Ztest.com:ns1.test.com.:ahu.example.com.:2005092501:28800:7200:604800:86400:3600 &test.com::ns2.test.com.:3600 @test.com::smtp-servers.example.com.:10:3600 @test.com::smtp-servers.test.com.:15:3600 -+blah.test.com:9.9.9.9:3600 ++blah.test.com:192.168.6.1:3600 &blah.test.com::blah.test.com.:3600 +counter.test.com:1.1.1.5:3600 :_double._tcp.dc.test.com:33:\000\000\000d\001\205\007server1\004test\003com\000:3600 diff --git a/modules/tinydnsbackend/data.cdb b/modules/tinydnsbackend/data.cdb index 9cdfa96c9c4f48aea9bbdec8164e78bba2a604a1..f1a6a1d4a8aeb38d3c3ed93119be84fd028d4aed 100644 GIT binary patch delta 242498 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

yFW#7rVO3JP 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 delta 242052 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�+pv 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�_5gtCvo}vc56V@VAH%dTh<>~oaX&(y7`JysfA8vSO#%F(KwZ?>AGWf9z!<^k~(#LVA8;s?%e~A7A?F9bZdXfU= zsSiJX{h&NC_f|Z0nQsB4r`Ph)<4OCC^^R04%|=t6<$HPWZ|S-OJ(WHaE3QB~-}Odc z$uE4iGB$Qz%&cQYy^Tsq+#TR~>#5&*AJ|ZD+4M{08(jZn2uT*L$d}DUsf&=Cp&oAW zI>vwX6Qtu}VIc4QJfGZ+P+!kQhQ4AN)OWw8W?7j5^_88ee|C-z_01j#*t3!NZHY$T zmTTJjy-cWYkJ?tB^^B;Gd9QN5dGA^cq$Mp|t#f3rnID=n?3Y7J28wL)8=T7>A-*Nxg;g$N5@YITCgu9nr}A>kZ_IuGeRPDt(eIQ?PM=XfqX`>PuKaS|H+|VakN`nE zZ}_Wk2B3Cd7Jsk_%En$X>lVN_AggOEsV3$5mSdQH@~D&uNkBPcpo-QN|#j{45t z?Ki?Od-b`V^WTW!$?DS#ujAGt?iC!+S5+IcSremNa!+gR99VBP)7`HJMnj(mp>Zmx z-{yC-(vqX@o6gBr!F(Lt*XbhR8w03Y>|*QLVKArXk7aOyy$W^h`S|~}<0d!w?mw`O zo`tvmg{r1!SvvG34v;72yD!89db>jsL9dG~lkizTZAYFx`kJwNSoc`m= z7nTFT=C8y!zj;Q~pZq|fwFK&Q4L9wHg!+TG->#ElLj8JO;V;$QpZ)p3AbVvBTWGEM={_oQBnl}MyL*AYvRb+tu?>J_8aCE4@Ni%PC z7IEM8fc}nGZz2oWsSt&W{jBRE zrmu|eMgD$GdF|CNRA|agh3mRMC8alnn~rii^xwMLZFPj^-{@UUuM)po4Uq2GoBQMq zL~=h?XReO;b6Y^a$R(4scYstePs!F8kogD2XLSLxG4FTuNla+q(1yMK3$$n;go}CI zB6-veSZ3s^X49boCx0>LD$v`Kc+o{CRO;v9u-Gi}C+F zuM`{T6N!*7q#V)%FPnC&5!ps0WCna@A3N&_H!{O&BE{e`h-b-hF~llA|6T+29sA5-3Z=HDqpY#`8fmQ^0( z$bHYly))qG$l|^(F%tdWfPtF_=XLUU9$4?7!1|c-`QZS%-e#MILGw1?X2e?Jt5RYE zPfPo!9)ab$5BG0!0raXkb9y(Bc{jNtgh`A)0|TDVSQd#FZ%PBATHUI)&_Z#wsU3zj zXMkRB?t?bQ?b}hSuPnst`+$KuvlE`C7_9j_6lDadVExpKgS#+t`Gjj!DZ*yXeou8h zx2<7}8I4zn#&1L{dPSjc7+y!IAKWeW13P`V? zv$MxwTHW+;_AdZwll|~nI7qXITAsTwy;Kx7UI_vN4};FReJ5R(4t&~uYh)HrSm)lk~aPHO9>>CE< ziZ+WYdjQ01?H9V{Z2xDVo*LMqovA7hA?y87?b{AgeR3DiJ&+sBc70_er(obK-D9J6 zNYST<`=6*o#EWBd?U%p_=Px$apO|T_?%%=Aythv<)U|_~Lvrp?p{^Z_%xQie zPrfV}bU8D-`vM*1hryWX z1={+*5KULH9Xk^yeWEuio^U{P(+qwh_Ta?6L6UwSad}`I5pQlHIVuFIU5zJ`t_`IKg4Fl#~x4~5mX(u*;=3Ya3Aw_686m%$L zh@J}mg$eWxJTXD;BcF&*=QIZI%%wF7g2n0V5*PR|BV&QN6DAc7efYr4{> z7(v;No3YOpU{09Z#}3p<`ctO90`twlVDtSqhwQwz~GID^jup=X?*!uE7 zD8KLjYaP1^*|Q~7NF@}BvXm^56bd0Niju7eMTt}@p@>48b}GugRU)lq8Dlq=v5sB* zPR+bO&-4Aw{B`C&_nvcJXSw%T=6UWhc3x7%SRh*))yKV@mRJscw12733K?AQWA4&# z0LjGfbFa)8fU!_NjPB(@_2Zjz%RU1Ttq^Ikg|rFnRj;5nYySl2Hn!yPT<-fqWt?! zX#chm>Q~JCSsq2-(!XKU@XC?_R@CtGL)068cGNKHNxi)k<7}AsAiwHkK@C@~#w8qJ zLk%tc?O)0;w=~>-J2mnLSXe){8e{ z7#EBN-p4omf&jQ9XZwKA|KG0y14L^m+m3^xE8n?R1u&*u!_14yN^RQT{%Q^Jb6+=E z{SDNFvRWwP1$={~lF`{&2(Y93qqDmI7DJPU+q;x4HvJVO7~8cFkVyX+ikia(iJ;lL zUJL+`b34D^Wn&`qJnzkQ{{``aTlK05IH;8AHquBh1J&SO5z~AGd{zhQ15>vz_pFGA_Q|8< zcUNINZ$ClcGA`niagMC{Ok5!(_I1et7RWc=h00Ox1UmlTXCAhlg)rx`rB6%KH?nUK z^;UYU2rT|8S2z6zPwajc{o4f~``e6#1!AjjgWHde)nq16<5PGhZ-f26iN{`bGp-5^ zY-g$j_`#I$txmm}1k`Zj{@NdHeE;WyCZwUnEpjI>z*V3cS9}HKZmTmZj{{P}#1{&m zaT%{Jp4u#pB~pWnp!fG=0DZWw`-CqDPg7WaP57@;;x#oBCSV0w`%AXK_>Y^9$Ol9F zU=(ZQW!e(}!G@MU|}o?qOkadLY0 z%?B3L_)<4$mjptMJI)C;C1QvhJ602BO6aAW8v~ZNEVv4TH9Vd2oH$XVw}N)lbpmQ! zG;IHK8Vh5iUTn^)|4KPGzPxSd$E1{VW6)WxSsS2D8&b2Mv7*NOqT5!9?5J^WZeAN# zzPC~1v*M*PQ2MEpTFH(1uJLCAn};O_YMgy3;mM?wbK}9QO-PG{wp2Ana@yrggYdg7 z`Uhq}*t^+fPfoF+##CW)SvtS;EI57*`<|+TsJCO3UtSx8?$2gZGl; zV4R$W{OlgaM+1!~g=ej}VZ7?D(Feb z`y9o=kNvt@r_>myL1XUYx4ZtU=-ha0G{X&7(YbNAZOWyOpi-yd*2BB>a+{4t^P?>@ zjEU12@L7DzCD4@1eMUZoG0PkK=ef)R_)(*~@3DkJdex~$qkZoJBETu@7BAz|1LN0i zioT8eD!MWE;Fba=6`dQyEp;|215Ms0mwFPM-NAJ)=sO@Sk4e696rAfe*X(8pK6&JI zYLPLFD>=Mh_$Z9~_G(<98T2%{b7b<DSOwhp=GsFqh{Hgp(ZS= z8=nW12;#oPZG7})lbQ^@q;TWw(L}y-#?`&iJ1>1Ht#mUC3Tpk6un{n7Dg@`inWZtV zsgtS#SbiN6E~A%l7Ht%Y&|4OWQ~TQ5Io*Q3x;7U3=PoG(Z=K53en+p@9Mb44e^+=6 z#2P$EdU6I#ZxLT7L`>MLJ z-;by)4g8n#Pi}ey$}@5trSAWKk4_q|?SJ`fr>AmWA9@} zO)Oy%Nu!vuCQ+C9MZ)y=a+(G%re2O_LroW#q~Ft`|Gm=m=*E(F_8h3mPpNQPfeSS) z%qtOl#EF{hxs#?p!QiPy+t#ws3t=}U?rE)j17h3mzoSOMV5@aU%hP%3lH?}l^IqdH za$8(zI>v&UtZzG8gn)*;*9Ql;(>|EcYEmgvfUi41zQa3xDi;Lm&XWvxhUM zu*f$FT1PEk$M`I=sY;Ph&;#%ja~|AE1sb>cPa6W8gKveO;-)>)^=OjYRl$X;$R34<}@ijlU|mHDQ}ATRXkn*7S+n%?h*%I`mWr%Nc6u@ ziTJcU+X93373F?U1qW7HdV1Wazq;0>*<=5O6X%2E1@pH)#wleU=G=Gtl03eCGSGs&Xz-}H)y3+yC z3k*+vJPbY$p4#@skd2OT&Rw+NJ_wWE)OG+Czox`#iOMXT?G_z|@+ax<@HGA2=6tQ0 z@%+$qv5;u(^w&{qBS)M;!=|J|-zvdTwP7yL446dmk>>6ba?o$8&$;v=L{a4X{WEHq zrA<>==Q@-@PG&3HN{|0rncS`^*{i(E9n9*=yR+*#m=(6;-hE*Z@stg7)1HQWdq}F7Cl1$6(r7gTGcd@&trt8|#+huWXddX_vOJ!W)h<6$b)eU$N@w)O$iPu;^@pzf2=X=az zqL)3%^cjmOcHrW*7rF@qL|iuXD!Z2j1iiFRBC#T(hni^Q5>7;9*||Gaj|&mk8~jYo zg7)bU?e)ii&+<82O(uN{OJYm(F*jWCXrl1})t^u3FM1N?6C8qs*$~mk#`|n42O{C)g0cynM|uB%JG33_0!w`m8^GQ$Nu82T!(70!;ryJ6B!8nGyZYSIy_&{hK9m z*WJTG5+GA%iIOLi0?x$MKN8Zfg8}C*KV2>W<7O;vx1R#Ko%gWBGYI5mgS@m{piV`N zRz|doSuNs`&b1|rnE>24IV`LI^i6Ie3Iw49-)HQl05D|Tu7d|@w{%X#MRRuHUzk{b zNba;2?gKjF;AhRHK}?jCG>?pE16`kbOUeV3L_0ih`wdEN3KY!zw~-TZ>in*QE-?3Q zcImrnAA86*aGXhiX+ZzUGkRh66i*YLoW7>cExzYhLZ7cY~Gj zseUs>$+US8Ct$uR-`k55HRlNEJuGEM&EL2c7sY|1x~%&V;ka>2DRVd9F#$Y3OdNxNKOy@+4ylG!Mpxu9RSj4{H)yE)W;I^Kmv9`7A*9gcxl> z@M=EYm1hwFfY&PPp05W0z6Vly4soDno9c{AIc^XzWc-mG9I?qf?#?pkAC!2qCjwiQ zn`cB)B|iNPt(}auG_-{mMjqP;<4^Mvw;jVA&@8*Il~tEsr?ffmT(^8QSh4m3>vz8 zGc=+#jGJE=Y;YR{9lyihevIHk&EMH?SKI^d9^o;*F98lXvNm((Jmdcg&Hm~srvyRu zs^d%i9@GAAY!3d}_$CV%&53ik* zR9fl9W@WbasDrGuyV~Z5t1CiH0EKDb-h0uEr?Tdi4(km$AY?o5yt#iHo4L*13Pzzd z0PN$#O$mnqShx9O?yromjW$1tk_MAd^UvzU6C{QSri@5iuIJ1*vLI51^y+{}gh<@# zBYt18YerIS@wK0Bv={zDNIxg9FE!&rq}Zwjmx?j-NYZlVTx4uolf*xb4KOLtN@@`A zjl$KVC9&>3Fu^^^91Ly#o2wVtZQfkm61Ap82d9S5ld@5B0fyU|ax6x4R~m{lSfkd9yOl5$GT8MD}@*b8+7Q#0`dOh_}c9eF*q(!7(V&szUJDNa$bzlS0v?q9w-E+489e{k1XhN{{@B6`w4_GsjTsz&^waX-V*nu? zDkLS3%e01o7fUwaTzH_m|KV+#3)M++=hXi0=t$zIyOq5fTp7EfE^j|>mOowjplJyR z{j+ASRF3vIL5Z||oh>y3o5iHxQL&rUFs7D6k}@Y*=~WC`?)-AiSxnnML9pdGS(dCR zfLdf#`EE?o>wvc0zvrH3hIy%lYNmtr+phrVrL3u%?4cM}h4 zx$Mii=@JYYlDd4=g@9VV8J2pcfhMop8~CgRQHyY&)0Pn!chf^Tyom9dtYvLcD!T{> zzal`$e}XL-E%k!srXN7gC3AyCy8K|Z=^$pEfoSIeK<3f?N<=Bw;ZvJtdok!dL}NTc2YNsAl_vOCyNi>*r87cvZr zYUkpTrhTp@({iLk`fCApDsO2F{ImZ$VA?xgzEOns)-j>Qz4XJ9O|&Y2qAh(wET>k& z2sFh`-3s;*6(3y{rtLK8)$&67K+zgFST22-&jWk%&|(`I<@W~XNmswNOYgyugjGty zzKq*6wdjSK?L$lwcjb-Wt3tpA7YpfxX8HramihZ}+A(nOCf9yXDj+NU8b0uxe%sU1 zo>5*9f`zHo>#V|9Jf^Yry1?0#)!e9+LME8G10~Gn#5MDv)@(5nMTZ}?@*a0h4CY0x z>y_ex>TcGfGY8sP8u$PD%DA?+ z2I_55RiJOQ-5Ot>5+)3)D^9m^zXwzLZp(jq3RHHN$7>2uLFKSOxcY9*shKsp0481( zf1lq1<6|znPw6q9DOx#(ja?-{xeWWH_$4M_gKd;|WCQ;b?!zy){x$V&eR@GT3u+aq z&i_oSKrCn1dSOMsOqDEMPObtrrX9 zr}$mQGH~*xZxv>a{KfeW?Xd?VL~pX^J@x;$Y1XzSJsQ34WDpWj>?$sV#i8}fQMM!W zy4Zv^>72b$0`%>B+TsE^IOiGRwppLJ$0|wR5U6e8b@l{;AZmM}#N{`LIl65dyT|%G zKGY`C=g`(hFND_?^Mq~R4*}W+@NL``tl=H>P378n2R<~DxKZ21n=;n2j9JhYL1KCH zfL<1)?aP6%?RB(w3YFSI5~Kab2&k=M(r9ie8*00EoP*>kfZE88q<0GdK-T7;XJhI6 z9JU!QGTNWRc(2)(`77aZ1QWH+g+;$#g0LBzvNwqUuVBR%wL-?HylrV7d%p+LcmHWi zd7)pniXXKpXrJ1(3tSUh(%m42Ee>tBr{s7fL6}UKqeLkWFmuH($pxfV?OVM$fO^ee zs8!)WZSjWeCr|UDHp$A3XSRX7-zAOr{Gne|NY3yr7ix>)t=yOj$GH_hxxECMo?G=Q zhM|IXUoBr_WJ3M zjRitbo3!ZC!;OGWcg_BL%R#{1JNpdFae%~~Ie%^d2JN6Ne9@Ti+fi7sKZO^yhhFC& zb!7~AJG=JnPcB#*x1S%cm18Jj`?p}F1fl(s-)PozS^{&nFW5^ZCH|}0_3zy@Li_DE z@5+Vfx8LnD$?xBYR|MPa3|6C9%)zCDs({Dy;-|Pg{Z$04t18(8m$&wTeE3K z|2aR@eV>A7i!lsUh7&3*5#JW9!Z4$T-SBcRg5#ZJwH$)pC88QZPW7M z5MJ#pDzG@vv}K{b3kXF2#pbT_mee5x+qh5pZ6Px_8Rn>ctQSswbo_yqCt#KHm6H0Ois zwDjK9?siS@gDq%tTjSpy3FdU>-K^h*`LX?A?~M;D!5nhH#!-D3*W2bN{fGtH;sHWF zj8|*z$3FQBRni_ww2wRwpa{@k@oM+G8Q89lUG}#JgeMH1z@^``bhgqjTzi)H$FJj{ zFz8m085@{$hW)ioA=ck9rzvvj6F=$*ty#5Tk09zeyDP70k`<`b;+?7tiLe`WaPB9H zec}VkCi=UN@%-5lRW@;~k{f7`=tm}%t2zX}ifxy{j(03*jMDwDd{alaM>3`>U zi0>&0GUP!W;?py3ezYq&!H$$iGweTrEtO6C>Qj2j)sFOcwh7XJDZ@g0dLg}@X2&Bp zsfWP;2XoL%!*d40`ujP@!BN{F&-UGC27|{+* zF`0mUIOeyt_R5=SS50;u`Mdn>U*k+FB(m=Oj7`ptVo!%86<*X~pcn9)Npmk2bbk6t-?@r^xg}l-iH3(&F`9O zn3z7W=gurISm$+jTY9(v>NvLi{bO8#u8xrfdCDU=*HBMU-+A!k($Q}sFG>r?FsZS~ zihu)f>RE$q9RNFJDa^$S3WCIhewKqZ)5QEFMacI#ulKWSVB9=c-X{S*)S0^SdNIAA zsY&PV2KClne$+W7=)J%IBV0k#PWEJR4Ryu`j-4U$>-gau(vSWLrzV0^U><6J|#Q%w&%Td1jBBQ?T+9P{EyS`rtd2_Soge^zXa&3?AMh2U|YVPlaV$3 z5~uUq*U{HmJg9TAqHfJ1z}68ax08)q zYt063)b%dK_RJJN>N>Y8XT1sbLB=B%;YDiIV`%k8M&7Pbp&CH3;75vM%QfH*H>Y{XXyia6lmbE{m|lvfXw!EW}}; z!p4gOk&JHXdibkwwkqjGJy&pv;-c zTrfvCJM5Sy0d@VkpHo>$J1LlS1s1&>Y6OQ|tqy%>4k+tZZYVjz27_(icS-V~E?@3j zU8*2))6nI!_b~Kb&rZ!s$b-hQ`Zw|^^gQj#Eepkhcx`s=?muv_B-hVoMVjTE7|LDIPVdA2D<4wj30NhdH zw}EwhrVu&4=_St4QK_?Mqa`rj(Jy=)52m|_>Nm~8z?E}r&hB8Grd=_w7L9Yjcx98t z#s##uPeZy&Jne2Oz`?yN4*LQDUAnW#B0Hdhnbh4nn2;`BYV92bI8OZLUowNU{@tA9 zmol)TUc&yS2=o*5a=F3*M0D9`uK|FH=v-jY0Q3TX?Xzd#`ivy4g2AKG)BfYTXwqk3H~XMct80GoRNApzez~G3QRxp573;W4;`JJ5Ar!wR_>~ z6YU-JhaKG_o>%uC=0@Ej{FTAUjPs;B@dmq)4rWWYWK7o;Tdrs9bE1&piRgPlviQYG3?#%MaAQ_j5fHyHxUD&fkT8m3@5^ zrA+!&PuA>M3<{oZ=_d#U)E6j+QVRc_S={B-$EF3uv;sW zyHpV@(7yAkW`qNEzisFj^aO_7Lq?KZAmDv0Pq04p=Y?lI(&9qh8}=)$(Erv{ zK=s9qqQiMm_ogG+DZ2@%yU?X z%$DxYN5jSv_)vG1^YWT~jOpKPIrd&C8lZg@HPzY!(5y^W%$PD6_w&-o8gnej-Mh@x zBsB!FeI&bg`;0o_iq>}9vu>aH35pvu)J^^?58O?1ROKTuNtOMNRUf^94BYR1p>z$P zanm`kH;NP1byY2;js@szi(jQ6lw4Hw<1)~$U6Ets;JCwLhptxv`onq`k2o=j^uXMq z!Z+OD@d1S>ZVCDWo$m3W=-1onyXSTXwapEO(oa9+j(*lF^gmq}<2xGHF=VyFlG+K#+Cq2g*O1WfZl`bi-s2;8K) zW^=g^+1o%r$ck}EAqSQ3^SlXhF+bKW`yKNMS+a)jBq!tF?qqAR#|iSh*qTTFx!}@y zDxiAVd}!5b01`90<(?i+P=79a?{X&2mh?70@eTMU^_I>)#AX(`gwM*en~A@NOJW!J z5D;1Jhamd|=vfmGapqSD{Akha^xO)9`t3K)9cE(TWb_=8Q`9O9)D6zTn&ajuh3+9^o2 z{vEfv^6OD1mYsalvwa~LpqhA3N*@a$`FU)()KxIh(Xu1GllIkO2w8}gH&q`p>S{Jm zH7t+hj>lK#96|Ughh>h3aHub#B(7t)_I|3YatnZ5!LzMInbDe_B`FvCYB1$JSO0iu z9^geiALKd%bGiS|`CF;yQunzHIaoUPNLi;F5cp9KdocfvsDXP@8ZLp_CAk0Q3Q(kk=xoVn$$ zLl!_iW?Wr&lekgO>w>o64UAdVQ~!uyyB5q?@Fl!Q2789kld7F@beQ%~Ri=k8CzWL{ z#@v%6UpzVhi0d5XGp^AdeyH~(@DVv|z_wxQ&|(qL%;%?CZx4eu-+Jsi#EyED{r?vz?}BbUe2q>PF4Tg7#GCPQH{e027L(4 z+_MniJ=r_Qb_n2g$2%DuhEUBms<@1RrZwonhLbF)M~pb7@do-ujSt?$U7GaR{OV3# z#w1@NR~@k3Kzotjr03qUvalmKCgF&C<;tKW*BAYY1Q6+iB{s)^l2n#PXxLD4`n!x~NF|Fzt2xh{O zwBbcGe|z-o)iBIj2xxEE77CRy(dIP0Nu?4uRcg$iKCNI}S9@e1&s>ZGIUA}UUQuC# z3|Ni^ji9YLQ2t>v{WR0NImfi^K0>|e{4Rz8jLLeuh0E4{<3+v7Hp;C0jQ^wcnms;T znNP11-0StK?Q%VatoQi*haxd--u2pyMzH2_qux;+>1#DSs5jg6&V4IB)Vny==|l%V z>aEi@zkh`j^=e;sKM_xx>`uK>HCzP;0fAn<`|6cU5XdSyM-_vxq7~r?mu9`LYNZEm z03VyL{rCe=k|xSsQ^=3A%qMCkD@}=4Z{O$EccomYcO{Rp+9=~WueXLTBJUR}cS5m0=vG?-*)nFcvC#P_i0P1~mI!Pj&nFUA8ECSiV zf@0UoBOr9}?0oonoE#gm``4s^UznA!SdVc+^-fr_q&x64{#DR>%K3@48y1(|q!h(d z;<)yb1j2m*7Sv0+AIYZ*iZ{)ss%>EcuzilCHUS}6s<-8o2oBi!2oB>%|9K@|EK^WI zsn;xG+qfGm>gBuf*`gUd_q3Xqa~SB8hW)*1e~oJ`civ6Eq3iWIgepC0lgp%6EO+Uv z*Nmr#UWcL!mm@*K45!Tc8IX`Cl4`Gpq3k7bSk7ety3}2p*Q(Rk;@%9Wud7oCsF(9K zxosH)^2432XN1^bvQS-CQ$R=$Yx{CRh)tBPLYo}WBQs?JMKJD(j><>jt|nVMTpk%dUHz;z4~1 zgtZ}iVB9v#^>LHXFSH_`fZ(`i)(@R+e5kL#?M-8m0P5@7e`_nf(yL&fP}R6#4KL~| zOIcs&PfK>ez6-UX(YH8IpXfPZQaSC?L$vRL|GV~U+yG<#>t|~acOj|ar4juGrO&=MpCUKO6kjSpjqMo9Ww&1ySE>Pf3Cbz?qRhqvy&F{Fyf% z^@0r#C~Gq}!?-V+8=}R5FMeUcnqH8rRItP8504n?^ZxXffGc3!H&gmH{s+A{eP8^m zi4D0R)%5&^J{MZ5>GyrywL3+UagFNZ%@3no0k_{iB$7x1>SmPCa|2s#`y|(|b_(aG zOXl78zI!>~bL;vh?#oAeWYpJFcslJQs53OZ7T*P+dFQD!nb7_{WJdX+lj6i6mcZrDYCVW)4q-kv?0Owe6PJKO$( zfcj*t7N=Q(uqu8(K~*ew`$lbpj{bpkOp#p^eT<(8|CT%<5kM(3Z29&ZP;%AxkX5v^ zk!YXhm0cHcC7AoJbdD+Aq#@Gk^W4e5mq|tBKDMEdxIj+S=NNGFsWUD@@3_}X(o1ct z_p!z1zI_OA9mT&+rGV|v9lQsPaki&~OnGdA;Ha;Rk$g;pW7mJMe$m$uKGYxPyEfHc z5cM0jpFWs`A?RPp#=7bmJL<36nz(?-xI*>6h|(1<=0^Qi-+nax;6eS?!68;`w0W)7 zzpg-@%NaUFH!rc;DS-NmmTvmF7zQ~Xsk;;e^zNe#2v^gnf6J3oi<)V^26+cAKxdHp+$&y<|!Mg1{THYkO0#qR%Ios+(WAN4N`yId6qO1}^Mx>1KYyx-Aw z^zeSLH2J#S3lk>%n{M9RG|T0T`d#vkt0V}hzb&#pXd?)UK0MR>kuhERD?SBPw&JXK z(Zia4hYeh^>K3vF>os1-t?ULs-X<2p=RnTd<9hZF=vO-ZMdvtw=7N&I1BJTojLSy< z7G491KOiKyV6oc=#w(%zkJnDm(n~*?^lz7V^Cb#2#q5^o-v_R-%|z(JmYq4a z5cJgq4m1R=Jgr{9wVDN7lbw5J4SmA*JM%3J$b>;H8>nOx`dfkh5xvbhTmYv+c{2}O zw)7wHYCwPJXR-dZU)jQ4IZ^-5#kUXQKHcdT^pk3m1;cafHhRVZ^X@ypl*gIaqDu-` zo%NqBsh0EM9e)iRHdxsQOeKq)R;~c7VLzuYNr2|( zA1qCDUJFi5UK^X_hovs1CG6gzW3;zJmQX@J>I5ruBZ{ZL7^RUHQL0x=m`Ly;ic+g1 zMVD5&k)khK2Bz)_U9*Ep&07je+?BYIA5nBNM~HUx_)_wRa#ODU)p%O++b3KU+_;I{ zOXzRSQrN9dhPqO*PFFs^7d z<#%?fNG=(~)L$#!Cb-n;eXj1CaF`U;1Zb)R1@EIrH zi>KLdwoBDKZJ{kdU&mM$U{+&?r=4t@d^>#vp*Ixe|=wI3?^V0Ctx_ zdFgqpp3Ee3J!_lCrU77N-LvGUO#1nx{hYcW;*+0u{yG7Ir*nOB>w#uzCgxTEU(iCS zj>?FKV;x)Xk(iebnf_8({+mR5@g_H@tFc1 z9yB1#wYZka_fG?2OQy+uSSk&iI`BS}2uk0l%j~PbKn~tp#&)lB#S{#bQq~{K0$|~@?;jfh>ZO})*6#rU=c9$28|m*o4Dj7*5Rj+u zpfE7h5FD@+pk9>|8P5T_W7W-D8*mVAXiW($!9g7ldG{)n{&vv7`;hrpe6)AZMF;c= z>y@iPH(LC@$`W*^I$GPu(k_1O2D;KVZ=+&aI1rgtzvL+w8c?B#*A@beLWKvnU|BZc zNez;Z1z~&}guk$Xum-5?j9{2g-ga)%Ave7r^SZcPVh-#=*DQ+z`ou1}+_*u-^o6y8O0jt{ujyrfV&- zf%bwCjUW%kNi~r5>dzeupf*!CZVk{rz%m(_G|l~35Abv@NFQV8W&;0mXj>QfO6r&B znI}xLEwrmnzKvdzW`O2O$Yl054%+@tqD( zvgc2Hfhf+)v-7nURgeOD8#mnQWt^ddE2}9F%o#xp&XXQrkD)&w91MB!p>T)`4Xz63 z6*R?sGLxVoi#}rbzflnyHJs#SW^_nDJY_abd5Yn+5eDijAGp>a0pzu=P9dev#uxMaK zjSN2;yjb~6=9d5(>|VE8rh)|xZYngLIg15s@ZB*%g)YnkgGE=|&soy0CY1(XWDWe# z;sqw>v(H~KaZ{5;$tN%RjrU;oVLtPG>^f|4Is4#+a-16?y-z4bvZBGY8&rh$yc9(U^x#&i5&8T$f$p}&G|7oNKaE?IwP#0ytDdN6^<&%}@e4JyCo_W1&F-STT? zDG#{ti1eDU_w2x*u~npvR#sbZ@JN9t+h-8A_ST?HD6O<8VNiPq|C*)rk2?l)VjhFF}+u*$eUvF#R7@j2asFJ}>-@q8#OOSUT->VK%!NG%UYyF!b zUrjG#R~}Ouy~MaQ1qWjUckA%`I#rmEqY!L-uuguy&5 z0g4{|vV2gNYekwSVCLv}I*R)jdC=8LLnQ-pCGWRMY!N_+$gV73%p?JIAGz7N3!=fE z17)sPY3shy(9Vz>PhT;<0XO8twbAArCmMRTM?yrE_71h^kQmoChr29jD7${$SSA-5 zTK=@qoxTH~{!sV@BN0!=_x6W;_Bh!}0!{6140eHAG>^5M?OQ>}MV)%0009jJ3x__X z7cz1h`jN$wEDW6$MKZ~In7|qoN{D&K_#l4h&hB$r&sovX>P?cwYasNYPs>1 z?gty#{(S`{Ff^g>EFA_1mwsvb_LWw$VCd+npk!%mLJqmuDnuZ#U#id}!ymgE8&Y#4 zQo1lJhvfCc1IIz}n`Kfl2oy(dbZtEWZTBODYIU$SNSxL+kmaZ4Ur6`9nQX=6q;~Pti?e6-XjT)fxQ(XbAD9 z?E^Y99?YKx5PNoTos$OW-?n}-`vgdeB-@jPu)lPMmPwYl8{m*_Nt6B)0sIa-WRrj6 zT=Us$h4D1)62NOH%(KpY0~XLBUz0NwTzRV@6Q^?Z4xFD)f4F6vgavxY>z;vw1b|6e zRWSAnKnCvJpT866RbF>u92oQKu57VCfG!x7RyY)qz_UG=*(m4w5Nc%c@6l8h@c~qe`IjPjAQV0Orw1Lpc{t+6!63 z*X?FDm?Jc-{Q04d3mY0vS>O89loJhqk%-*1mvMa>ex&6ar$<1;wfpuB%dnu~kb%!R zZy2w1hV6NC`Qu>RLh1W^L>cpZnA{awEy8&a4QEyRjxN9=KP;py_KTYX4JR*>%J0Vf zIy?}a|HBRhP6>Ooeg=SLGY;i1*wL^>my@PG7aIQBY*607_$J8kgNIUyQMCPWy@qpY zS@{!K(Xb5focTH2pb+;|m02dtyVOrh_kfj}eg4t%pnR21$6Xs}#~Dc+#g(=lz6-av zy8w*i&$lZm;Kiq3_Kc1dQ)+h}jjcnph@H1qSI^UIJtM>CkL zP$Ef8#ih%i&*7&(0{!?Z@Tn`4JR4pAi7bfa=WwRedIGM__wdY_l%tDiE5G3IOLl+$ zh2W|u*6p2#Xa@!8~wWlY8;hMxfbATiIOM zLeL1Wmci&BVAMHNw8Ih@G+q|)pThU(sul44 z`*urhBu9yyZ) zK3C8WeZK_!Gw{e^%mv4n#}jeHmWA;((~79} zJ?|)PKfaN>8E&eRVBw^`V{#by(A25;ktYDC&T4ap|9P%kOX7JLfN#pb}UCCx(J!o7{F1N zB2yIu0vct_wV zT(RWQ%+jQU)r@D?(K{wrT+c9GRgNCF->!qJ);n5i_~K$ISVA?b^Vr9FkdeWzG~0X& z448CyAMpSS_9zdFM%;R^CNohhQ2~qf=-z|F!~iUrM)f6hJ9mPWqg;IL;L!~c z0w>*Cqr!mW${c9)eBgLSJ$6Yn8tEb8UW)@E;c{8gjfpiBAG5w?IBT3VhNdoq5^ty4 zqe+ar*o34Jt=yTjg1fvR)tS z83a~WGXH~0fSfjd>+283TaQsK|CHHQ0W|thhVAtiNS#A5+n(~_gf?y))cdc7^5_D$ zY5s4F6JpecFFpiULwVHp_TWM)eR_}XdHEy88jS3bq!QPG4M%ouwGn|f-=JlUIUuWc zjIZkldgck0_!Pp*HWt#w_stSp0pO-!_JDR8MYhU z^H>mdncTPP2~I@yST91n$aoz{<=KDI6<1A(+Mhj{oB({plNv-}%seV7Xh;jd)*d>Cjx1I*0b~YS z&hUN*N%z)&O}jKbcCKe)TmgyKW6NRx}h~YMjzlw%=$NK;o#lb zcTKe!jyqM=Yo>yd=a&K+-vITVE^N1DL)1B4N&Y@2K7Fn6nj;eA`lZbBD*;IV#g`(e zFusl|Otb=Uxh9FWt>_@4st^O>?ErOOv1QzKOb}Id)X_Z@6y@&?7NJ1@lASfSOMww_ zN=V0GGl9w)ccPDv3sJAR-dU8+hp1(NTPcrle!nT=uegoAJutPg^EX8qg!T&+QoL!q zB6(1+>FDHAa1yhVzvo{DsOjIj#6(O{gNyS$c_xJuFhmKULZKR zshIvP2z8OVpQ{`Fc_($Tk^NIW`X-jtTMtfVsN=G=DNXi^6~tVx<_E`i@SuQ=_UL`U zUQ-k@a}eOwC<(a-gW7MFzm2$QDX&g7nzSa@3%29Bke!_Q=0Twjo#(AY2S7CQde#h-Z0s5!rW6z8i1`pA0GS$b} zy$ZY!U?-cgk`s%3RYAfsu3WYe4m9>cZ~^xRb~IKk+obu9g?3LqCLDV6=uH@;{Ozsz z6;?D>p|Wak3$!;bm~7twgA>a42I9);j#Y9Tt4=0Bzlh$)EXMoGv5kFoM!!Ig!pG%n zxPV_wE8BJ}v|ATxMYKcz`e~s++y9wkg~qPR7jNRnp689-Ied$_6wtmqa@ZDEPIt`r z*R!-DHZ*o|+1Ep}0D$*QK#Btht_wTuxt#}%O-cCq^3u;-V}}H#?*3$4xyM$j2%6(c z=Z@{l^)5XN!n&{7h%15Bf|@sv?qI?Xob%ELdMxVCQNe7KgI@Dt!h~r zNCqp6WsaJy00lz*S<%Tb;GLRob}n{a8hgiHcd-wwNNH7hJr35r5faKj!iC26u3T3d z2>mf#@gmLrm4kRp+`g?w-M!B=~PG(DDZ7mRJZ}L5uL134Li8d*wK$YQY{~Y$hzvu3&TpuGr0lmDu*ui?@i5XK%hX zm5T`(|B~?L^coto{qVYO@7U-PRXBKC+|nhJ3-Jqnv2GVD1%L69J9K z4_Rx%>>Z!aS*4K($4kVU5^mB~DzEVjw$D22uml{JxqMvp1qj)_@0Q+IXj@)hC%O)s zj^oj>Ho@C*<0;uxhvSTH8-H=>WUc`yi(TlgC(eb&D_axHb?Dn%k6UcX;=q-+8`oZb zU3v-7+qM@u~O*#eAST;WZJQ z&@WkM6C45UrP|tsXTd{N{XG1LT^o&C@bK#i!2rX~Eb|k9F7?G9aX&UR-t(tc)gKs2 z2K{U@v6IEP6xD@1Bk(UyoZ?m=eP7d`7mo)QS;RdAMv+PH`8g1H<*cZ=Ds4x4_3^Qm zyd$+>&PKJH$tK`aQQ382?$FN3(bahia0WSLj#coZ@wTXiQ=v48CgT;KvjukpB$B5j zrvxt=xB9`mV=?C7@$Wz{8jy) zqk|l1+{cajT!pp`y5Km=1IzjX;7Dvf9!4SjGiq_lzRP3rST>KhUb$T!PT#F`JfeSb z20s>t@ovE!gDJ+#?D1`{UdI{(bXOax(AA9p1dKnE*L7V0Xm-^JY`ucZp^L0DE^8Q9 zjPdMyyMtr@1Ch`^v%{M40&$$p+oH!A=~D$*N1rJF zH5llLD2L6Ro{aYv6Dz!3S>hRTjtfnghN%;E=sO%vWTqHSRh~JzOY)D?fN20&qG*Na- zP0or9O-L5(SkOe@GhxDVwz$(7I8REk)qDdwa<;pE54hBm|FTygctg>W|3NjVYnd)n z$-`qW);}r&nrc>L3)(>@`_#~BmqN@3!z zK|8hFcUaFiD8#yWH|a|L0h2*MNyCk5xTBw98Au ziD}CoX|=yul6fOso3;sq$Hcf#X6IK>vAOQx4p)G9_Od}>EZB46t)Ta1#+%5AGq2e4 zJ0KQYgEIJkVNfPYIk)TEF;2LNV@X}o-tn)vqa&mmkL<%xs4yvy%E|La^;4Gr*P)8+>k^#Nr5$9w#uU@<)4z3`+(4-y zUSUC#;pA{51%s%q21kkOctJG z`EeZ3T_W5w+Ke;p%0DMh(o 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 diff --git a/pdns/dbdnsseckeeper.cc b/pdns/dbdnsseckeeper.cc index 31dcfb6a75..d774a53eb5 100644 --- a/pdns/dbdnsseckeeper.cc +++ b/pdns/dbdnsseckeeper.cc @@ -353,18 +353,21 @@ bool DNSSECKeeper::secureZone(const std::string& name, int algorithm) bool DNSSECKeeper::getPreRRSIGs(DNSBackend& db, const std::string& signer, const std::string& qname, const std::string& wildcardname, const QType& qtype, - DNSPacketWriter::Place signPlace, vector& rrsigs) + DNSPacketWriter::Place signPlace, vector& rrsigs, uint32_t signTTL) { // cerr<<"Doing DB lookup for precomputed RRSIGs for '"<<(wildcardname.empty() ? qname : wildcardname)<<"'"< parts; + stringtok(parts, rr.content); + if(parts[0] == qtype.getName() && pdns_iequals(parts[7], signer+".")) { // cerr<<"Got it"< >& toSign); uint32_t getCurrentInception(); void addSignature(DNSSECKeeper& dk, DNSBackend& db, const std::string signQName, const std::string& wildcardname, uint16_t signQType, uint32_t signTTL, DNSPacketWriter::Place signPlace, - vector >& toSign, vector& outsigned); + vector >& toSign, vector& outsigned, uint32_t origTTL); int getRRSIGsForRRSET(DNSSECKeeper& dk, const std::string& signer, const std::string signQName, uint16_t signQType, uint32_t signTTL, vector >& toSign, vector &rrc, bool ksk); diff --git a/pdns/dnsseckeeper.hh b/pdns/dnsseckeeper.hh index 08b02c3df8..b84fea7df5 100644 --- a/pdns/dnsseckeeper.hh +++ b/pdns/dnsseckeeper.hh @@ -82,7 +82,7 @@ public: void unsetNSEC3PARAM(const std::string& zname); void clearAllCaches(); void clearCaches(const std::string& name); - bool getPreRRSIGs(DNSBackend& db, const std::string& signer, const std::string& qname, const std::string& wildcardname, const QType& qtype, DNSPacketWriter::Place, vector& rrsigs); + bool getPreRRSIGs(DNSBackend& db, const std::string& signer, const std::string& qname, const std::string& wildcardname, const QType& qtype, DNSPacketWriter::Place, vector& rrsigs, uint32_t signTTL); bool isPresigned(const std::string& zname); void setPresigned(const std::string& zname); void unsetPresigned(const std::string& zname); diff --git a/pdns/dnssecsigner.cc b/pdns/dnssecsigner.cc index f41bbb7c06..a77693e5fd 100644 --- a/pdns/dnssecsigner.cc +++ b/pdns/dnssecsigner.cc @@ -76,7 +76,7 @@ int getRRSIGsForRRSET(DNSSECKeeper& dk, const std::string& signer, const std::st // this is the entrypoint from DNSPacket void addSignature(DNSSECKeeper& dk, DNSBackend& db, const std::string& signer, const std::string signQName, const std::string& wildcardname, uint16_t signQType, uint32_t signTTL, DNSPacketWriter::Place signPlace, - vector >& toSign, vector& outsigned) + vector >& toSign, vector& outsigned, uint32_t origTTL) { //cerr<<"Asked to sign '"< rrcs; if(dk.isPresigned(signer)) { //cerr<<"Doing presignatures"< > toSign; @@ -181,13 +185,17 @@ void addRRSigs(DNSSECKeeper& dk, DNSBackend& db, const set::const_iterator pos = rrs.begin(); pos != rrs.end(); ++pos) { if(pos != rrs.begin() && (signQType != pos->qtype.getCode() || signQName != pos->qname)) { if(getBestAuthFromSet(authSet, signQName, signer)) - addSignature(dk, db, signer, signQName, wildcardQName, signQType, signTTL, signPlace, toSign, signedRecords); + addSignature(dk, db, signer, signQName, wildcardQName, signQType, signTTL, signPlace, toSign, signedRecords, origTTL); } signedRecords.push_back(*pos); signQName= pos->qname; wildcardQName = pos->wildcardname; signQType = pos ->qtype.getCode(); - signTTL = pos->ttl; + if(pos->signttl) + signTTL = pos->signttl; + else + signTTL = pos->ttl; + origTTL = pos->ttl; signPlace = (DNSPacketWriter::Place) pos->d_place; if(pos->auth || pos->qtype.getCode() == QType::DS) { string content = pos->content; @@ -205,6 +213,6 @@ void addRRSigs(DNSSECKeeper& dk, DNSBackend& db, const setqtype.getCode()!=QType::DNSKEY) - return false; - DNSResourceRecord rr; bool haveOne=false; DNSSECPrivateKey dpk; @@ -228,12 +225,9 @@ int PacketHandler::doDNSKEYRequest(DNSPacket *p, DNSPacket *r, const SOAData& sd } -/** This catches DNSKEY requests. Returns 1 if it was handled, 0 if it wasn't */ -int PacketHandler::doNSEC3PARAMRequest(DNSPacket *p, DNSPacket *r, const SOAData& sd) +/** This adds NSEC3PARAM records. Returns true if one was added */ +bool PacketHandler::addNSEC3PARAM(DNSPacket *p, DNSPacket *r, const SOAData& sd) { - if(p->qtype.getCode()!=QType::NSEC3PARAM) - return false; - DNSResourceRecord rr; NSEC3PARAMRecordContent ns3prc; @@ -331,7 +325,7 @@ bool PacketHandler::getBestWildcard(DNSPacket *p, SOAData& sd, const string &tar while ( chopOff( subdomain ) && !haveSomething ) { B.lookup(QType(QType::ANY), "*."+subdomain, p, sd.domain_id); while(B.get(rr)) { - if(rr.qtype == p->qtype ||rr.qtype.getCode() == QType::CNAME || p->qtype.getCode() == QType::ANY) + if(rr.qtype == p->qtype ||rr.qtype.getCode() == QType::CNAME || (p->qtype.getCode() == QType::ANY && rr.qtype.getCode() != QType::RRSIG)) ret->push_back(rr); wildcard="*."+subdomain; haveSomething=true; @@ -382,12 +376,14 @@ int PacketHandler::doAdditionalProcessingAndDropAA(DNSPacket *p, DNSPacket *r, c // i->d_place=DNSResourceRecord::AUTHORITY; // XXX FIXME } + string content = stripDot(i->content); + QType qtypes[2]; qtypes[0]="A"; qtypes[1]="AAAA"; for(int n=0 ; n < d_doIPv6AdditionalProcessing + 1; ++n) { if (i->qtype.getCode()==QType::SRV) { vectorparts; - stringtok(parts,i->content); + stringtok(parts, content); if (parts.size() >= 3) { B.lookup(qtypes[n],parts[2],p); } @@ -395,7 +391,7 @@ int PacketHandler::doAdditionalProcessingAndDropAA(DNSPacket *p, DNSPacket *r, c continue; } else { - B.lookup(qtypes[n],i->content,p); + B.lookup(qtypes[n], content, p); } bool foundOne=false; while(B.get(rr)) { @@ -426,15 +422,16 @@ void PacketHandler::emitNSEC(const std::string& begin, const std::string& end, c nrc.d_set.insert(QType::DNSKEY); DNSResourceRecord rr; - rr.ttl = sd.default_ttl; B.lookup(QType(QType::ANY), begin); while(B.get(rr)) { - if(rr.domain_id == sd.domain_id) + if(rr.domain_id == sd.domain_id && (rr.qtype.getCode() == QType::NS || rr.auth)) nrc.d_set.insert(rr.qtype.getCode()); } nrc.d_next=end; + rr.ttl = sd.default_ttl; + rr.qname=begin; // we can leave ttl untouched, either it is the default, or it is what we retrieved above rr.qtype=QType::NSEC; @@ -455,8 +452,7 @@ void emitNSEC3(DNSBackend& B, const NSEC3PARAMRecordContent& ns3prc, const SOADa n3rc.d_iterations = ns3prc.d_iterations; n3rc.d_algorithm = 1; // SHA1, fixed in PowerDNS for now - DNSResourceRecord rr; - rr.ttl = sd.default_ttl; + DNSResourceRecord nsec3rr, rr; B.lookup(QType(QType::ANY), unhashed); while(B.get(rr)) { n3rc.d_set.insert(rr.qtype.getCode()); @@ -469,6 +465,7 @@ void emitNSEC3(DNSBackend& B, const NSEC3PARAMRecordContent& ns3prc, const SOADa n3rc.d_nexthash=end; + rr.ttl = sd.default_ttl; rr.qname=dotConcat(toLower(toBase32Hex(begin)), sd.qname); rr.qtype=QType::NSEC3; @@ -686,42 +683,6 @@ void PacketHandler::addNSEC(DNSPacket *p, DNSPacket *r, const string& target, co return; } -bool PacketHandler::doDNSSECProcessing(DNSPacket *p, DNSPacket *r) -{ - if(!p->d_dnssecOk) - return false; - - vector arrs=r->getAnswerRecords(); - if(arrs.empty()) - return false; - - DLOG(L<<"Have arrs "< crrs; - - for(vector::const_iterator i=arrs.begin(); - i!=arrs.end(); ++i) - crrs.push_back(**i); - - // we now have a copy, push_back on packet might reallocate! - - for(vector::const_iterator i=crrs.begin(); - i!=crrs.end(); - ++i) { - if(i->d_place!=DNSResourceRecord::ANSWER) - continue; - - B.lookup(QType(QType::RRSIG),i->qname,p); - DNSResourceRecord rr; - while(B.get(rr)) { - rr.d_place=DNSResourceRecord::ANSWER; - if(splitField(rr.content, ' ').first==i->qtype.getName()) - r->addRecord(rr); - } - } - - return false; -} - /* Semantics: - only one backend owns the SOA of a zone @@ -951,7 +912,8 @@ void PacketHandler::makeNXDomain(DNSPacket* p, DNSPacket* r, const std::string& rr.qname=sd.qname; rr.qtype=QType::SOA; rr.content=serializeSOAData(sd); - rr.ttl=sd.ttl; + rr.ttl=min(sd.ttl, sd.default_ttl); + rr.signttl=sd.ttl; rr.domain_id=sd.domain_id; rr.d_place=DNSResourceRecord::AUTHORITY; rr.auth = 1; @@ -972,6 +934,8 @@ void PacketHandler::makeNOError(DNSPacket* p, DNSPacket* r, const std::string& t rr.qtype=QType::SOA; rr.content=serializeSOAData(sd); rr.ttl=sd.ttl; + rr.ttl=min(sd.ttl, sd.default_ttl); + rr.signttl=sd.ttl; rr.domain_id=sd.domain_id; rr.d_place=DNSResourceRecord::AUTHORITY; rr.auth = 1; @@ -1030,16 +994,8 @@ void PacketHandler::completeANYRecords(DNSPacket *p, DNSPacket*r, SOAData& sd, c addNSECX(p, r, target, target, sd.qname, 5); if(pdns_iequals(sd.qname, p->qdomain)) { - DNSSECKeeper::keyset_t zskset = d_dk.getKeys(p->qdomain); - DNSResourceRecord rr; - BOOST_FOREACH(DNSSECKeeper::keyset_t::value_type value, zskset) { - rr.qtype=QType::DNSKEY; - rr.ttl=sd.default_ttl; - rr.qname=p->qdomain; - rr.content=value.first.getDNSKEY().getZoneRepresentation(); - rr.auth = true; - r->addRecord(rr); - } + addDNSKEY(p, r, sd); + addNSEC3PARAM(p, r, sd); } } @@ -1208,11 +1164,16 @@ DNSPacket *PacketHandler::questionOrRecurse(DNSPacket *p, bool *shouldRecurse) authSet.insert(sd.qname); if(pdns_iequals(sd.qname, p->qdomain)) { - if(doDNSKEYRequest(p,r, sd)) - goto sendit; - - if(doNSEC3PARAMRequest(p,r, sd)) - goto sendit; + if(p->qtype.getCode() == QType::DNSKEY) + { + if(addDNSKEY(p, r, sd)) + goto sendit; + } + else if(p->qtype.getCode() == QType::NSEC3PARAM) + { + if(addNSEC3PARAM(p,r, sd)) + goto sendit; + } } if(p->qtype.getCode() == QType::SOA && pdns_iequals(sd.qname, p->qdomain)) { @@ -1251,6 +1212,9 @@ DNSPacket *PacketHandler::questionOrRecurse(DNSPacket *p, bool *shouldRecurse) weDone = weRedirected = weHaveUnauth = 0; while(B.get(rr)) { + if (p->qtype.getCode() == QType::ANY && rr.qtype.getCode() == QType::RRSIG) // RRSIGS are added later any way. + continue; //TODO: this actually means addRRSig should check if the RRSig is already there. + if(rr.qtype.getCode() == QType::DS) rr.auth = 1; // cerr<<"Auth: "<qtype)<<", "<d_dnssecOk) diff --git a/pdns/packethandler.hh b/pdns/packethandler.hh index c9d5f2b0e6..51b2c0966e 100644 --- a/pdns/packethandler.hh +++ b/pdns/packethandler.hh @@ -92,8 +92,8 @@ private: int findUrl(DNSPacket *p, DNSPacket *r, string &target); int doFancyRecords(DNSPacket *p, DNSPacket *r, string &target); int doVersionRequest(DNSPacket *p, DNSPacket *r, string &target); - int doDNSKEYRequest(DNSPacket *p, DNSPacket *r, const SOAData& sd); - int doNSEC3PARAMRequest(DNSPacket *p, DNSPacket *r, const SOAData& sd); + bool addDNSKEY(DNSPacket *p, DNSPacket *r, const SOAData& sd); + bool addNSEC3PARAM(DNSPacket *p, DNSPacket *r, const SOAData& sd); bool getAuth(DNSPacket *p, SOAData *sd, const string &target, int *zoneId); bool getTLDAuth(DNSPacket *p, SOAData *sd, const string &target, int *zoneId); int doAdditionalProcessingAndDropAA(DNSPacket *p, DNSPacket *r, const SOAData& sd); diff --git a/pdns/sdig.cc b/pdns/sdig.cc index f758656f68..34a7c1f246 100644 --- a/pdns/sdig.cc +++ b/pdns/sdig.cc @@ -34,9 +34,16 @@ try DNSPacketWriter pw(packet, argv[3], DNSRecordContent::TypeToNumber(argv[4])); - if(dnssec) + if(dnssec || getenv("SDIGBUFSIZE")) { - pw.addOpt(2800, 0, EDNSOpts::DNSSECOK); + char *sbuf=getenv("SDIGBUFSIZE"); + int bufsize; + if(sbuf) + bufsize=atoi(sbuf); + else + bufsize=2800; + + pw.addOpt(2800, 0, dnssec ? EDNSOpts::DNSSECOK : 0); pw.commit(); } @@ -79,7 +86,25 @@ try for(MOADNSParser::answers_t::const_iterator i=mdp.d_answers.begin(); i!=mdp.d_answers.end(); ++i) { cout<first.d_place-1<<"\t"<first.d_label<<"\tIN\t"<first.d_type); - cout<<"\t"<first.d_ttl<<"\t"<< i->first.d_content->getZoneRepresentation()<<"\n"; + if(i->first.d_type == QType::RRSIG) + { + string zoneRep = i->first.d_content->getZoneRepresentation(); + vector parts; + stringtok(parts, zoneRep); + cout<<"\t"<first.d_ttl<<"\t"<< parts[0]<<" "<first.d_type == QType::DNSKEY) + { + string zoneRep = i->first.d_content->getZoneRepresentation(); + vector parts; + stringtok(parts, zoneRep); + cout<<"\t"<first.d_ttl<<"\t"<< parts[0]<<" "<first.d_ttl<<"\t"<< i->first.d_content->getZoneRepresentation()<<"\n"; + } + } EDNSOpts edo; diff --git a/pdns/tcpreceiver.cc b/pdns/tcpreceiver.cc index 140e4b2430..b3d20723fa 100644 --- a/pdns/tcpreceiver.cc +++ b/pdns/tcpreceiver.cc @@ -593,17 +593,18 @@ int TCPNameserver::doAXFR(const string &target, shared_ptr q, int out DNSResourceRecord rr; + rr.qname = target; + rr.ttl = sd.default_ttl; + rr.auth = 1; // please sign! + BOOST_FOREACH(const DNSSECKeeper::keyset_t::value_type& value, keys) { - rr.qname = target; rr.qtype = QType(QType::DNSKEY); - rr.ttl = sd.default_ttl; - rr.auth = 1; // please sign! rr.content = value.first.getDNSKEY().getZoneRepresentation(); string keyname = NSEC3Zone ? hashQNameWithSalt(ns3pr.d_iterations, ns3pr.d_salt, rr.qname) : labelReverse(rr.qname); NSECXEntry& ne = nsecxrepo[keyname]; ne.d_set.insert(rr.qtype.getCode()); - ne.d_ttl = rr.ttl; + ne.d_ttl = sd.default_ttl; csp.submit(rr); } @@ -634,12 +635,14 @@ int TCPNameserver::doAXFR(const string &target, shared_ptr q, int out dt.set(); int records=0; while(sd.db->get(rr)) { + if (rr.qtype.getCode() == QType::RRSIG) + continue; records++; if(securedZone && (rr.auth || (!NSEC3Zone && rr.qtype.getCode() == QType::NS) || rr.qtype.getCode() == QType::DS)) { // this is probably NSEC specific, NSEC3 is different keyname = NSEC3Zone ? hashQNameWithSalt(ns3pr.d_iterations, ns3pr.d_salt, rr.qname) : labelReverse(rr.qname); NSECXEntry& ne = nsecxrepo[keyname]; ne.d_set.insert(rr.qtype.getCode()); - ne.d_ttl = rr.ttl; + ne.d_ttl = sd.default_ttl; } if(rr.qtype.getCode() == QType::SOA) continue; // skip SOA - would indicate end of AXFR @@ -722,7 +725,6 @@ int TCPNameserver::doAXFR(const string &target, shared_ptr q, int out rr.qtype = QType::NSEC; rr.d_place = DNSResourceRecord::ANSWER; rr.auth=true; - if(csp.submit(rr)) { for(;;) { outpacket->getRRS() = csp.getChunk(); diff --git a/regression-tests.nobackend/tinydns-data-check/expected_result b/regression-tests.nobackend/tinydns-data-check/expected_result index 3dcd7874e5..84ca360b5f 100644 --- a/regression-tests.nobackend/tinydns-data-check/expected_result +++ b/regression-tests.nobackend/tinydns-data-check/expected_result @@ -1,7 +1,7 @@ -9235756d96b6ad0af7936419248c3ed5 ../regression-tests/example.com -33e43585aeed4eb9af10a83c72a04d14 ../regression-tests/test.com +b6d1c64a890e3f3ce40970724a12eb0b ../regression-tests/example.com +6bddbc2cb32ff88988a75f0eba563e7c ../regression-tests/test.com 7d726bc367bf5e6ee5f1689994c6b6d4 ../regression-tests/wtest.com a0670eef8fba3e16908057af8de2c2f2 ../regression-tests/dnssec-parent.com 42dd3a56c7d268e75836371878819ec4 ../regression-tests/delegated.dnssec-parent.com 24514dc104b22206daeb973ff9303545 ../regression-tests/minimal.com -c37c1e26294ecf705295aa0f0d866fd6 ../modules/tinydnsbackend/data.cdb +a27444846fa36a04bf0da82303b80cb4 ../modules/tinydnsbackend/data.cdb diff --git a/regression-tests/any-query/command b/regression-tests/any-query/command index b251ef1285..8422193a86 100755 --- a/regression-tests/any-query/command +++ b/regression-tests/any-query/command @@ -1,3 +1,3 @@ #!/bin/sh -cleandig example.com ANY +SDIGBUFSIZE=32768 cleandig example.com ANY diff --git a/regression-tests/any-query/expected_result b/regression-tests/any-query/expected_result index 35494019fc..b7c8acd4cf 100644 --- a/regression-tests/any-query/expected_result +++ b/regression-tests/any-query/expected_result @@ -1,9 +1,9 @@ -0 example.com. IN DNSKEY 120 256 3 5 AwEAAarTiHhPgvD28WCN8UBXcEcf8f+OF+d/bEoN6zTuHl/oVra5/qfonhYK/RjI74RzHc2wli9TpXOWycQV3YSfpFZ9z+GB/bbsvBon1XMyNf5KXuOwRdHZXIZh1cku3AcIyNroD26MPkbFLHY0+xRI+7u7OsQ6nYcPBpqDiJnB2BMh 0 example.com. IN MX 120 10 smtp-servers.example.com. 0 example.com. IN MX 120 15 smtp-servers.test.com. 0 example.com. IN NS 120 ns1.example.com. 0 example.com. IN NS 120 ns2.example.com. -0 example.com. IN SOA 120 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +0 example.com. IN SOA 100000 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +2 . IN OPT 0 2 ns1.example.com. IN A 120 192.168.1.1 2 ns2.example.com. IN A 120 192.168.1.2 2 smtp-servers.example.com. IN A 120 192.168.0.2 diff --git a/regression-tests/any-query/expected_result.dnssec b/regression-tests/any-query/expected_result.dnssec index a5088133f7..0294db1935 100644 --- a/regression-tests/any-query/expected_result.dnssec +++ b/regression-tests/any-query/expected_result.dnssec @@ -1,8 +1,16 @@ -0 example.com. IN DNSKEY 120 256 3 5 AwEAAarTiHhPgvD28WCN8UBXcEcf8f+OF+d/bEoN6zTuHl/oVra5/qfonhYK/RjI74RzHc2wli9TpXOWycQV3YSfpFZ9z+GB/bbsvBon1XMyNf5KXuOwRdHZXIZh1cku3AcIyNroD26MPkbFLHY0+xRI+7u7OsQ6nYcPBpqDiJnB2BMh +0 example.com. IN DNSKEY 86400 256 3 8 ... +0 example.com. IN DNSKEY 86400 256 3 8 ... +0 example.com. IN DNSKEY 86400 257 3 8 ... 0 example.com. IN MX 120 10 smtp-servers.example.com. 0 example.com. IN MX 120 15 smtp-servers.test.com. 0 example.com. IN NS 120 ns1.example.com. 0 example.com. IN NS 120 ns2.example.com. -0 example.com. IN SOA 120 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 -Rcode: 0, RD: 0, QR: 1, TC: 1, AA: 1, opcode: 0 +0 example.com. IN SOA 100000 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +2 . IN OPT 0 +2 ns1.example.com. IN A 120 192.168.1.1 +2 ns2.example.com. IN A 120 192.168.1.2 +2 smtp-servers.example.com. IN A 120 192.168.0.2 +2 smtp-servers.example.com. IN A 120 192.168.0.3 +2 smtp-servers.example.com. IN A 120 192.168.0.4 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 Reply to question for qname='example.com.', qtype=ANY diff --git a/regression-tests/any-query/expected_result.narrow b/regression-tests/any-query/expected_result.narrow index 49e3c0d754..09d8a60b08 100644 --- a/regression-tests/any-query/expected_result.narrow +++ b/regression-tests/any-query/expected_result.narrow @@ -1,9 +1,18 @@ -0 example.com. IN DNSKEY 120 256 3 5 AwEAAarTiHhPgvD28WCN8UBXcEcf8f+OF+d/bEoN6zTuHl/oVra5/qfonhYK/RjI74RzHc2wli9TpXOWycQV3YSfpFZ9z+GB/bbsvBon1XMyNf5KXuOwRdHZXIZh1cku3AcIyNroD26MPkbFLHY0+xRI+7u7OsQ6nYcPBpqDiJnB2BMh +0 example.com. IN DNSKEY 86400 256 3 8 ... +0 example.com. IN DNSKEY 86400 256 3 8 ... +0 example.com. IN DNSKEY 86400 257 3 8 ... 0 example.com. IN MX 120 10 smtp-servers.example.com. 0 example.com. IN MX 120 15 smtp-servers.test.com. 0 example.com. IN NS 120 ns1.example.com. 0 example.com. IN NS 120 ns2.example.com. -0 example.com. IN SOA 120 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 -0 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM -Rcode: 0, RD: 0, QR: 1, TC: 1, AA: 1, opcode: 0 +0 example.com. IN NSEC3PARAM 86400 1 0 1 abcd +0 example.com. IN SOA 100000 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +0 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM +2 . IN OPT 0 +2 ns1.example.com. IN A 120 192.168.1.1 +2 ns2.example.com. IN A 120 192.168.1.2 +2 smtp-servers.example.com. IN A 120 192.168.0.2 +2 smtp-servers.example.com. IN A 120 192.168.0.3 +2 smtp-servers.example.com. IN A 120 192.168.0.4 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 Reply to question for qname='example.com.', qtype=ANY diff --git a/regression-tests/any-query/expected_result.nsec3 b/regression-tests/any-query/expected_result.nsec3 index 300c3aaba2..b75a964149 100644 --- a/regression-tests/any-query/expected_result.nsec3 +++ b/regression-tests/any-query/expected_result.nsec3 @@ -1,9 +1,18 @@ -0 example.com. IN DNSKEY 120 256 3 5 AwEAAarTiHhPgvD28WCN8UBXcEcf8f+OF+d/bEoN6zTuHl/oVra5/qfonhYK/RjI74RzHc2wli9TpXOWycQV3YSfpFZ9z+GB/bbsvBon1XMyNf5KXuOwRdHZXIZh1cku3AcIyNroD26MPkbFLHY0+xRI+7u7OsQ6nYcPBpqDiJnB2BMh +0 example.com. IN DNSKEY 86400 256 3 8 ... +0 example.com. IN DNSKEY 86400 256 3 8 ... +0 example.com. IN DNSKEY 86400 257 3 8 ... 0 example.com. IN MX 120 10 smtp-servers.example.com. 0 example.com. IN MX 120 15 smtp-servers.test.com. 0 example.com. IN NS 120 ns1.example.com. 0 example.com. IN NS 120 ns2.example.com. -0 example.com. IN SOA 120 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 -0 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM -Rcode: 0, RD: 0, QR: 1, TC: 1, AA: 1, opcode: 0 +0 example.com. IN NSEC3PARAM 86400 1 0 1 abcd +0 example.com. IN SOA 100000 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +0 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +2 . IN OPT 0 +2 ns1.example.com. IN A 120 192.168.1.1 +2 ns2.example.com. IN A 120 192.168.1.2 +2 smtp-servers.example.com. IN A 120 192.168.0.2 +2 smtp-servers.example.com. IN A 120 192.168.0.3 +2 smtp-servers.example.com. IN A 120 192.168.0.4 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 Reply to question for qname='example.com.', qtype=ANY diff --git a/regression-tests/any-wildcard-dnssec/command b/regression-tests/any-wildcard-dnssec/command new file mode 100644 index 0000000000..3106093dc7 --- /dev/null +++ b/regression-tests/any-wildcard-dnssec/command @@ -0,0 +1,4 @@ +#!/bin/sh + +cleandig www.something.wtest.com ANY dnssec + diff --git a/regression-tests/any-wildcard-dnssec/expected_result b/regression-tests/any-wildcard-dnssec/expected_result new file mode 100644 index 0000000000..3b01499330 --- /dev/null +++ b/regression-tests/any-wildcard-dnssec/expected_result @@ -0,0 +1,7 @@ +0 www.something.wtest.com. IN A 3600 4.3.2.1 +0 www.something.wtest.com. IN RRSIG 3600 A 8 3 3600 [expiry] [inception] [keytag] wtest.com. ... +1 a.something.wtest.com. IN NSEC 86400 wtest.com. A RRSIG NSEC +1 a.something.wtest.com. IN RRSIG 86400 NSEC 8 4 86400 [expiry] [inception] [keytag] wtest.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='www.something.wtest.com.', qtype=ANY diff --git a/regression-tests/any-wildcard-dnssec/expected_result.narrow b/regression-tests/any-wildcard-dnssec/expected_result.narrow new file mode 100644 index 0000000000..ac42409769 --- /dev/null +++ b/regression-tests/any-wildcard-dnssec/expected_result.narrow @@ -0,0 +1,7 @@ +0 www.something.wtest.com. IN A 3600 4.3.2.1 +0 www.something.wtest.com. IN RRSIG 3600 A 8 3 3600 [expiry] [inception] [keytag] wtest.com. ... +1 7q60llva2bt9ucubvn553q9s2pf8ho38.wtest.com. IN NSEC3 86400 1 1 1 abcd 7Q60LLVA2BT9UCUBVN553Q9S2PF8HO3A RRSIG +1 7q60llva2bt9ucubvn553q9s2pf8ho38.wtest.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] wtest.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='www.something.wtest.com.', qtype=ANY diff --git a/regression-tests/any-wildcard-dnssec/expected_result.nsec3 b/regression-tests/any-wildcard-dnssec/expected_result.nsec3 new file mode 100644 index 0000000000..779c6ab8ba --- /dev/null +++ b/regression-tests/any-wildcard-dnssec/expected_result.nsec3 @@ -0,0 +1,7 @@ +0 www.something.wtest.com. IN A 3600 4.3.2.1 +0 www.something.wtest.com. IN RRSIG 3600 A 8 3 3600 [expiry] [inception] [keytag] wtest.com. ... +1 7k2dfhl64f0ndftst8u5rr5euminddvb.wtest.com. IN NSEC3 86400 1 1 1 abcd 95QOQ246KN3VM7HL8KVG8O45JIHMNLNG A RRSIG +1 7k2dfhl64f0ndftst8u5rr5euminddvb.wtest.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] wtest.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='www.something.wtest.com.', qtype=ANY diff --git a/regression-tests/basic-soa-resolution/expected_result b/regression-tests/basic-soa-resolution/expected_result index 54a0b23b89..1c424403fe 100644 --- a/regression-tests/basic-soa-resolution/expected_result +++ b/regression-tests/basic-soa-resolution/expected_result @@ -1,3 +1,3 @@ -0 example.com. IN SOA 120 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +0 example.com. IN SOA 100000 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 Reply to question for qname='example.com.', qtype=SOA diff --git a/regression-tests/cleandig b/regression-tests/cleandig index bd6916631d..0789f1dd3b 100755 --- a/regression-tests/cleandig +++ b/regression-tests/cleandig @@ -12,3 +12,4 @@ then unbound-host -v -C unbound-host.conf -t $2 $1 > $testname/unbound-host.out 2>&1 echo RETVAL: $? >> $testname/unbound-host.out fi +grep -i bogus $testname/*.out diff --git a/regression-tests/cname-but-no-correct-type/expected_result b/regression-tests/cname-but-no-correct-type/expected_result index 85596ccece..39b513b852 100644 --- a/regression-tests/cname-but-no-correct-type/expected_result +++ b/regression-tests/cname-but-no-correct-type/expected_result @@ -1,4 +1,4 @@ 0 www.example.com. IN CNAME 120 outpost.example.com. -1 example.com. IN SOA 120 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 Reply to question for qname='www.example.com.', qtype=AAAA diff --git a/regression-tests/ds-at-unsecure-delegation/command b/regression-tests/ds-at-unsecure-delegation/command index cf92f42387..8eee2898cb 100755 --- a/regression-tests/ds-at-unsecure-delegation/command +++ b/regression-tests/ds-at-unsecure-delegation/command @@ -1,2 +1,2 @@ #!/bin/sh -cleandig usa.example.com DS dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig usa.example.com DS dnssec diff --git a/regression-tests/ds-at-unsecure-delegation/expected_result b/regression-tests/ds-at-unsecure-delegation/expected_result index 4efa69a4fc..13ff285d63 100644 --- a/regression-tests/ds-at-unsecure-delegation/expected_result +++ b/regression-tests/ds-at-unsecure-delegation/expected_result @@ -1 +1,7 @@ -1 usa.example.com. IN NSEC 120 www.example.com. NS RRSIG NSEC +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 usa.example.com. IN NSEC 86400 www.example.com. NS RRSIG NSEC +1 usa.example.com. IN RRSIG 86400 NSEC 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='usa.example.com.', qtype=DS diff --git a/regression-tests/ds-at-unsecure-delegation/expected_result.narrow b/regression-tests/ds-at-unsecure-delegation/expected_result.narrow index b298af0c50..addd099613 100644 --- a/regression-tests/ds-at-unsecure-delegation/expected_result.narrow +++ b/regression-tests/ds-at-unsecure-delegation/expected_result.narrow @@ -1,2 +1,9 @@ -1 t67rqvqprigd7rtb5fah6c3o7g9th3iv.example.com. IN NSEC3 120 1 1 1 abcd T67RQVQPRIGD7RTB5FAH6C3O7G9TH3J1 NS RRSIG -1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 t67rqvqprigd7rtb5fah6c3o7g9th3iv.example.com. IN NSEC3 86400 1 1 1 abcd T67RQVQPRIGD7RTB5FAH6C3O7G9TH3J1 NS RRSIG +1 t67rqvqprigd7rtb5fah6c3o7g9th3iv.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='usa.example.com.', qtype=DS diff --git a/regression-tests/ds-at-unsecure-delegation/expected_result.nsec3 b/regression-tests/ds-at-unsecure-delegation/expected_result.nsec3 index 9b0397ac9d..6805539d8d 100644 --- a/regression-tests/ds-at-unsecure-delegation/expected_result.nsec3 +++ b/regression-tests/ds-at-unsecure-delegation/expected_result.nsec3 @@ -1,2 +1,9 @@ -1 t66sektb7egvs7s57m1qged4h6809g8s.example.com. IN NSEC3 120 1 1 1 abcd T6A44A7N1B90T5RIS4IBQKT51MMDL0LO A RRSIG -1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 t66sektb7egvs7s57m1qged4h6809g8s.example.com. IN NSEC3 86400 1 1 1 abcd T6A44A7N1B90T5RIS4IBQKT51MMDL0LO A RRSIG +1 t66sektb7egvs7s57m1qged4h6809g8s.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='usa.example.com.', qtype=DS diff --git a/regression-tests/ds-at-unsecure-zone-cut/command b/regression-tests/ds-at-unsecure-zone-cut/command index 2523f9b50c..41c2cbd44b 100755 --- a/regression-tests/ds-at-unsecure-zone-cut/command +++ b/regression-tests/ds-at-unsecure-zone-cut/command @@ -1,3 +1,3 @@ #!/bin/sh -cleandig delegated.dnssec-parent.com DS dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig delegated.dnssec-parent.com DS dnssec diff --git a/regression-tests/ds-at-unsecure-zone-cut/expected_result b/regression-tests/ds-at-unsecure-zone-cut/expected_result index c95077d876..42a8352647 100644 --- a/regression-tests/ds-at-unsecure-zone-cut/expected_result +++ b/regression-tests/ds-at-unsecure-zone-cut/expected_result @@ -1 +1,7 @@ -1 delegated.dnssec-parent.com. IN NSEC 3600 ns1.dnssec-parent.com. NS RRSIG NSEC +1 delegated.dnssec-parent.com. IN NSEC 86400 ns1.dnssec-parent.com. NS RRSIG NSEC +1 delegated.dnssec-parent.com. IN RRSIG 86400 NSEC 8 3 86400 [expiry] [inception] [keytag] dnssec-parent.com. ... +1 dnssec-parent.com. IN RRSIG 3600 SOA 8 2 3600 [expiry] [inception] [keytag] dnssec-parent.com. ... +1 dnssec-parent.com. IN SOA 3600 ns1.dnssec-parent.com. ahu.example.com. 2005092501 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='delegated.dnssec-parent.com.', qtype=DS diff --git a/regression-tests/ds-at-unsecure-zone-cut/expected_result.narrow b/regression-tests/ds-at-unsecure-zone-cut/expected_result.narrow index ebef2be51c..f1f8edd9b6 100644 --- a/regression-tests/ds-at-unsecure-zone-cut/expected_result.narrow +++ b/regression-tests/ds-at-unsecure-zone-cut/expected_result.narrow @@ -1,2 +1,9 @@ -1 be6iqh4fjrtdhacqk7g3iq96qcvf2qoi.dnssec-parent.com. IN NSEC3 3600 1 1 1 abcd BE6IQH4FJRTDHACQK7G3IQ96QCVF2QOK A NS SOA RRSIG -1 dvkuo8kja65gcsq600e6di9u719lsj8u.dnssec-parent.com. IN NSEC3 3600 1 1 1 abcd DVKUO8KJA65GCSQ600E6DI9U719LSJ8V A NS SOA RRSIG DNSKEY NSEC3PARAM +1 be6iqh4fjrtdhacqk7g3iq96qcvf2qoi.dnssec-parent.com. IN NSEC3 86400 1 1 1 abcd BE6IQH4FJRTDHACQK7G3IQ96QCVF2QOK A NS SOA RRSIG +1 be6iqh4fjrtdhacqk7g3iq96qcvf2qoi.dnssec-parent.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] dnssec-parent.com. ... +1 dnssec-parent.com. IN RRSIG 3600 SOA 8 2 3600 [expiry] [inception] [keytag] dnssec-parent.com. ... +1 dnssec-parent.com. IN SOA 3600 ns1.dnssec-parent.com. ahu.example.com. 2005092501 28800 7200 604800 86400 +1 dvkuo8kja65gcsq600e6di9u719lsj8u.dnssec-parent.com. IN NSEC3 86400 1 1 1 abcd DVKUO8KJA65GCSQ600E6DI9U719LSJ8V A NS SOA RRSIG DNSKEY NSEC3PARAM +1 dvkuo8kja65gcsq600e6di9u719lsj8u.dnssec-parent.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] dnssec-parent.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='delegated.dnssec-parent.com.', qtype=DS diff --git a/regression-tests/ds-at-unsecure-zone-cut/expected_result.nsec3 b/regression-tests/ds-at-unsecure-zone-cut/expected_result.nsec3 index 1fe1947b92..78bf312329 100644 --- a/regression-tests/ds-at-unsecure-zone-cut/expected_result.nsec3 +++ b/regression-tests/ds-at-unsecure-zone-cut/expected_result.nsec3 @@ -1,2 +1,9 @@ -1 29ceqcf4ekgl2gr9i0vjjtk62h5lqs40.dnssec-parent.com. IN NSEC3 3600 1 1 1 abcd DVKUO8KJA65GCSQ600E6DI9U719LSJ8U A RRSIG -1 dvkuo8kja65gcsq600e6di9u719lsj8u.dnssec-parent.com. IN NSEC3 3600 1 1 1 abcd 1SCAQA30LQ0DO5EIRNE4KPJFBEBFGR54 A NS SOA RRSIG DNSKEY NSEC3PARAM +1 29ceqcf4ekgl2gr9i0vjjtk62h5lqs40.dnssec-parent.com. IN NSEC3 86400 1 1 1 abcd DVKUO8KJA65GCSQ600E6DI9U719LSJ8U A RRSIG +1 29ceqcf4ekgl2gr9i0vjjtk62h5lqs40.dnssec-parent.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] dnssec-parent.com. ... +1 dnssec-parent.com. IN RRSIG 3600 SOA 8 2 3600 [expiry] [inception] [keytag] dnssec-parent.com. ... +1 dnssec-parent.com. IN SOA 3600 ns1.dnssec-parent.com. ahu.example.com. 2005092501 28800 7200 604800 86400 +1 dvkuo8kja65gcsq600e6di9u719lsj8u.dnssec-parent.com. IN NSEC3 86400 1 1 1 abcd 1SCAQA30LQ0DO5EIRNE4KPJFBEBFGR54 A NS SOA RRSIG DNSKEY NSEC3PARAM +1 dvkuo8kja65gcsq600e6di9u719lsj8u.dnssec-parent.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] dnssec-parent.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='delegated.dnssec-parent.com.', qtype=DS diff --git a/regression-tests/ds-inside-delegation/expected_result.dnssec b/regression-tests/ds-inside-delegation/expected_result.dnssec index ffe373a206..5e39b33a1e 100644 --- a/regression-tests/ds-inside-delegation/expected_result.dnssec +++ b/regression-tests/ds-inside-delegation/expected_result.dnssec @@ -1,6 +1,6 @@ 1 usa.example.com. IN NS 120 usa-ns1.usa.example.com. 1 usa.example.com. IN NS 120 usa-ns2.usa.example.com. -1 usa.example.com. IN NSEC 120 www.example.com. NS RRSIG NSEC +1 usa.example.com. IN NSEC 86400 www.example.com. NS RRSIG NSEC 2 . IN OPT 32768 2 usa-ns1.usa.example.com. IN A 120 192.168.4.1 2 usa-ns2.usa.example.com. IN A 120 192.168.4.2 diff --git a/regression-tests/ds-inside-delegation/expected_result.narrow b/regression-tests/ds-inside-delegation/expected_result.narrow index 4c1fb8f68e..9f62772b37 100644 --- a/regression-tests/ds-inside-delegation/expected_result.narrow +++ b/regression-tests/ds-inside-delegation/expected_result.narrow @@ -1,7 +1,7 @@ -1 t67rqvqprigd7rtb5fah6c3o7g9th3iv.example.com. IN NSEC3 120 1 1 1 abcd T67RQVQPRIGD7RTB5FAH6C3O7G9TH3J1 NS RRSIG +1 t67rqvqprigd7rtb5fah6c3o7g9th3iv.example.com. IN NSEC3 86400 1 1 1 abcd T67RQVQPRIGD7RTB5FAH6C3O7G9TH3J1 NS RRSIG 1 usa.example.com. IN NS 120 usa-ns1.usa.example.com. 1 usa.example.com. IN NS 120 usa-ns2.usa.example.com. -1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM 2 . IN OPT 32768 2 usa-ns1.usa.example.com. IN A 120 192.168.4.1 2 usa-ns2.usa.example.com. IN A 120 192.168.4.2 diff --git a/regression-tests/ds-inside-delegation/expected_result.nsec3 b/regression-tests/ds-inside-delegation/expected_result.nsec3 index d62c2f1fe0..2afc10d8d9 100644 --- a/regression-tests/ds-inside-delegation/expected_result.nsec3 +++ b/regression-tests/ds-inside-delegation/expected_result.nsec3 @@ -1,7 +1,7 @@ -1 t66sektb7egvs7s57m1qged4h6809g8s.example.com. IN NSEC3 120 1 1 1 abcd T6A44A7N1B90T5RIS4IBQKT51MMDL0LO A RRSIG +1 t66sektb7egvs7s57m1qged4h6809g8s.example.com. IN NSEC3 86400 1 1 1 abcd T6A44A7N1B90T5RIS4IBQKT51MMDL0LO A RRSIG 1 usa.example.com. IN NS 120 usa-ns1.usa.example.com. 1 usa.example.com. IN NS 120 usa-ns2.usa.example.com. -1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM 2 . IN OPT 32768 2 usa-ns1.usa.example.com. IN A 120 192.168.4.1 2 usa-ns2.usa.example.com. IN A 120 192.168.4.2 diff --git a/regression-tests/example.com b/regression-tests/example.com index 62f804371c..cb0ea7e530 100644 --- a/regression-tests/example.com +++ b/regression-tests/example.com @@ -1,6 +1,6 @@ $TTL 120 $ORIGIN example.com. -@ IN SOA ns1.example.com. ahu.example.com. ( +@ 100000 IN SOA ns1.example.com. ahu.example.com. ( 2000081501 8H ; refresh 2H ; retry @@ -12,7 +12,7 @@ $ORIGIN example.com. @ IN NS ns2.example.com. @ IN MX 10 smtp-servers.example.com. @ IN MX 15 smtp-servers.test.com. -@ IN DNSKEY 256 3 5 AwEAAarTiHhPgvD28WCN8UBXcEcf8f+OF+d/bEoN6zTuHl/oVra5/qfonhYK/RjI74RzHc2wli9TpXOWycQV3YSfpFZ9z+GB/bbsvBon1XMyNf5KXuOwRdHZXIZh1cku3AcIyNroD26MPkbFLHY0+xRI+7u7OsQ6nYcPBpqDiJnB2BMh +;@ IN DNSKEY 256 3 5 AwEAAarTiHhPgvD28WCN8UBXcEcf8f+OF+d/bEoN6zTuHl/oVra5/qfonhYK/RjI74RzHc2wli9TpXOWycQV3YSfpFZ9z+GB/bbsvBon1XMyNf5KXuOwRdHZXIZh1cku3AcIyNroD26MPkbFLHY0+xRI+7u7OsQ6nYcPBpqDiJnB2BMh ; ns1 IN A 192.168.1.1 ns2 IN A 192.168.1.2 diff --git a/regression-tests/five-levels-wildcard-one-below-apex/command b/regression-tests/five-levels-wildcard-one-below-apex/command index a6030fdcd7..9d1606d1f1 100755 --- a/regression-tests/five-levels-wildcard-one-below-apex/command +++ b/regression-tests/five-levels-wildcard-one-below-apex/command @@ -1,2 +1,2 @@ #!/bin/sh -cleandig www.a.b.c.d.e.something.wtest.com A dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig www.a.b.c.d.e.something.wtest.com A dnssec diff --git a/regression-tests/five-levels-wildcard-one-below-apex/expected_result b/regression-tests/five-levels-wildcard-one-below-apex/expected_result index cbcb94c674..f2dc0d28cb 100644 --- a/regression-tests/five-levels-wildcard-one-below-apex/expected_result +++ b/regression-tests/five-levels-wildcard-one-below-apex/expected_result @@ -1 +1,7 @@ -1 a.something.wtest.com. IN NSEC 3600 wtest.com. A RRSIG NSEC +0 www.a.b.c.d.e.something.wtest.com. IN A 3600 4.3.2.1 +0 www.a.b.c.d.e.something.wtest.com. IN RRSIG 3600 A 8 3 3600 [expiry] [inception] [keytag] wtest.com. ... +1 a.something.wtest.com. IN NSEC 86400 wtest.com. A RRSIG NSEC +1 a.something.wtest.com. IN RRSIG 86400 NSEC 8 4 86400 [expiry] [inception] [keytag] wtest.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='www.a.b.c.d.e.something.wtest.com.', qtype=A diff --git a/regression-tests/five-levels-wildcard-one-below-apex/expected_result.narrow b/regression-tests/five-levels-wildcard-one-below-apex/expected_result.narrow index 23f649bd9e..a3a2083fc7 100644 --- a/regression-tests/five-levels-wildcard-one-below-apex/expected_result.narrow +++ b/regression-tests/five-levels-wildcard-one-below-apex/expected_result.narrow @@ -1 +1,7 @@ +0 www.a.b.c.d.e.something.wtest.com. IN A 3600 4.3.2.1 +0 www.a.b.c.d.e.something.wtest.com. IN RRSIG 3600 A 8 3 3600 [expiry] [inception] [keytag] wtest.com. ... 1 pqgjjrj5si55uc1208gt1hp1k217fhqu.wtest.com. IN NSEC3 86400 1 1 1 abcd PQGJJRJ5SI55UC1208GT1HP1K217FHR0 RRSIG +1 pqgjjrj5si55uc1208gt1hp1k217fhqu.wtest.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] wtest.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='www.a.b.c.d.e.something.wtest.com.', qtype=A diff --git a/regression-tests/five-levels-wildcard-one-below-apex/expected_result.nsec3 b/regression-tests/five-levels-wildcard-one-below-apex/expected_result.nsec3 index f5e0f61496..8407a981ba 100644 --- a/regression-tests/five-levels-wildcard-one-below-apex/expected_result.nsec3 +++ b/regression-tests/five-levels-wildcard-one-below-apex/expected_result.nsec3 @@ -1 +1,7 @@ -1 pd15qdsjjbfosu5fg2oqrnlb8r8oifl6.wtest.com. IN NSEC3 3600 1 1 1 abcd SHEGK154N8362AG22AR9VDDRF3127M6I A RRSIG +0 www.a.b.c.d.e.something.wtest.com. IN A 3600 4.3.2.1 +0 www.a.b.c.d.e.something.wtest.com. IN RRSIG 3600 A 8 3 3600 [expiry] [inception] [keytag] wtest.com. ... +1 pd15qdsjjbfosu5fg2oqrnlb8r8oifl6.wtest.com. IN NSEC3 86400 1 1 1 abcd SHEGK154N8362AG22AR9VDDRF3127M6I A RRSIG +1 pd15qdsjjbfosu5fg2oqrnlb8r8oifl6.wtest.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] wtest.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='www.a.b.c.d.e.something.wtest.com.', qtype=A diff --git a/regression-tests/five-levels-wildcard/command b/regression-tests/five-levels-wildcard/command index 5037adfd73..8335364fcc 100755 --- a/regression-tests/five-levels-wildcard/command +++ b/regression-tests/five-levels-wildcard/command @@ -1,2 +1,2 @@ #!/bin/sh -cleandig www.a.b.c.d.e.wtest.com A dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig www.a.b.c.d.e.wtest.com A dnssec diff --git a/regression-tests/five-levels-wildcard/expected_result b/regression-tests/five-levels-wildcard/expected_result index 27b688b5ea..9d5a4fe24d 100644 --- a/regression-tests/five-levels-wildcard/expected_result +++ b/regression-tests/five-levels-wildcard/expected_result @@ -1 +1,7 @@ -1 *.a.b.c.d.e.wtest.com. IN NSEC 3600 secure.wtest.com. A RRSIG NSEC +0 www.a.b.c.d.e.wtest.com. IN A 3600 6.7.8.9 +0 www.a.b.c.d.e.wtest.com. IN RRSIG 3600 A 8 7 3600 [expiry] [inception] [keytag] wtest.com. ... +1 *.a.b.c.d.e.wtest.com. IN NSEC 86400 secure.wtest.com. A RRSIG NSEC +1 *.a.b.c.d.e.wtest.com. IN RRSIG 86400 NSEC 8 7 86400 [expiry] [inception] [keytag] wtest.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='www.a.b.c.d.e.wtest.com.', qtype=A diff --git a/regression-tests/five-levels-wildcard/expected_result.narrow b/regression-tests/five-levels-wildcard/expected_result.narrow index 7bc473d215..42a06912ec 100644 --- a/regression-tests/five-levels-wildcard/expected_result.narrow +++ b/regression-tests/five-levels-wildcard/expected_result.narrow @@ -1 +1,7 @@ +0 www.a.b.c.d.e.wtest.com. IN A 3600 6.7.8.9 +0 www.a.b.c.d.e.wtest.com. IN RRSIG 3600 A 8 7 3600 [expiry] [inception] [keytag] wtest.com. ... 1 pet5iqbgccga60p2n38nmuanrk50papg.wtest.com. IN NSEC3 86400 1 1 1 abcd PET5IQBGCCGA60P2N38NMUANRK50PAPI RRSIG +1 pet5iqbgccga60p2n38nmuanrk50papg.wtest.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] wtest.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='www.a.b.c.d.e.wtest.com.', qtype=A diff --git a/regression-tests/five-levels-wildcard/expected_result.nsec3 b/regression-tests/five-levels-wildcard/expected_result.nsec3 index f5e0f61496..56bc239fab 100644 --- a/regression-tests/five-levels-wildcard/expected_result.nsec3 +++ b/regression-tests/five-levels-wildcard/expected_result.nsec3 @@ -1 +1,7 @@ -1 pd15qdsjjbfosu5fg2oqrnlb8r8oifl6.wtest.com. IN NSEC3 3600 1 1 1 abcd SHEGK154N8362AG22AR9VDDRF3127M6I A RRSIG +0 www.a.b.c.d.e.wtest.com. IN A 3600 6.7.8.9 +0 www.a.b.c.d.e.wtest.com. IN RRSIG 3600 A 8 7 3600 [expiry] [inception] [keytag] wtest.com. ... +1 pd15qdsjjbfosu5fg2oqrnlb8r8oifl6.wtest.com. IN NSEC3 86400 1 1 1 abcd SHEGK154N8362AG22AR9VDDRF3127M6I A RRSIG +1 pd15qdsjjbfosu5fg2oqrnlb8r8oifl6.wtest.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] wtest.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='www.a.b.c.d.e.wtest.com.', qtype=A diff --git a/regression-tests/minimal-noerror/expected_result b/regression-tests/minimal-noerror/expected_result index b6b65ba3ed..5dd9d1226e 100644 --- a/regression-tests/minimal-noerror/expected_result +++ b/regression-tests/minimal-noerror/expected_result @@ -1 +1 @@ -1 minimal.com. IN NSEC 120 minimal.com. NS SOA RRSIG NSEC DNSKEY +1 minimal.com. IN NSEC 86400 minimal.com. NS SOA RRSIG NSEC DNSKEY diff --git a/regression-tests/minimal-noerror/expected_result.narrow b/regression-tests/minimal-noerror/expected_result.narrow index ab9bcf73b1..c7c4ef9ecf 100644 --- a/regression-tests/minimal-noerror/expected_result.narrow +++ b/regression-tests/minimal-noerror/expected_result.narrow @@ -1 +1 @@ -1 09lo11rs63u9b3d538a86ijvqcqt9312.minimal.com. IN NSEC3 120 1 1 1 abcd 09LO11RS63U9B3D538A86IJVQCQT9313 NS SOA RRSIG DNSKEY NSEC3PARAM +1 09lo11rs63u9b3d538a86ijvqcqt9312.minimal.com. IN NSEC3 86400 1 1 1 abcd 09LO11RS63U9B3D538A86IJVQCQT9313 NS SOA RRSIG DNSKEY NSEC3PARAM diff --git a/regression-tests/minimal-noerror/expected_result.nsec3 b/regression-tests/minimal-noerror/expected_result.nsec3 index d00f89355b..d885980b1c 100644 --- a/regression-tests/minimal-noerror/expected_result.nsec3 +++ b/regression-tests/minimal-noerror/expected_result.nsec3 @@ -1 +1 @@ -1 09lo11rs63u9b3d538a86ijvqcqt9312.minimal.com. IN NSEC3 120 1 1 1 abcd 09LO11RS63U9B3D538A86IJVQCQT9312 NS SOA RRSIG DNSKEY NSEC3PARAM +1 09lo11rs63u9b3d538a86ijvqcqt9312.minimal.com. IN NSEC3 86400 1 1 1 abcd 09LO11RS63U9B3D538A86IJVQCQT9312 NS SOA RRSIG DNSKEY NSEC3PARAM diff --git a/regression-tests/minimal-nxdomain/expected_result b/regression-tests/minimal-nxdomain/expected_result index b6b65ba3ed..5dd9d1226e 100644 --- a/regression-tests/minimal-nxdomain/expected_result +++ b/regression-tests/minimal-nxdomain/expected_result @@ -1 +1 @@ -1 minimal.com. IN NSEC 120 minimal.com. NS SOA RRSIG NSEC DNSKEY +1 minimal.com. IN NSEC 86400 minimal.com. NS SOA RRSIG NSEC DNSKEY diff --git a/regression-tests/minimal-nxdomain/expected_result.narrow b/regression-tests/minimal-nxdomain/expected_result.narrow index fd35b6446d..f0c15c31da 100644 --- a/regression-tests/minimal-nxdomain/expected_result.narrow +++ b/regression-tests/minimal-nxdomain/expected_result.narrow @@ -1,3 +1,3 @@ -1 09lo11rs63u9b3d538a86ijvqcqt9312.minimal.com. IN NSEC3 120 1 1 1 abcd 09LO11RS63U9B3D538A86IJVQCQT9313 NS SOA RRSIG DNSKEY NSEC3PARAM +1 09lo11rs63u9b3d538a86ijvqcqt9312.minimal.com. IN NSEC3 86400 1 1 1 abcd 09LO11RS63U9B3D538A86IJVQCQT9313 NS SOA RRSIG DNSKEY NSEC3PARAM 1 8hki26qt36v6qs8cll4e4nvjit38uhap.minimal.com. IN NSEC3 86400 1 1 1 abcd 8HKI26QT36V6QS8CLL4E4NVJIT38UHAR RRSIG 1 9oadfe8c55evko75kb06spdl23p4fmrh.minimal.com. IN NSEC3 86400 1 1 1 abcd 9OADFE8C55EVKO75KB06SPDL23P4FMRJ RRSIG diff --git a/regression-tests/minimal-nxdomain/expected_result.nsec3 b/regression-tests/minimal-nxdomain/expected_result.nsec3 index d00f89355b..d885980b1c 100644 --- a/regression-tests/minimal-nxdomain/expected_result.nsec3 +++ b/regression-tests/minimal-nxdomain/expected_result.nsec3 @@ -1 +1 @@ -1 09lo11rs63u9b3d538a86ijvqcqt9312.minimal.com. IN NSEC3 120 1 1 1 abcd 09LO11RS63U9B3D538A86IJVQCQT9312 NS SOA RRSIG DNSKEY NSEC3PARAM +1 09lo11rs63u9b3d538a86ijvqcqt9312.minimal.com. IN NSEC3 86400 1 1 1 abcd 09LO11RS63U9B3D538A86IJVQCQT9312 NS SOA RRSIG DNSKEY NSEC3PARAM diff --git a/regression-tests/non-existing-record-other-types-exist-ns/expected_result b/regression-tests/non-existing-record-other-types-exist-ns/expected_result index c9f9226dd2..a5cc1924da 100644 --- a/regression-tests/non-existing-record-other-types-exist-ns/expected_result +++ b/regression-tests/non-existing-record-other-types-exist-ns/expected_result @@ -1,3 +1,3 @@ -1 example.com. IN SOA 120 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 Reply to question for qname='ns1.example.com.', qtype=AAAA diff --git a/regression-tests/non-existing-record-other-types-exist/expected_result b/regression-tests/non-existing-record-other-types-exist/expected_result index f0bbc3b503..a9aaa10ac7 100644 --- a/regression-tests/non-existing-record-other-types-exist/expected_result +++ b/regression-tests/non-existing-record-other-types-exist/expected_result @@ -1,3 +1,3 @@ -1 example.com. IN SOA 120 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 Reply to question for qname='outpost.example.com.', qtype=AAAA diff --git a/regression-tests/ns-with-identical-glue/expected_result b/regression-tests/ns-with-identical-glue/expected_result index 292dedd68e..ea2775438c 100644 --- a/regression-tests/ns-with-identical-glue/expected_result +++ b/regression-tests/ns-with-identical-glue/expected_result @@ -1,4 +1,4 @@ 1 blah.test.com. IN NS 3600 blah.test.com. -2 blah.test.com. IN A 3600 9.9.9.9 +2 blah.test.com. IN A 3600 192.168.6.1 Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0 Reply to question for qname='blah.test.com.', qtype=MX diff --git a/regression-tests/nsec-bitmap/command b/regression-tests/nsec-bitmap/command index 312d4fcdd9..9190ecc7ce 100755 --- a/regression-tests/nsec-bitmap/command +++ b/regression-tests/nsec-bitmap/command @@ -1,2 +1,2 @@ #!/bin/sh -cleandig hightype.example.com NSEC dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig hightype.example.com NSEC dnssec diff --git a/regression-tests/nsec-bitmap/expected_result b/regression-tests/nsec-bitmap/expected_result index 992d779aa7..5780b6994c 100644 --- a/regression-tests/nsec-bitmap/expected_result +++ b/regression-tests/nsec-bitmap/expected_result @@ -1 +1,5 @@ -0 hightype.example.com. IN NSEC 120 host-0.example.com. A RRSIG NSEC TYPE65534 +0 hightype.example.com. IN NSEC 86400 host-0.example.com. A RRSIG NSEC TYPE65534 +0 hightype.example.com. IN RRSIG 86400 NSEC 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='hightype.example.com.', qtype=NSEC diff --git a/regression-tests/nsec-bitmap/expected_result.narrow b/regression-tests/nsec-bitmap/expected_result.narrow index f7bc732379..d0460525a8 100644 --- a/regression-tests/nsec-bitmap/expected_result.narrow +++ b/regression-tests/nsec-bitmap/expected_result.narrow @@ -1 +1,7 @@ -1 3v4it454kfh142bi7afagnuvigrpfptt.example.com. IN NSEC3 120 1 1 1 abcd 3V4IT454KFH142BI7AFAGNUVIGRPFPTU A RRSIG TYPE65534 +1 3v4it454kfh142bi7afagnuvigrpfptt.example.com. IN NSEC3 86400 1 1 1 abcd 3V4IT454KFH142BI7AFAGNUVIGRPFPTU A RRSIG TYPE65534 +1 3v4it454kfh142bi7afagnuvigrpfptt.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='hightype.example.com.', qtype=NSEC diff --git a/regression-tests/nsec-bitmap/expected_result.nsec3 b/regression-tests/nsec-bitmap/expected_result.nsec3 index bd037df215..5bc4f6c20e 100644 --- a/regression-tests/nsec-bitmap/expected_result.nsec3 +++ b/regression-tests/nsec-bitmap/expected_result.nsec3 @@ -1 +1,7 @@ -1 3v4it454kfh142bi7afagnuvigrpfptt.example.com. IN NSEC3 120 1 1 1 abcd 3V4S43RV1GT28N0F2PPJ8I8482ESMUOB A RRSIG TYPE65534 +1 3v4it454kfh142bi7afagnuvigrpfptt.example.com. IN NSEC3 86400 1 1 1 abcd 3V4S43RV1GT28N0F2PPJ8I8482ESMUOB A RRSIG TYPE65534 +1 3v4it454kfh142bi7afagnuvigrpfptt.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='hightype.example.com.', qtype=NSEC diff --git a/regression-tests/nsec-glue-at-delegation/command b/regression-tests/nsec-glue-at-delegation/command new file mode 100644 index 0000000000..b705a0b595 --- /dev/null +++ b/regression-tests/nsec-glue-at-delegation/command @@ -0,0 +1,2 @@ +#!/bin/sh +cleandig blah.test.com MX dnssec diff --git a/regression-tests/nsec-glue-at-delegation/expected_result b/regression-tests/nsec-glue-at-delegation/expected_result new file mode 100644 index 0000000000..6a223b6de6 --- /dev/null +++ b/regression-tests/nsec-glue-at-delegation/expected_result @@ -0,0 +1,7 @@ +1 blah.test.com. IN NS 3600 blah.test.com. +1 blah.test.com. IN NSEC 86400 counter.test.com. NS RRSIG NSEC +1 blah.test.com. IN RRSIG 86400 NSEC 8 3 86400 [expiry] [inception] [keytag] test.com. ... +2 . IN OPT 32768 +2 blah.test.com. IN A 3600 192.168.6.1 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0 +Reply to question for qname='blah.test.com.', qtype=MX diff --git a/regression-tests/nsec-glue-at-delegation/expected_result.narrow b/regression-tests/nsec-glue-at-delegation/expected_result.narrow new file mode 100644 index 0000000000..88e1d7f564 --- /dev/null +++ b/regression-tests/nsec-glue-at-delegation/expected_result.narrow @@ -0,0 +1,9 @@ +1 2eu2gulbu53h9uvhfalshpbo2a83t6l2.test.com. IN NSEC3 86400 1 1 1 abcd 2EU2GULBU53H9UVHFALSHPBO2A83T6L3 NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 2eu2gulbu53h9uvhfalshpbo2a83t6l2.test.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] test.com. ... +1 blah.test.com. IN NS 3600 blah.test.com. +1 s96h2qicbt8d9i5aa43kp8sjjresq4ka.test.com. IN NSEC3 86400 1 1 1 abcd S96H2QICBT8D9I5AA43KP8SJJRESQ4KC A NS RRSIG +1 s96h2qicbt8d9i5aa43kp8sjjresq4ka.test.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] test.com. ... +2 . IN OPT 32768 +2 blah.test.com. IN A 3600 192.168.6.1 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0 +Reply to question for qname='blah.test.com.', qtype=MX diff --git a/regression-tests/nsec-glue-at-delegation/expected_result.nsec3 b/regression-tests/nsec-glue-at-delegation/expected_result.nsec3 new file mode 100644 index 0000000000..81624823bd --- /dev/null +++ b/regression-tests/nsec-glue-at-delegation/expected_result.nsec3 @@ -0,0 +1,9 @@ +1 2eu2gulbu53h9uvhfalshpbo2a83t6l2.test.com. IN NSEC3 86400 1 1 1 abcd 88F1BQRB2ISCVFEL2SQQCKSVFLNEKAP6 NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 2eu2gulbu53h9uvhfalshpbo2a83t6l2.test.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] test.com. ... +1 blah.test.com. IN NS 3600 blah.test.com. +1 qd81ag9inqts1ocs7api0pji94k27btr.test.com. IN NSEC3 86400 1 1 1 abcd SA5VVPQN1COEJGJ3HBKFEKDNII8KKSQA CNAME RRSIG +1 qd81ag9inqts1ocs7api0pji94k27btr.test.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] test.com. ... +2 . IN OPT 32768 +2 blah.test.com. IN A 3600 192.168.6.1 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0 +Reply to question for qname='blah.test.com.', qtype=MX diff --git a/regression-tests/nsec-glue/command b/regression-tests/nsec-glue/command index f4266c454d..f976759df6 100755 --- a/regression-tests/nsec-glue/command +++ b/regression-tests/nsec-glue/command @@ -1,3 +1,3 @@ #!/bin/sh -cleandig usazzz.example.com A dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig usazzz.example.com A dnssec diff --git a/regression-tests/nsec-glue/expected_result b/regression-tests/nsec-glue/expected_result index 12fcd1420d..21a68a262b 100644 --- a/regression-tests/nsec-glue/expected_result +++ b/regression-tests/nsec-glue/expected_result @@ -1,2 +1,9 @@ -1 example.com. IN NSEC 120 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY -1 usa.example.com. IN NSEC 120 www.example.com. NS RRSIG NSEC +1 example.com. IN NSEC 86400 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY +1 example.com. IN RRSIG 86400 NSEC 8 2 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 usa.example.com. IN NSEC 86400 www.example.com. NS RRSIG NSEC +1 usa.example.com. IN RRSIG 86400 NSEC 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='usazzz.example.com.', qtype=A diff --git a/regression-tests/nsec-glue/expected_result.narrow b/regression-tests/nsec-glue/expected_result.narrow index f47c66a9c1..6a1c2d557f 100644 --- a/regression-tests/nsec-glue/expected_result.narrow +++ b/regression-tests/nsec-glue/expected_result.narrow @@ -1,3 +1,11 @@ 1 9fag9508oqu3m22qac0u5eqgg45v8cf0.example.com. IN NSEC3 86400 1 1 1 abcd 9FAG9508OQU3M22QAC0U5EQGG45V8CF2 RRSIG +1 9fag9508oqu3m22qac0u5eqgg45v8cf0.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 1 kt3ll2fgp7p2s71mk7frk5igi8pc8gl1.example.com. IN NSEC3 86400 1 1 1 abcd KT3LL2FGP7P2S71MK7FRK5IGI8PC8GL3 RRSIG -1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 kt3ll2fgp7p2s71mk7frk5igi8pc8gl1.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='usazzz.example.com.', qtype=A diff --git a/regression-tests/nsec-glue/expected_result.nsec3 b/regression-tests/nsec-glue/expected_result.nsec3 index 95b042ccc3..3fd9649f9e 100644 --- a/regression-tests/nsec-glue/expected_result.nsec3 +++ b/regression-tests/nsec-glue/expected_result.nsec3 @@ -1,3 +1,11 @@ -1 9f8hti7cc7oqnqjv84klnp89glqrss3r.example.com. IN NSEC3 120 1 1 1 abcd 9FDAOFPLLN0FQFU9DP274GOU59QFHSLD A RRSIG -1 kt0pu1qu9of4ek09a6amheu1l4c4dq6b.example.com. IN NSEC3 120 1 1 1 abcd KT832M4L92B5MCUCJI8QJF16MM2DU3MK A RRSIG -1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 9f8hti7cc7oqnqjv84klnp89glqrss3r.example.com. IN NSEC3 86400 1 1 1 abcd 9FDAOFPLLN0FQFU9DP274GOU59QFHSLD A RRSIG +1 9f8hti7cc7oqnqjv84klnp89glqrss3r.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 kt0pu1qu9of4ek09a6amheu1l4c4dq6b.example.com. IN NSEC3 86400 1 1 1 abcd KT832M4L92B5MCUCJI8QJF16MM2DU3MK A RRSIG +1 kt0pu1qu9of4ek09a6amheu1l4c4dq6b.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='usazzz.example.com.', qtype=A diff --git a/regression-tests/nsec-middle/command b/regression-tests/nsec-middle/command index ac281057f3..9745b8bb7b 100755 --- a/regression-tests/nsec-middle/command +++ b/regression-tests/nsec-middle/command @@ -1,3 +1,3 @@ #!/bin/sh -cleandig outerpost.example.com A dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig outerpost.example.com A dnssec diff --git a/regression-tests/nsec-middle/expected_result b/regression-tests/nsec-middle/expected_result index 54d407347f..0b7e2a1172 100644 --- a/regression-tests/nsec-middle/expected_result +++ b/regression-tests/nsec-middle/expected_result @@ -1,2 +1,9 @@ -1 example.com. IN NSEC 120 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY -1 ns2.example.com. IN NSEC 120 outpost.example.com. A RRSIG NSEC +1 example.com. IN NSEC 86400 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY +1 example.com. IN RRSIG 86400 NSEC 8 2 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 ns2.example.com. IN NSEC 86400 outpost.example.com. A RRSIG NSEC +1 ns2.example.com. IN RRSIG 86400 NSEC 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='outerpost.example.com.', qtype=A diff --git a/regression-tests/nsec-middle/expected_result.narrow b/regression-tests/nsec-middle/expected_result.narrow index 6a5791733c..0db51e55c8 100644 --- a/regression-tests/nsec-middle/expected_result.narrow +++ b/regression-tests/nsec-middle/expected_result.narrow @@ -1,3 +1,11 @@ 1 9fag9508oqu3m22qac0u5eqgg45v8cf0.example.com. IN NSEC3 86400 1 1 1 abcd 9FAG9508OQU3M22QAC0U5EQGG45V8CF2 RRSIG +1 9fag9508oqu3m22qac0u5eqgg45v8cf0.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 1 sthvu2kihc96kc1tu8v3curr8og5dghn.example.com. IN NSEC3 86400 1 1 1 abcd STHVU2KIHC96KC1TU8V3CURR8OG5DGHP RRSIG -1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 sthvu2kihc96kc1tu8v3curr8og5dghn.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='outerpost.example.com.', qtype=A diff --git a/regression-tests/nsec-middle/expected_result.nsec3 b/regression-tests/nsec-middle/expected_result.nsec3 index 68f5fb0273..6cac84aaad 100644 --- a/regression-tests/nsec-middle/expected_result.nsec3 +++ b/regression-tests/nsec-middle/expected_result.nsec3 @@ -1,3 +1,11 @@ -1 9f8hti7cc7oqnqjv84klnp89glqrss3r.example.com. IN NSEC3 120 1 1 1 abcd 9FDAOFPLLN0FQFU9DP274GOU59QFHSLD A RRSIG -1 sthkgrndv06hbdrfe7a329lup4mctmqr.example.com. IN NSEC3 120 1 1 1 abcd STKPKJBN0URUBBIM832MF33V5OGJR396 A RRSIG -1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 9f8hti7cc7oqnqjv84klnp89glqrss3r.example.com. IN NSEC3 86400 1 1 1 abcd 9FDAOFPLLN0FQFU9DP274GOU59QFHSLD A RRSIG +1 9f8hti7cc7oqnqjv84klnp89glqrss3r.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 sthkgrndv06hbdrfe7a329lup4mctmqr.example.com. IN NSEC3 86400 1 1 1 abcd STKPKJBN0URUBBIM832MF33V5OGJR396 A RRSIG +1 sthkgrndv06hbdrfe7a329lup4mctmqr.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='outerpost.example.com.', qtype=A diff --git a/regression-tests/nsec-wildcard/command b/regression-tests/nsec-wildcard/command index bb6730d3f8..72029fc3b9 100755 --- a/regression-tests/nsec-wildcard/command +++ b/regression-tests/nsec-wildcard/command @@ -1,3 +1,3 @@ #!/bin/sh -cleandig t.something.wtest.com TXT dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig t.something.wtest.com TXT dnssec diff --git a/regression-tests/nsec-wildcard/expected_result b/regression-tests/nsec-wildcard/expected_result index e144b089e2..f773699c79 100644 --- a/regression-tests/nsec-wildcard/expected_result +++ b/regression-tests/nsec-wildcard/expected_result @@ -1,2 +1,9 @@ -1 *.something.wtest.com. IN NSEC 3600 a.something.wtest.com. A RRSIG NSEC -1 a.something.wtest.com. IN NSEC 3600 wtest.com. A RRSIG NSEC +1 *.something.wtest.com. IN NSEC 86400 a.something.wtest.com. A RRSIG NSEC +1 *.something.wtest.com. IN RRSIG 86400 NSEC 8 3 86400 [expiry] [inception] [keytag] wtest.com. ... +1 a.something.wtest.com. IN NSEC 86400 wtest.com. A RRSIG NSEC +1 a.something.wtest.com. IN RRSIG 86400 NSEC 8 4 86400 [expiry] [inception] [keytag] wtest.com. ... +1 wtest.com. IN RRSIG 3600 SOA 8 2 3600 [expiry] [inception] [keytag] wtest.com. ... +1 wtest.com. IN SOA 3600 ns1.wtest.com. ahu.example.com. 2005092501 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='t.something.wtest.com.', qtype=TXT diff --git a/regression-tests/nsec-wildcard/expected_result.narrow b/regression-tests/nsec-wildcard/expected_result.narrow index 3d3b5b5bf4..da2aca7055 100644 --- a/regression-tests/nsec-wildcard/expected_result.narrow +++ b/regression-tests/nsec-wildcard/expected_result.narrow @@ -1,2 +1,9 @@ 1 368r0s1q794jmkdrcpf6f85v316hd9ak.wtest.com. IN NSEC3 86400 1 1 1 abcd 368R0S1Q794JMKDRCPF6F85V316HD9AM RRSIG -1 54njs65s8u96tkffrft6l7j1t1556vik.wtest.com. IN NSEC3 3600 1 1 1 abcd 54NJS65S8U96TKFFRFT6L7J1T1556VIL TXT RRSIG +1 368r0s1q794jmkdrcpf6f85v316hd9ak.wtest.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] wtest.com. ... +1 54njs65s8u96tkffrft6l7j1t1556vik.wtest.com. IN NSEC3 86400 1 1 1 abcd 54NJS65S8U96TKFFRFT6L7J1T1556VIL TXT RRSIG +1 54njs65s8u96tkffrft6l7j1t1556vik.wtest.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] wtest.com. ... +1 wtest.com. IN RRSIG 3600 SOA 8 2 3600 [expiry] [inception] [keytag] wtest.com. ... +1 wtest.com. IN SOA 3600 ns1.wtest.com. ahu.example.com. 2005092501 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='t.something.wtest.com.', qtype=TXT diff --git a/regression-tests/nsec-wildcard/expected_result.nsec3 b/regression-tests/nsec-wildcard/expected_result.nsec3 index 34342e9f4c..2ee8b774a1 100644 --- a/regression-tests/nsec-wildcard/expected_result.nsec3 +++ b/regression-tests/nsec-wildcard/expected_result.nsec3 @@ -1,2 +1,9 @@ -1 54njs65s8u96tkffrft6l7j1t1556vik.wtest.com. IN NSEC3 3600 1 1 1 abcd 67I2ESLUBOJ7DPG4263L3T8DV19G6D0G TXT RRSIG -1 shegk154n8362ag22ar9vddrf3127m6i.wtest.com. IN NSEC3 3600 1 1 1 abcd 53I5J7TGM8QG2GBV716RVQVARQCIJUE2 A NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 54njs65s8u96tkffrft6l7j1t1556vik.wtest.com. IN NSEC3 86400 1 1 1 abcd 67I2ESLUBOJ7DPG4263L3T8DV19G6D0G TXT RRSIG +1 54njs65s8u96tkffrft6l7j1t1556vik.wtest.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] wtest.com. ... +1 shegk154n8362ag22ar9vddrf3127m6i.wtest.com. IN NSEC3 86400 1 1 1 abcd 53I5J7TGM8QG2GBV716RVQVARQCIJUE2 A NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 shegk154n8362ag22ar9vddrf3127m6i.wtest.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] wtest.com. ... +1 wtest.com. IN RRSIG 3600 SOA 8 2 3600 [expiry] [inception] [keytag] wtest.com. ... +1 wtest.com. IN SOA 3600 ns1.wtest.com. ahu.example.com. 2005092501 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='t.something.wtest.com.', qtype=TXT diff --git a/regression-tests/nsec-wraparound/command b/regression-tests/nsec-wraparound/command index 4921a3aa30..7af813e5ef 100755 --- a/regression-tests/nsec-wraparound/command +++ b/regression-tests/nsec-wraparound/command @@ -1,3 +1,3 @@ #!/bin/sh -cleandig zzz.example.com A dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig zzz.example.com A dnssec diff --git a/regression-tests/nsec-wraparound/expected_result b/regression-tests/nsec-wraparound/expected_result index d99b62a399..3f6ac8b9f7 100644 --- a/regression-tests/nsec-wraparound/expected_result +++ b/regression-tests/nsec-wraparound/expected_result @@ -1,2 +1,9 @@ -1 example.com. IN NSEC 120 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY -1 www.example.com. IN NSEC 120 example.com. CNAME RRSIG NSEC +1 example.com. IN NSEC 86400 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY +1 example.com. IN RRSIG 86400 NSEC 8 2 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 www.example.com. IN NSEC 86400 example.com. CNAME RRSIG NSEC +1 www.example.com. IN RRSIG 86400 NSEC 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='zzz.example.com.', qtype=A diff --git a/regression-tests/nsec-wraparound/expected_result.nsec3 b/regression-tests/nsec-wraparound/expected_result.nsec3 index b35b714944..a20b5458d2 100644 --- a/regression-tests/nsec-wraparound/expected_result.nsec3 +++ b/regression-tests/nsec-wraparound/expected_result.nsec3 @@ -1,3 +1,11 @@ -1 9f8hti7cc7oqnqjv84klnp89glqrss3r.example.com. IN NSEC3 120 1 1 1 abcd 9FDAOFPLLN0FQFU9DP274GOU59QFHSLD A RRSIG -1 gnk5kv3h2h1h8ge405j6093608ukp3i5.example.com. IN NSEC3 120 1 1 1 abcd GNO4LESKG6U7HKEJ9UL71SF1HD7F1P96 A RRSIG -1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 9f8hti7cc7oqnqjv84klnp89glqrss3r.example.com. IN NSEC3 86400 1 1 1 abcd 9FDAOFPLLN0FQFU9DP274GOU59QFHSLD A RRSIG +1 9f8hti7cc7oqnqjv84klnp89glqrss3r.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 gnk5kv3h2h1h8ge405j6093608ukp3i5.example.com. IN NSEC3 86400 1 1 1 abcd GNO4LESKG6U7HKEJ9UL71SF1HD7F1P96 A RRSIG +1 gnk5kv3h2h1h8ge405j6093608ukp3i5.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='zzz.example.com.', qtype=A diff --git a/regression-tests/nsec-wrong-type-at-apex/command b/regression-tests/nsec-wrong-type-at-apex/command index 42569b5279..4806fc9352 100755 --- a/regression-tests/nsec-wrong-type-at-apex/command +++ b/regression-tests/nsec-wrong-type-at-apex/command @@ -1,3 +1,3 @@ #!/bin/sh -cleandig example.com TXT dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig example.com TXT dnssec diff --git a/regression-tests/nsec-wrong-type-at-apex/expected_result b/regression-tests/nsec-wrong-type-at-apex/expected_result index 48441ba51f..a4818c38c0 100644 --- a/regression-tests/nsec-wrong-type-at-apex/expected_result +++ b/regression-tests/nsec-wrong-type-at-apex/expected_result @@ -1 +1,7 @@ -1 example.com. IN NSEC 120 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY +1 example.com. IN NSEC 86400 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY +1 example.com. IN RRSIG 86400 NSEC 8 2 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='example.com.', qtype=TXT diff --git a/regression-tests/nsec-wrong-type-at-apex/expected_result.narrow b/regression-tests/nsec-wrong-type-at-apex/expected_result.narrow index 30d271ec5a..24164544db 100644 --- a/regression-tests/nsec-wrong-type-at-apex/expected_result.narrow +++ b/regression-tests/nsec-wrong-type-at-apex/expected_result.narrow @@ -1 +1,7 @@ -1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='example.com.', qtype=TXT diff --git a/regression-tests/nsec-wrong-type-at-apex/expected_result.nsec3 b/regression-tests/nsec-wrong-type-at-apex/expected_result.nsec3 index ea63946bb8..c85202e45d 100644 --- a/regression-tests/nsec-wrong-type-at-apex/expected_result.nsec3 +++ b/regression-tests/nsec-wrong-type-at-apex/expected_result.nsec3 @@ -1 +1,7 @@ -1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='example.com.', qtype=TXT diff --git a/regression-tests/nsec-wrong-type/command b/regression-tests/nsec-wrong-type/command index 12b0e1989e..1a1624a8c9 100755 --- a/regression-tests/nsec-wrong-type/command +++ b/regression-tests/nsec-wrong-type/command @@ -1,3 +1,3 @@ #!/bin/sh -cleandig outpost.example.com TXT dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig outpost.example.com TXT dnssec diff --git a/regression-tests/nsec-wrong-type/expected_result b/regression-tests/nsec-wrong-type/expected_result index 2580d61b43..16f8574511 100644 --- a/regression-tests/nsec-wrong-type/expected_result +++ b/regression-tests/nsec-wrong-type/expected_result @@ -1 +1,7 @@ -1 outpost.example.com. IN NSEC 120 semi-external.example.com. A RRSIG NSEC +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 outpost.example.com. IN NSEC 86400 semi-external.example.com. A RRSIG NSEC +1 outpost.example.com. IN RRSIG 86400 NSEC 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='outpost.example.com.', qtype=TXT diff --git a/regression-tests/nsec-wrong-type/expected_result.narrow b/regression-tests/nsec-wrong-type/expected_result.narrow index 168b425971..3c8df4eb83 100644 --- a/regression-tests/nsec-wrong-type/expected_result.narrow +++ b/regression-tests/nsec-wrong-type/expected_result.narrow @@ -1 +1,7 @@ -1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN NSEC3 120 1 1 1 abcd 5UVGFM2VJCJE09SVS7LFB22I1UUQJF99 A RRSIG +1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN NSEC3 86400 1 1 1 abcd 5UVGFM2VJCJE09SVS7LFB22I1UUQJF99 A RRSIG +1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='outpost.example.com.', qtype=TXT diff --git a/regression-tests/nsec-wrong-type/expected_result.nsec3 b/regression-tests/nsec-wrong-type/expected_result.nsec3 index 729d87c2fa..8d051e85fb 100644 --- a/regression-tests/nsec-wrong-type/expected_result.nsec3 +++ b/regression-tests/nsec-wrong-type/expected_result.nsec3 @@ -1 +1,7 @@ -1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN NSEC3 120 1 1 1 abcd 5V0S7HPRC5IAFH3C3RO0HHNH543D3UIU A RRSIG +1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN NSEC3 86400 1 1 1 abcd 5V0S7HPRC5IAFH3C3RO0HHNH543D3UIU A RRSIG +1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='outpost.example.com.', qtype=TXT diff --git a/regression-tests/nxdomain-below-nonempty-terminal/command b/regression-tests/nxdomain-below-nonempty-terminal/command index 3ab6314fdf..71bd07d818 100755 --- a/regression-tests/nxdomain-below-nonempty-terminal/command +++ b/regression-tests/nxdomain-below-nonempty-terminal/command @@ -1,2 +1,2 @@ #!/bin/sh -cleandig nx1.nx2.outpost.example.com A dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig nx1.nx2.outpost.example.com A dnssec diff --git a/regression-tests/nxdomain-below-nonempty-terminal/expected_result b/regression-tests/nxdomain-below-nonempty-terminal/expected_result index b9a61fa428..f25ff2abb6 100644 --- a/regression-tests/nxdomain-below-nonempty-terminal/expected_result +++ b/regression-tests/nxdomain-below-nonempty-terminal/expected_result @@ -1,2 +1,9 @@ -1 example.com. IN NSEC 120 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY -1 outpost.example.com. IN NSEC 120 semi-external.example.com. A RRSIG NSEC +1 example.com. IN NSEC 86400 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY +1 example.com. IN RRSIG 86400 NSEC 8 2 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 outpost.example.com. IN NSEC 86400 semi-external.example.com. A RRSIG NSEC +1 outpost.example.com. IN RRSIG 86400 NSEC 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='nx1.nx2.outpost.example.com.', qtype=A diff --git a/regression-tests/nxdomain-below-nonempty-terminal/expected_result.narrow b/regression-tests/nxdomain-below-nonempty-terminal/expected_result.narrow index c043e7f9ac..e48b9b515b 100644 --- a/regression-tests/nxdomain-below-nonempty-terminal/expected_result.narrow +++ b/regression-tests/nxdomain-below-nonempty-terminal/expected_result.narrow @@ -1,3 +1,11 @@ -1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN NSEC3 120 1 1 1 abcd 5UVGFM2VJCJE09SVS7LFB22I1UUQJF99 A RRSIG +1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN NSEC3 86400 1 1 1 abcd 5UVGFM2VJCJE09SVS7LFB22I1UUQJF99 A RRSIG +1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 1 sdgbafmjek5v4t8c89q9u0n03qmcslor.example.com. IN NSEC3 86400 1 1 1 abcd SDGBAFMJEK5V4T8C89Q9U0N03QMCSLOT RRSIG +1 sdgbafmjek5v4t8c89q9u0n03qmcslor.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... 1 tsdp8hajlfgr90cv4ib634g1m25nc5up.example.com. IN NSEC3 86400 1 1 1 abcd TSDP8HAJLFGR90CV4IB634G1M25NC5UR RRSIG +1 tsdp8hajlfgr90cv4ib634g1m25nc5up.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='nx1.nx2.outpost.example.com.', qtype=A diff --git a/regression-tests/nxdomain-below-nonempty-terminal/expected_result.nsec3 b/regression-tests/nxdomain-below-nonempty-terminal/expected_result.nsec3 index 560cf172ea..9d7140b23e 100644 --- a/regression-tests/nxdomain-below-nonempty-terminal/expected_result.nsec3 +++ b/regression-tests/nxdomain-below-nonempty-terminal/expected_result.nsec3 @@ -1,3 +1,11 @@ -1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN NSEC3 120 1 1 1 abcd 5V0S7HPRC5IAFH3C3RO0HHNH543D3UIU A RRSIG -1 sdeu4ba3b451gf8ijikm2tphu3bugl4g.example.com. IN NSEC3 120 1 1 1 abcd SDH8FVJ6LQLSVCQCO8QP82I6JTR574H2 A RRSIG -1 tsbl3ev9tces1kjgto3qtn36ltlu0te1.example.com. IN NSEC3 120 1 1 1 abcd TSIKPRKTT53V9ILUK08SMR9KADQ44TR1 A RRSIG +1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN NSEC3 86400 1 1 1 abcd 5V0S7HPRC5IAFH3C3RO0HHNH543D3UIU A RRSIG +1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 sdeu4ba3b451gf8ijikm2tphu3bugl4g.example.com. IN NSEC3 86400 1 1 1 abcd SDH8FVJ6LQLSVCQCO8QP82I6JTR574H2 A RRSIG +1 sdeu4ba3b451gf8ijikm2tphu3bugl4g.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 tsbl3ev9tces1kjgto3qtn36ltlu0te1.example.com. IN NSEC3 86400 1 1 1 abcd TSIKPRKTT53V9ILUK08SMR9KADQ44TR1 A RRSIG +1 tsbl3ev9tces1kjgto3qtn36ltlu0te1.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='nx1.nx2.outpost.example.com.', qtype=A diff --git a/regression-tests/nxdomain-for-unknown-record/expected_result b/regression-tests/nxdomain-for-unknown-record/expected_result index 3862067496..d5b9e06f2b 100644 --- a/regression-tests/nxdomain-for-unknown-record/expected_result +++ b/regression-tests/nxdomain-for-unknown-record/expected_result @@ -1,3 +1,3 @@ -1 example.com. IN SOA 120 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 Reply to question for qname='no-such-host.example.com.', qtype=A diff --git a/regression-tests/second-level-nxdomain/command b/regression-tests/second-level-nxdomain/command index 11949f812a..871795e36c 100755 --- a/regression-tests/second-level-nxdomain/command +++ b/regression-tests/second-level-nxdomain/command @@ -1,2 +1,2 @@ #!/bin/sh -cleandig nx.outpost.example.com A dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig nx.outpost.example.com A dnssec diff --git a/regression-tests/second-level-nxdomain/expected_result b/regression-tests/second-level-nxdomain/expected_result index b9a61fa428..711fd146bd 100644 --- a/regression-tests/second-level-nxdomain/expected_result +++ b/regression-tests/second-level-nxdomain/expected_result @@ -1,2 +1,9 @@ -1 example.com. IN NSEC 120 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY -1 outpost.example.com. IN NSEC 120 semi-external.example.com. A RRSIG NSEC +1 example.com. IN NSEC 86400 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY +1 example.com. IN RRSIG 86400 NSEC 8 2 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 outpost.example.com. IN NSEC 86400 semi-external.example.com. A RRSIG NSEC +1 outpost.example.com. IN RRSIG 86400 NSEC 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='nx.outpost.example.com.', qtype=A diff --git a/regression-tests/second-level-nxdomain/expected_result.narrow b/regression-tests/second-level-nxdomain/expected_result.narrow index 20aee9db83..286acc6216 100644 --- a/regression-tests/second-level-nxdomain/expected_result.narrow +++ b/regression-tests/second-level-nxdomain/expected_result.narrow @@ -1,3 +1,11 @@ -1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN NSEC3 120 1 1 1 abcd 5UVGFM2VJCJE09SVS7LFB22I1UUQJF99 A RRSIG +1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN NSEC3 86400 1 1 1 abcd 5UVGFM2VJCJE09SVS7LFB22I1UUQJF99 A RRSIG +1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 1 k6ta8mhi455hk3jskn0b2st81j6fa1l0.example.com. IN NSEC3 86400 1 1 1 abcd K6TA8MHI455HK3JSKN0B2ST81J6FA1L2 RRSIG +1 k6ta8mhi455hk3jskn0b2st81j6fa1l0.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... 1 tsdp8hajlfgr90cv4ib634g1m25nc5up.example.com. IN NSEC3 86400 1 1 1 abcd TSDP8HAJLFGR90CV4IB634G1M25NC5UR RRSIG +1 tsdp8hajlfgr90cv4ib634g1m25nc5up.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='nx.outpost.example.com.', qtype=A diff --git a/regression-tests/second-level-nxdomain/expected_result.nsec3 b/regression-tests/second-level-nxdomain/expected_result.nsec3 index 1f72d469db..d8b6253b3d 100644 --- a/regression-tests/second-level-nxdomain/expected_result.nsec3 +++ b/regression-tests/second-level-nxdomain/expected_result.nsec3 @@ -1,3 +1,11 @@ -1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN NSEC3 120 1 1 1 abcd 5V0S7HPRC5IAFH3C3RO0HHNH543D3UIU A RRSIG -1 k6r6482mfo4upme9n407c2grb6opp1ip.example.com. IN NSEC3 120 1 1 1 abcd K6TDMVV7BP54FEFUIVR0BVABIBUN0AV9 A RRSIG -1 tsbl3ev9tces1kjgto3qtn36ltlu0te1.example.com. IN NSEC3 120 1 1 1 abcd TSIKPRKTT53V9ILUK08SMR9KADQ44TR1 A RRSIG +1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN NSEC3 86400 1 1 1 abcd 5V0S7HPRC5IAFH3C3RO0HHNH543D3UIU A RRSIG +1 5uvgfm2vjcje09svs7lfb22i1uuqjf98.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 k6r6482mfo4upme9n407c2grb6opp1ip.example.com. IN NSEC3 86400 1 1 1 abcd K6TDMVV7BP54FEFUIVR0BVABIBUN0AV9 A RRSIG +1 k6r6482mfo4upme9n407c2grb6opp1ip.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 tsbl3ev9tces1kjgto3qtn36ltlu0te1.example.com. IN NSEC3 86400 1 1 1 abcd TSIKPRKTT53V9ILUK08SMR9KADQ44TR1 A RRSIG +1 tsbl3ev9tces1kjgto3qtn36ltlu0te1.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='nx.outpost.example.com.', qtype=A diff --git a/regression-tests/start-test-stop b/regression-tests/start-test-stop index f33ae95ba9..30bca3844f 100755 --- a/regression-tests/start-test-stop +++ b/regression-tests/start-test-stop @@ -1,4 +1,4 @@ -#!/bin/sh -ex +#!/bin/bash -ex tosql () { @@ -28,17 +28,31 @@ gsqlite3-nodnssec gsqlite3 gsqlite3-nsec3 opendbx-sqlite3 tinydns +add -presigned to any gmysql test (except narrow) to test +presigned operation + add 'wait' (literally) after the context to not kill pdns_server immediately after testing __EOF__ exit 1 fi +rm -f pdns*.pid + +presigned=no + +if [ ${context: -10} = "-presigned" ] +then + presigned=yes + port=$((port-100)) + context=${context%-presigned} +fi + case $context in bind) $RUNWRAPPER ../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./ \ --no-shuffle --launch=bind --bind-config=./named.conf \ - --fancy-records --query-logging --send-root-referral --loglevel=9 \ + --fancy-records --send-root-referral \ --cache-ttl=0 --no-config & skipreasons=nodnssec ;; @@ -57,7 +71,7 @@ case $context in $RUNWRAPPER ../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./ \ --no-shuffle --launch=bind --bind-config=./named.conf \ --bind-dnssec-db=./dnssec.sqlite3 \ - --query-logging --send-root-referral --loglevel=9 \ + --send-root-referral \ --cache-ttl=0 --no-config & ;; gmysql-nodnssec) @@ -77,7 +91,7 @@ case $context in $RUNWRAPPER ../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./ \ --no-shuffle --launch=gmysql \ - --fancy-records --query-logging --send-root-referral --loglevel=9 \ + --fancy-records --send-root-referral \ --cache-ttl=0 --no-config \ --gmysql-dbname="$GMYSQLDB" \ --gmysql-user="$GMYSQLUSER" \ @@ -129,7 +143,7 @@ __EOF__ $RUNWRAPPER ../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./ \ --no-shuffle --launch=gmysql --gmysql-dnssec \ - --fancy-records --query-logging --send-root-referral --loglevel=9 \ + --fancy-records --send-root-referral \ --cache-ttl=0 --no-config \ --gmysql-dbname="$GMYSQLDB" \ --gmysql-user="$GMYSQLUSER" \ @@ -177,7 +191,7 @@ __EOF__ $RUNWRAPPER ../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./ \ --no-shuffle --launch=gpgsql --gpgsql-dnssec \ - --fancy-records --query-logging --send-root-referral --loglevel=9 \ + --fancy-records --send-root-referral \ --cache-ttl=0 --no-config \ --gpgsql-dbname="$GPGSQLDB" \ --gpgsql-user="$GPGSQLUSER" & @@ -209,7 +223,7 @@ gpgsql-user=$GPGSQLUSER __EOF__ $RUNWRAPPER ../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./ \ --no-shuffle --launch=gpgsql \ - --fancy-records --query-logging --send-root-referral --loglevel=9 \ + --fancy-records --send-root-referral \ --cache-ttl=0 --no-config \ --gpgsql-dbname="$GPGSQLDB" \ --gpgsql-user="$GPGSQLUSER" & @@ -225,7 +239,7 @@ __EOF__ $RUNWRAPPER ../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./ \ --no-shuffle --launch=gsqlite3 \ - --fancy-records --query-logging --send-root-referral --loglevel=9 \ + --fancy-records --send-root-referral \ --cache-ttl=0 --no-config \ --gsqlite3-database=pdns.sqlite3 & skipreasons=nodnssec @@ -241,7 +255,7 @@ __EOF__ $RUNWRAPPER ../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./ \ --no-shuffle --launch=opendbx \ - --fancy-records --query-logging --send-root-referral --loglevel=9 \ + --fancy-records --send-root-referral \ --cache-ttl=0 --no-config \ --opendbx-backend=sqlite3 --opendbx-host-read=./ --opendbx-host-write=./ \ --opendbx-database=pdns-opendbx.sqlite3 & @@ -272,7 +286,7 @@ __EOF__ $RUNWRAPPER ../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./ \ --no-shuffle --launch=gsqlite3 --gsqlite3-dnssec \ - --fancy-records --query-logging --send-root-referral --loglevel=9 \ + --fancy-records --send-root-referral \ --cache-ttl=0 --no-config \ --gsqlite3-database=pdns.sqlite3 & if [ $context = gsqlite3-nsec3 ] @@ -285,7 +299,7 @@ __EOF__ tinydns) $RUNWRAPPER ../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./ \ --no-shuffle --launch=tinydns \ - --query-logging --loglevel=9 --cache-ttl=0 --no-config \ + --cache-ttl=0 --no-config \ --send-root-referral \ --tinydns-dbfile=../modules/tinydnsbackend/data.cdb & skipreasons=nodnssec @@ -303,6 +317,52 @@ export context export extracontexts export skipreasons +if [ $presigned = yes ] && [ ${context:0:6} = gmysql ] +then + context=${context}-presigned + [ -z "$GMYSQL2DB" ] && GMYSQL2DB=pdnstest2 + [ -z "$GMYSQL2USER" ] && GMYSQL2USER=root + [ -z "$GMYSQL2HOST" ] && GMYSQL2HOST=localhost + [ -z "$GMYSQL2PASSWD" ] && GMYSQL2PASSWD='' + + mysqladmin --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" --force drop "$GMYSQL2DB" \ + || echo ignoring mysqladmin drop failure + mysqladmin --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" create "$GMYSQL2DB" + mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" \ + "$GMYSQL2DB" < ../pdns/no-dnssec.schema.mysql.sql + mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" \ + "$GMYSQL2DB" < ../pdns/dnssec.schema.mysql.sql + + for zone in $(grep zone named.conf | cut -f2 -d\") + do + mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" \ + "$GMYSQL2DB" \ + -e "INSERT INTO domains (name, type, master) VALUES('$zone','SLAVE','127.0.0.1:$port')" + done + + port=$((port+100)) + + $RUNWRAPPER ../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./ \ + --no-shuffle --launch=gmysql --gmysql-dnssec \ + --fancy-records --send-root-referral \ + --cache-ttl=0 --query-cache-ttl=0 --no-config --slave --retrieval-threads=1 \ + --gmysql-dbname="$GMYSQL2DB" \ + --gmysql-user="$GMYSQL2USER" \ + --gmysql-host="$GMYSQL2HOST" \ + --gmysql-password="$GMYSQL2PASSWD" \ + --config-name=gmysql2 |& egrep -v "update records set ordername|insert into records" & + echo 'waiting for zones to be slaved' + while sleep 10 + do + todo=$(mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQl2HOST" \ + "$GMYSQL2DB" -ss -e 'SELECT COUNT(id) FROM domains WHERE last_check IS NULL') + if [ $todo = 0 ] + then + break + fi + done +fi + ## TODO: give pdns a few seconds to startup or fail, then check if it did not fail ## TODO: give sdig a timeout nameserver=127.0.0.1 ./runtests @@ -313,4 +373,5 @@ then echo tests done! push enter to terminate instance read l fi -kill $(cat pdns.pid) +kill $(cat pdns*.pid) +rm pdns*.pid \ No newline at end of file diff --git a/regression-tests/test.com b/regression-tests/test.com index f93a86c275..482d2277de 100644 --- a/regression-tests/test.com +++ b/regression-tests/test.com @@ -23,8 +23,8 @@ _ldap._tcp.dc IN SRV 0 100 389 server1 _double._tcp.dc IN SRV 0 100 389 server1 _double._tcp.dc IN SRV 1 100 389 server1 blah IN NS blah -blah IN A 9.9.9.9 +blah IN A 192.168.6.1 ;images IN URL "http://www.ds9a.nl" ;bert@auto.test.com. IN MBOXFW "bert@ds9a.nl" very-long-txt IN TXT "A very long TXT record! boy you won't believe how long. A very long TXT record! boy you won't believe how long. A very long TXT record! boy you won't believe how long. A very long TXT record! boy you won't believe how long. A very long TXT record! boy you won't believe how long!" -within-server IN CNAME outpost.example.com. \ No newline at end of file +within-server IN CNAME outpost.example.com. diff --git a/regression-tests/two-level-nxdomain/command b/regression-tests/two-level-nxdomain/command index a848cc1e3a..faf2f6a664 100755 --- a/regression-tests/two-level-nxdomain/command +++ b/regression-tests/two-level-nxdomain/command @@ -1,2 +1,2 @@ #!/bin/sh -cleandig nx1.nx2.example.com A dnssec | egrep 'IN[[:space:]]+NSEC' +cleandig nx1.nx2.example.com A dnssec diff --git a/regression-tests/two-level-nxdomain/expected_result b/regression-tests/two-level-nxdomain/expected_result index 54d407347f..74e4fd04d1 100644 --- a/regression-tests/two-level-nxdomain/expected_result +++ b/regression-tests/two-level-nxdomain/expected_result @@ -1,2 +1,9 @@ -1 example.com. IN NSEC 120 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY -1 ns2.example.com. IN NSEC 120 outpost.example.com. A RRSIG NSEC +1 example.com. IN NSEC 86400 escapedtext.example.com. NS SOA MX RRSIG NSEC DNSKEY +1 example.com. IN RRSIG 86400 NSEC 8 2 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 ns2.example.com. IN NSEC 86400 outpost.example.com. A RRSIG NSEC +1 ns2.example.com. IN RRSIG 86400 NSEC 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='nx1.nx2.example.com.', qtype=A diff --git a/regression-tests/two-level-nxdomain/expected_result.narrow b/regression-tests/two-level-nxdomain/expected_result.narrow index 311f92e100..46383544ff 100644 --- a/regression-tests/two-level-nxdomain/expected_result.narrow +++ b/regression-tests/two-level-nxdomain/expected_result.narrow @@ -1,3 +1,11 @@ 1 9fag9508oqu3m22qac0u5eqgg45v8cf0.example.com. IN NSEC3 86400 1 1 1 abcd 9FAG9508OQU3M22QAC0U5EQGG45V8CF2 RRSIG +1 9fag9508oqu3m22qac0u5eqgg45v8cf0.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... 1 ectnliqstqsjnnrpuhjj5h0j3c3odkk3.example.com. IN NSEC3 86400 1 1 1 abcd ECTNLIQSTQSJNNRPUHJJ5H0J3C3ODKK5 RRSIG -1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 ectnliqstqsjnnrpuhjj5h0j3c3odkk3.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTNQ6OCN2VKUIV3NJU14OQTAEN2MT5SL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='nx1.nx2.example.com.', qtype=A diff --git a/regression-tests/two-level-nxdomain/expected_result.nsec3 b/regression-tests/two-level-nxdomain/expected_result.nsec3 index 6101ba3802..f1d66fdb96 100644 --- a/regression-tests/two-level-nxdomain/expected_result.nsec3 +++ b/regression-tests/two-level-nxdomain/expected_result.nsec3 @@ -1,3 +1,11 @@ -1 9f8hti7cc7oqnqjv84klnp89glqrss3r.example.com. IN NSEC3 120 1 1 1 abcd 9FDAOFPLLN0FQFU9DP274GOU59QFHSLD A RRSIG -1 ecskkg9s6f7lap5qjrnns1bf8pjunshj.example.com. IN NSEC3 120 1 1 1 abcd ECTPI4N8UNDE9GNVKHG28NJR512JBD4O A RRSIG -1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 120 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 9f8hti7cc7oqnqjv84klnp89glqrss3r.example.com. IN NSEC3 86400 1 1 1 abcd 9FDAOFPLLN0FQFU9DP274GOU59QFHSLD A RRSIG +1 9f8hti7cc7oqnqjv84klnp89glqrss3r.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 ecskkg9s6f7lap5qjrnns1bf8pjunshj.example.com. IN NSEC3 86400 1 1 1 abcd ECTPI4N8UNDE9GNVKHG28NJR512JBD4O A RRSIG +1 ecskkg9s6f7lap5qjrnns1bf8pjunshj.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN RRSIG 86400 SOA 8 2 100000 [expiry] [inception] [keytag] example.com. ... +1 example.com. IN SOA 86400 ns1.example.com. ahu.example.com. 2000081501 28800 7200 604800 86400 +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN NSEC3 86400 1 1 1 abcd VTP9NUQBEH436S7J0K8TI2A32MMKCUUL NS SOA MX RRSIG DNSKEY NSEC3PARAM +1 vtnq6ocn2vkuiv3nju14oqtaen2mt5sk.example.com. IN RRSIG 86400 NSEC3 8 3 86400 [expiry] [inception] [keytag] example.com. ... +2 . IN OPT 32768 +Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='nx1.nx2.example.com.', qtype=A -- 2.47.3