mirror of
https://github.com/miekg/dns.git
synced 2025-12-18 18:21:29 +01:00
Fix the key parsing
This commit is contained in:
parent
35a1e137e2
commit
c6deba77e0
@ -106,7 +106,7 @@ func TestParse(t *testing.T) {
|
|||||||
"miek.nl. IN A 127.0.0.1": "miek.nl.\t3600\tIN\tA\t127.0.0.1",
|
"miek.nl. IN A 127.0.0.1": "miek.nl.\t3600\tIN\tA\t127.0.0.1",
|
||||||
"miek.nl. IN DNSKEY 256 3 5 AwEAAb+8lGNCxJgLS8rYVer6EnHVuIkQDghdjdtewDzU3G5R7PbMbKVRvH2Ma7pQyYceoaqWZQirSj72euPWfPxQnMy9ucCylA+FuH9cSjIcPf4PqJfdupHk9X6EBYjxrCLY4p1/yBwgyBIRJtZtAqM3ceAH2WovEJD6rTtOuHo5AluJ":
|
"miek.nl. IN DNSKEY 256 3 5 AwEAAb+8lGNCxJgLS8rYVer6EnHVuIkQDghdjdtewDzU3G5R7PbMbKVRvH2Ma7pQyYceoaqWZQirSj72euPWfPxQnMy9ucCylA+FuH9cSjIcPf4PqJfdupHk9X6EBYjxrCLY4p1/yBwgyBIRJtZtAqM3ceAH2WovEJD6rTtOuHo5AluJ":
|
||||||
"miek.nl.\t3600\tIN\tDNSKEY\t256 3 5 AwEAAb+8lGNCxJgLS8rYVer6EnHVuIkQDghdjdtewDzU3G5R7PbMbKVRvH2Ma7pQyYceoaqWZQirSj72euPWfPxQnMy9ucCylA+FuH9cSjIcPf4PqJfdupHk9X6EBYjxrCLY4p1/yBwgyBIRJtZtAqM3ceAH2WovEJD6rTtOuHo5AluJ",
|
"miek.nl.\t3600\tIN\tDNSKEY\t256 3 5 AwEAAb+8lGNCxJgLS8rYVer6EnHVuIkQDghdjdtewDzU3G5R7PbMbKVRvH2Ma7pQyYceoaqWZQirSj72euPWfPxQnMy9ucCylA+FuH9cSjIcPf4PqJfdupHk9X6EBYjxrCLY4p1/yBwgyBIRJtZtAqM3ceAH2WovEJD6rTtOuHo5AluJ",
|
||||||
// "nlnetlabs.nl. 3175 IN DNSKEY 256 3 8 AwEAAdR7XR95OaAN9Rz7TbtPalQ9guQk7zfxTHYNKhsiwTZA9z+F16nD0VeBlk7dNik3ETpT2GLAwr9sntG898JwurCDe353wHPvjZtMCdiTVp3cRCrjuCEvoFpmZNN82H0gaH/4v8mkv/QBDAkDSncYjz/FqHKAeYy3cMcjY6RyVweh": "nlnetlabs.nl.\t3175\tIN\tDNSKEY\t256 3 8 AwEAAdR7XR95OaAN9Rz7TbtPalQ9guQk7zfxTHYNKhsiwTZA9z+F16nD0VeBlk7dNik3ETpT2GLAwr9sntG898JwurCDe353wHPvjZtMCdiTVp3cRCrjuCEvoFpmZNN82H0gaH/4v8mkv/QBDAkDSncYjz/FqHKAeYy3cMcjY6RyVweh",
|
"nlnetlabs.nl. 3175 IN DNSKEY 256 3 8 AwEAAdR7XR95OaAN9Rz7TbtPalQ9guQk7zfxTHYNKhsiwTZA9z+F16nD0VeBlk7dNik3ETpT2GLAwr9sntG898JwurCDe353wHPvjZtMCdiTVp3cRCrjuCEvoFpmZNN82H0gaH/4v8mkv/QBDAkDSncYjz/FqHKAeYy3cMcjY6RyVweh": "nlnetlabs.nl.\t3175\tIN\tDNSKEY\t256 3 8 AwEAAdR7XR95OaAN9Rz7TbtPalQ9guQk7zfxTHYNKhsiwTZA9z+F16nD0VeBlk7dNik3ETpT2GLAwr9sntG898JwurCDe353wHPvjZtMCdiTVp3cRCrjuCEvoFpmZNN82H0gaH/4v8mkv/QBDAkDSncYjz/FqHKAeYy3cMcjY6RyVweh",
|
||||||
"dnsex.nl. 86400 IN SOA elektron.atoom.net. miekg.atoom.net. 1299256910 14400 3600 604800 86400":
|
"dnsex.nl. 86400 IN SOA elektron.atoom.net. miekg.atoom.net. 1299256910 14400 3600 604800 86400":
|
||||||
"dnsex.nl.\t86400\tIN\tSOA\telektron.atoom.net. miekg.atoom.net. 1299256910 14400 3600 604800 86400",
|
"dnsex.nl.\t86400\tIN\tSOA\telektron.atoom.net. miekg.atoom.net. 1299256910 14400 3600 604800 86400",
|
||||||
"dnsex.nl. 86400 IN RRSIG SOA 8 2 86400 20110403154150 20110304154150 23334 dnsex.nl. QN6hwJQLEBqRVKmO2LgkuRSx9bkKIZxXlTVtHg5SaiN+8RCTckGtUXkQ vmZiBt3RdIWAjaabQYpEZHgvyjfy4Wwu/9RPDYnLt/qoyr4QKAdujchc m+fMDSbbcC7AN08i5D/dUWfNOHXjRJLY7t7AYB9DBt32LazIb0EU9QiW 5Cg=":
|
"dnsex.nl. 86400 IN RRSIG SOA 8 2 86400 20110403154150 20110304154150 23334 dnsex.nl. QN6hwJQLEBqRVKmO2LgkuRSx9bkKIZxXlTVtHg5SaiN+8RCTckGtUXkQ vmZiBt3RdIWAjaabQYpEZHgvyjfy4Wwu/9RPDYnLt/qoyr4QKAdujchc m+fMDSbbcC7AN08i5D/dUWfNOHXjRJLY7t7AYB9DBt32LazIb0EU9QiW 5Cg=":
|
||||||
|
|||||||
50
zscan_rr.go
50
zscan_rr.go
@ -13,27 +13,6 @@ import (
|
|||||||
// or immediately a _NEWLINE. If this is not the case we flag
|
// or immediately a _NEWLINE. If this is not the case we flag
|
||||||
// an error: garbage after rdata.
|
// an error: garbage after rdata.
|
||||||
|
|
||||||
func slurpRemainder(c chan Lex) error {
|
|
||||||
l := <-c
|
|
||||||
if DEBUG { fmt.Printf("%\v", l) }
|
|
||||||
switch l.value {
|
|
||||||
case _BLANK:
|
|
||||||
l = <-c
|
|
||||||
if DEBUG { fmt.Printf("%\v", l) }
|
|
||||||
if l.value != _NEWLINE && l.value != _EOF {
|
|
||||||
return &ParseError{"garbage after rdata", l}
|
|
||||||
}
|
|
||||||
// Ok
|
|
||||||
case _NEWLINE:
|
|
||||||
// Ok
|
|
||||||
case _EOF:
|
|
||||||
// Ok
|
|
||||||
default:
|
|
||||||
return &ParseError{"garbage after rdata", l}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func setRR(h RR_Header, c chan Lex) (RR, error) {
|
func setRR(h RR_Header, c chan Lex) (RR, error) {
|
||||||
var (
|
var (
|
||||||
r RR
|
r RR
|
||||||
@ -90,7 +69,9 @@ func setRR(h RR_Header, c chan Lex) (RR, error) {
|
|||||||
}
|
}
|
||||||
// These types have a variable ending either chunks of txt or chunks/base64 or hex.
|
// These types have a variable ending either chunks of txt or chunks/base64 or hex.
|
||||||
// They need to search for the end of the RR themselves, hence they look for the ending
|
// They need to search for the end of the RR themselves, hence they look for the ending
|
||||||
// newline. Thus there is no need to slurp the remainder, because there is none
|
// newline. Thus there is no need to slurp the remainder, because there is none.
|
||||||
|
case TypeDNSKEY:
|
||||||
|
r, e = setDNSKEY(h, c)
|
||||||
case TypeRRSIG:
|
case TypeRRSIG:
|
||||||
r, e = setRRSIG(h, c)
|
r, e = setRRSIG(h, c)
|
||||||
case TypeNSEC:
|
case TypeNSEC:
|
||||||
@ -106,6 +87,31 @@ func setRR(h RR_Header, c chan Lex) (RR, error) {
|
|||||||
return r, e
|
return r, e
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func slurpRemainder(c chan Lex) error {
|
||||||
|
l := <-c
|
||||||
|
if DEBUG {
|
||||||
|
fmt.Printf("%\v", l)
|
||||||
|
}
|
||||||
|
switch l.value {
|
||||||
|
case _BLANK:
|
||||||
|
l = <-c
|
||||||
|
if DEBUG {
|
||||||
|
fmt.Printf("%\v", l)
|
||||||
|
}
|
||||||
|
if l.value != _NEWLINE && l.value != _EOF {
|
||||||
|
return &ParseError{"garbage after rdata", l}
|
||||||
|
}
|
||||||
|
// Ok
|
||||||
|
case _NEWLINE:
|
||||||
|
// Ok
|
||||||
|
case _EOF:
|
||||||
|
// Ok
|
||||||
|
default:
|
||||||
|
return &ParseError{"garbage after rdata", l}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func setA(h RR_Header, c chan Lex) (RR, error) {
|
func setA(h RR_Header, c chan Lex) (RR, error) {
|
||||||
rr := new(RR_A)
|
rr := new(RR_A)
|
||||||
rr.Hdr = h
|
rr.Hdr = h
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user