@@ -56,6 +56,8 @@ DNSPacket::DNSPacket()
56
56
d_wantsnsid=false ;
57
57
d_haveednssubnet = false ;
58
58
d_dnssecOk=false ;
59
+ d_ednsversion=0 ;
60
+ d_ednsrcode=0 ;
59
61
}
60
62
61
63
const string& DNSPacket::getString ()
@@ -95,6 +97,8 @@ DNSPacket::DNSPacket(const DNSPacket &orig)
95
97
d_eso = orig.d_eso ;
96
98
d_haveednssubnet = orig.d_haveednssubnet ;
97
99
d_haveednssection = orig.d_haveednssection ;
100
+ d_ednsversion = orig.d_ednsversion ;
101
+ d_ednsrcode = orig.d_ednsrcode ;
98
102
d_dnssecOk = orig.d_dnssecOk ;
99
103
d_rrs=orig.d_rrs ;
100
104
@@ -340,7 +344,7 @@ void DNSPacket::wrapup()
340
344
341
345
if (!opts.empty () || d_haveednssection || d_dnssecOk)
342
346
{
343
- pw.addOpt (s_udpTruncationThreshold, 0 , d_dnssecOk ? EDNSOpts::DNSSECOK : 0 , opts);
347
+ pw.addOpt (s_udpTruncationThreshold, d_ednsrcode , d_dnssecOk ? EDNSOpts::DNSSECOK : 0 , opts);
344
348
pw.commit ();
345
349
}
346
350
}
@@ -396,6 +400,8 @@ DNSPacket *DNSPacket::replyPacket() const
396
400
r->d_eso = d_eso;
397
401
r->d_haveednssubnet = d_haveednssubnet;
398
402
r->d_haveednssection = d_haveednssection;
403
+ r->d_ednsversion = 0 ;
404
+ r->d_ednsrcode = 0 ;
399
405
400
406
if (!d_tsigkeyname.empty ()) {
401
407
r->d_tsigkeyname = d_tsigkeyname;
549
555
// cerr<<"Have an option #"<<iter->first<<": "<<makeHexDump(iter->second)<<endl;
550
556
}
551
557
}
558
+ d_ednsversion = edo.d_version ;
559
+ d_ednsrcode = edo.d_extRCode ;
552
560
}
553
561
else {
554
562
d_maxreplylen=512 ;
0 commit comments