From 21b35db538fddded51983df2a6593d3402476076 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Mon, 10 Aug 2015 07:26:35 +0100 Subject: [PATCH] Remove the NSAP record The NSAP was not implemented correctly, see #239. Just remove it. It will still work as unknown RR. --- msg.go | 1 - parse_test.go | 5 +---- types.go | 12 ------------ zscan_rr.go | 29 ----------------------------- 4 files changed, 1 insertion(+), 46 deletions(-) diff --git a/msg.go b/msg.go index 4abb63b5..eb7c0f2f 100644 --- a/msg.go +++ b/msg.go @@ -134,7 +134,6 @@ var TypeToString = map[uint16]string{ TypeNINFO: "NINFO", TypeNIMLOC: "NIMLOC", TypeNS: "NS", - TypeNSAP: "NSAP", TypeNSAPPTR: "NSAP-PTR", TypeNSEC3: "NSEC3", TypeNSEC3PARAM: "NSEC3PARAM", diff --git a/parse_test.go b/parse_test.go index 61c4581e..36a586d2 100644 --- a/parse_test.go +++ b/parse_test.go @@ -905,11 +905,8 @@ func TestILNP(t *testing.T) { } } -func TestNsapGposEidNimloc(t *testing.T) { +func TestGposEidNimloc(t *testing.T) { dt := map[string]string{ - "foo.bar.com. IN NSAP 21 47000580ffff000000321099991111222233334444": "foo.bar.com.\t3600\tIN\tNSAP\t0x47000580ffff000000321099991111222233334444", - "foo.bar.com. IN NSAP 0x47000580ffff000000321099991111222233334444": "foo.bar.com.\t3600\tIN\tNSAP\t0x47000580ffff000000321099991111222233334444", - "host.school.de IN NSAP 17 39276f3100111100002222333344449876": "host.school.de.\t3600\tIN\tNSAP\t0x39276f3100111100002222333344449876", "444433332222111199990123000000ff. NSAP-PTR foo.bar.com.": "444433332222111199990123000000ff.\t3600\tIN\tNSAP-PTR\tfoo.bar.com.", "lillee. IN GPOS -32.6882 116.8652 10.0": "lillee.\t3600\tIN\tGPOS\t-32.6882 116.8652 10.0", "hinault. IN GPOS -22.6882 116.8652 250.0": "hinault.\t3600\tIN\tGPOS\t-22.6882 116.8652 250.0", diff --git a/types.go b/types.go index 31f7835d..98912e46 100644 --- a/types.go +++ b/types.go @@ -46,7 +46,6 @@ const ( TypeX25 uint16 = 19 TypeISDN uint16 = 20 TypeRT uint16 = 21 - TypeNSAP uint16 = 22 TypeNSAPPTR uint16 = 23 TypeSIG uint16 = 24 TypeKEY uint16 = 25 @@ -1179,16 +1178,6 @@ func (rr *RKEY) String() string { " " + rr.PublicKey } -type NSAP struct { - Hdr RR_Header - Nsap string -} - -func (rr *NSAP) Header() *RR_Header { return &rr.Hdr } -func (rr *NSAP) copy() RR { return &NSAP{*rr.Hdr.copyHeader(), rr.Nsap} } -func (rr *NSAP) String() string { return rr.Hdr.String() + "0x" + rr.Nsap } -func (rr *NSAP) len() int { return rr.Hdr.len() + 1 + len(rr.Nsap) + 1 } - type NSAPPTR struct { Hdr RR_Header Ptr string `dns:"domain-name"` @@ -1720,7 +1709,6 @@ var typeToRR = map[uint16]func() RR{ TypeNINFO: func() RR { return new(NINFO) }, TypeNIMLOC: func() RR { return new(NIMLOC) }, TypeNS: func() RR { return new(NS) }, - TypeNSAP: func() RR { return new(NSAP) }, TypeNSAPPTR: func() RR { return new(NSAPPTR) }, TypeNSEC3: func() RR { return new(NSEC3) }, TypeNSEC3PARAM: func() RR { return new(NSEC3PARAM) }, diff --git a/zscan_rr.go b/zscan_rr.go index 65b5a271..32e79586 100644 --- a/zscan_rr.go +++ b/zscan_rr.go @@ -1641,34 +1641,6 @@ func setNIMLOC(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { return rr, nil, c1 } -func setNSAP(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { - rr := new(NSAP) - rr.Hdr = h - chunks, e1, c1 := endingToTxtSlice(c, "bad NSAP Nsap", f) - if e1 != nil { - return nil, e1, c1 - } - // data would come as one string or multiple... Just to ignore possible - // variety let's merge things back together and split to actual "words" - s := strings.Fields(strings.Join(chunks, " ")) - if len(s) == 0 { - return rr, nil, c1 - } - if len(s[0]) >= 2 && (s[0][0:2] == "0x" || s[0][0:2] == "0X") { - // although RFC only suggests 0x there is no clarification that X is not allowed - rr.Nsap = strings.Join(s, "")[2:] - } else { - // since we do not know what to do with this data, and, we would not use original length - // in formatting, it's moot to check correctness of the length - _, err := strconv.Atoi(s[0]) - if err != nil { - return nil, &ParseError{f, "bad NSAP Length", lex{token: s[0]}}, "" - } - rr.Nsap = strings.Join(s[1:], "") - } - return rr, nil, c1 -} - func setGPOS(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) { rr := new(GPOS) rr.Hdr = h @@ -2267,7 +2239,6 @@ var typeToparserFunc = map[uint16]parserFunc{ TypeNID: parserFunc{setNID, false}, TypeNIMLOC: parserFunc{setNIMLOC, true}, TypeNINFO: parserFunc{setNINFO, true}, - TypeNSAP: parserFunc{setNSAP, true}, TypeNSAPPTR: parserFunc{setNSAPPTR, false}, TypeNSEC3PARAM: parserFunc{setNSEC3PARAM, false}, TypeNSEC3: parserFunc{setNSEC3, true},