From 6f3c0a126ca15bec6b0db0c77e65ed4ad2354ca2 Mon Sep 17 00:00:00 2001 From: Star Brilliant Date: Fri, 13 Oct 2017 23:21:46 +0800 Subject: [PATCH] Fix EDNS Extended RCODE (#517) * Fix EDNS Extended RCODE Issue #516 * Fix EDNS Extended RCODE Issue #516 --- edns.go | 7 ++----- edns_test.go | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/edns.go b/edns.go index 718842f2..10d69f2c 100644 --- a/edns.go +++ b/edns.go @@ -106,15 +106,12 @@ func (rr *OPT) SetVersion(v uint8) { // ExtendedRcode returns the EDNS extended RCODE field (the upper 8 bits of the TTL). func (rr *OPT) ExtendedRcode() int { - return int((rr.Hdr.Ttl&0xFF000000)>>24) + 15 + return int((rr.Hdr.Ttl&0xFF000000)>>24) } // SetExtendedRcode sets the EDNS extended RCODE field. func (rr *OPT) SetExtendedRcode(v uint8) { - if v < RcodeBadVers { // Smaller than 16.. Use the 4 bits you have! - return - } - rr.Hdr.Ttl = rr.Hdr.Ttl&0x00FFFFFF | (uint32(v-15) << 24) + rr.Hdr.Ttl = rr.Hdr.Ttl&0x00FFFFFF | (uint32(v) << 24) } // UDPSize returns the UDP buffer size. diff --git a/edns_test.go b/edns_test.go index c290b0c8..f7cf1575 100644 --- a/edns_test.go +++ b/edns_test.go @@ -63,6 +63,6 @@ func TestOPTTtl(t *testing.T) { e.SetExtendedRcode(42) if e.ExtendedRcode() != 42 { - t.Errorf("set 42, expected %d, got %d", 42-15, e.ExtendedRcode()) + t.Errorf("set 42, expected %d, got %d", 42, e.ExtendedRcode()) } }