More parsing tweaks
This commit is contained in:
parent
9168608abd
commit
f4329cce16
|
@ -98,16 +98,16 @@ func TestDotInName(t *testing.T) {
|
|||
// Make this a decend test case. For now, good enough
|
||||
func TestParse(t *testing.T) {
|
||||
tests := map[string]string{
|
||||
"miek.nl. 3600 IN A 127.0.0.1": "miek.nl.\t3600\tIN\tA\t127.0.0.1",
|
||||
"miek.nl. 3600 IN MX 10 elektron.atoom.net.": "miek.nl.\t3600\tIN\tMX\t10 elektron.atoom.net.",
|
||||
"miek.nl. IN 3600 A 127.0.0.1": "miek.nl.\t3600\tIN\tA\t127.0.0.1",
|
||||
"miek.nl. A 127.0.0.1": "miek.nl.\t0\tCLASS0\tA\t127.0.0.1",
|
||||
"miek.nl. IN AAAA ::1": "miek.nl.\t0\tIN\tAAAA\t::1",
|
||||
"miek.nl. IN A 127.0.0.1": "miek.nl.\t0\tIN\tA\t127.0.0.1",
|
||||
"miek.nl. IN DNSKEY 256 3 5 AwEAAb+8lGNCxJgLS8rYVer6EnHVuIkQDghdjdtewDzU3G5R7PbMbKVRvH2Ma7pQyYceoaqWZQirSj72euPWfPxQnMy9ucCylA+FuH9cSjIcPf4PqJfdupHk9X6EBYjxrCLY4p1/yBwgyBIRJtZtAqM3ceAH2WovEJD6rTtOuHo5AluJ": "miek.nl.\t0\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",
|
||||
"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. 86400 IN RRSIG SOA 8 2 86400 20110403154150 20110304154150 23334 dnsex.nl. QN6hwJQLEBqRVKmO2LgkuRSx9bkKIZxXlTVtHg5SaiN+8RCTckGtUXkQ vmZiBt3RdIWAjaabQYpEZHgvyjfy4Wwu/9RPDYnLt/qoyr4QKAdujchc m+fMDSbbcC7AN08i5D/dUWfNOHXjRJLY7t7AYB9DBt32LazIb0EU9QiW 5Cg=": "dnsex.nl.\t86400\tIN\tRRSIG\tSOA 8 2 86400 20110403154150 20110304154150 23334 dnsex.nl. QN6hwJQLEBqRVKmO2LgkuRSx9bkKIZxXlTVtHg5SaiN+8RCTckGtUXkQvmZiBt3RdIWAjaabQYpEZHgvyjfy4Wwu/9RPDYnLt/qoyr4QKAdujchcm+fMDSbbcC7AN08i5D/dUWfNOHXjRJLY7t7AYB9DBt32LazIb0EU9QiW5Cg=",
|
||||
// "miek.nl. 3600 IN A 127.0.0.1": "miek.nl.\t3600\tIN\tA\t127.0.0.1",
|
||||
"miek.nl. 3600 IN MX 10 elektron.atoom.net.\n": "miek.nl.\t3600\tIN\tMX\t10 elektron.atoom.net.",
|
||||
// "miek.nl. IN 3600 A 127.0.0.1": "miek.nl.\t3600\tIN\tA\t127.0.0.1",
|
||||
// "miek.nl. A 127.0.0.1": "miek.nl.\t0\tCLASS0\tA\t127.0.0.1",
|
||||
// "miek.nl. IN AAAA ::1": "miek.nl.\t0\tIN\tAAAA\t::1",
|
||||
// "miek.nl. IN A 127.0.0.1": "miek.nl.\t0\tIN\tA\t127.0.0.1",
|
||||
// "miek.nl. IN DNSKEY 256 3 5 AwEAAb+8lGNCxJgLS8rYVer6EnHVuIkQDghdjdtewDzU3G5R7PbMbKVRvH2Ma7pQyYceoaqWZQirSj72euPWfPxQnMy9ucCylA+FuH9cSjIcPf4PqJfdupHk9X6EBYjxrCLY4p1/yBwgyBIRJtZtAqM3ceAH2WovEJD6rTtOuHo5AluJ": "miek.nl.\t0\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",
|
||||
// "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. 86400 IN RRSIG SOA 8 2 86400 20110403154150 20110304154150 23334 dnsex.nl. QN6hwJQLEBqRVKmO2LgkuRSx9bkKIZxXlTVtHg5SaiN+8RCTckGtUXkQ vmZiBt3RdIWAjaabQYpEZHgvyjfy4Wwu/9RPDYnLt/qoyr4QKAdujchc m+fMDSbbcC7AN08i5D/dUWfNOHXjRJLY7t7AYB9DBt32LazIb0EU9QiW 5Cg=": "dnsex.nl.\t86400\tIN\tRRSIG\tSOA 8 2 86400 20110403154150 20110304154150 23334 dnsex.nl. QN6hwJQLEBqRVKmO2LgkuRSx9bkKIZxXlTVtHg5SaiN+8RCTckGtUXkQvmZiBt3RdIWAjaabQYpEZHgvyjfy4Wwu/9RPDYnLt/qoyr4QKAdujchcm+fMDSbbcC7AN08i5D/dUWfNOHXjRJLY7t7AYB9DBt32LazIb0EU9QiW5Cg=",
|
||||
}
|
||||
for i, o := range tests {
|
||||
rr, _ := NewRR(i)
|
||||
|
|
2
zscan.go
2
zscan.go
|
@ -41,7 +41,7 @@ const (
|
|||
)
|
||||
|
||||
// Only used when debugging the parser itself.
|
||||
var DEBUG = false
|
||||
var DEBUG = true
|
||||
|
||||
type ParseError struct {
|
||||
err string
|
||||
|
|
12
zscan_rr.go
12
zscan_rr.go
|
@ -1,6 +1,7 @@
|
|||
package dns
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
@ -14,9 +15,11 @@ import (
|
|||
|
||||
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}
|
||||
}
|
||||
|
@ -109,8 +112,9 @@ func setA(h RR_Header, c chan Lex) (RR, error) {
|
|||
|
||||
l := <-c
|
||||
rr.A = net.ParseIP(l.token)
|
||||
println(l.token)
|
||||
if rr.A == nil {
|
||||
return nil, &ParseError{"bad a", l}
|
||||
return nil, &ParseError{"bad A", l}
|
||||
}
|
||||
return rr, nil
|
||||
}
|
||||
|
@ -134,7 +138,7 @@ func setNS(h RR_Header, c chan Lex) (RR, error) {
|
|||
l := <-c
|
||||
rr.Ns = l.token
|
||||
if !IsDomainName(l.token) {
|
||||
return nil, &ParseError{"bad NS", l}
|
||||
return nil, &ParseError{"bad NS Ns", l}
|
||||
}
|
||||
return rr, nil
|
||||
}
|
||||
|
@ -145,7 +149,7 @@ func setMX(h RR_Header, c chan Lex) (RR, error) {
|
|||
|
||||
l := <-c
|
||||
if i, e := strconv.Atoi(l.token); e != nil {
|
||||
return nil, &ParseError{"bad MX", l}
|
||||
return nil, &ParseError{"bad MX Pref", l}
|
||||
} else {
|
||||
rr.Pref = uint16(i)
|
||||
}
|
||||
|
@ -153,7 +157,7 @@ func setMX(h RR_Header, c chan Lex) (RR, error) {
|
|||
l = <-c // _STRING
|
||||
rr.Mx = l.token
|
||||
if !IsDomainName(l.token) {
|
||||
return nil, &ParseError{"bad CNAME", l}
|
||||
return nil, &ParseError{"bad MX Mx", l}
|
||||
}
|
||||
return rr, nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue