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()) } }