More parsing tweaks

This commit is contained in:
Miek Gieben 2011-07-18 16:06:06 +02:00
parent 91b41d02bb
commit e1bd7db73b
4 changed files with 24 additions and 13 deletions

View File

@ -146,15 +146,26 @@ func TestParse(t *testing.T) {
func TestSetString(t *testing.T) {
a := new(RR_A)
a.SetString("miek.nl. IN A 127.0.0.1")
t.Log(a.String())
if a.String() != "miek.nl.\t0\tIN\tA\t127.0.0.1" {
t.Log(a.String())
t.Fail()
}
b := new(RR_AAAA)
b.SetString("miek.nl. IN AAAA ::1")
t.Log(b.String())
if b.String() != "miek.nl.\t0\tIN\tAAAA\t::1" {
t.Log(b.String())
t.Fail()
}
c := new(RR_MX)
c.SetString("miek.nl. IN MX 10 miek.nl.")
t.Log(c.String())
if c.String() != "miek.nl.\t0\tIN\tMX\t10 miek.nl." {
t.Log(c.String())
t.Fail()
}
d := new(RR_NS)
d.SetString("miek.nl. IN NS ns1.miek.nl")
t.Log(d.String())
t.Fail()
if d.String() != "miek.nl.\t0\tIN\tNS\tns1.miek.nl" {
t.Log(d.String())
t.Fail()
}
}

View File

@ -3,11 +3,11 @@
action rdata_a {
rr.(*RR_A).Hdr = *hdr
rr.(*RR_A).A = net.ParseIP(data[mark:p])
rr.(*RR_A).A = net.ParseIP(tok.T[0])
}
action rdata_aaaa {
rr.(*RR_AAAA).Hdr = *hdr
rr.(*RR_AAAA).AAAA = net.ParseIP(data[mark:p])
rr.(*RR_AAAA).AAAA = net.ParseIP(tok.T[0])
}
action rdata_ns {
rr.(*RR_NS).Hdr = *hdr

View File

@ -126,7 +126,7 @@ tr176:
// line 4 "types.rl"
{
rr.(*RR_A).Hdr = *hdr
rr.(*RR_A).A = net.ParseIP(data[mark:p])
rr.(*RR_A).A = net.ParseIP(tok.T[0])
}
goto st2
tr178:
@ -135,7 +135,7 @@ tr178:
// line 8 "types.rl"
{
rr.(*RR_AAAA).Hdr = *hdr
rr.(*RR_AAAA).AAAA = net.ParseIP(data[mark:p])
rr.(*RR_AAAA).AAAA = net.ParseIP(tok.T[0])
}
goto st2
tr180:
@ -2397,7 +2397,7 @@ case 105:
// line 4 "types.rl"
{
rr.(*RR_A).Hdr = *hdr
rr.(*RR_A).A = net.ParseIP(data[mark:p])
rr.(*RR_A).A = net.ParseIP(tok.T[0])
}
break
case 107:
@ -2406,7 +2406,7 @@ case 105:
// line 8 "types.rl"
{
rr.(*RR_AAAA).Hdr = *hdr
rr.(*RR_AAAA).AAAA = net.ParseIP(data[mark:p])
rr.(*RR_AAAA).AAAA = net.ParseIP(tok.T[0])
}
break
case 112:

View File

@ -116,10 +116,10 @@ func Zparse(q io.Reader) (rr RR, err os.Error) {
| (qclass bl (ttl %setTtl bl)?)
)?;
# RDATA definitions
# RDATA definitions.
include "types.rl";
# RR definitions
# RR definitions.
rhs = (
('A'i %qtype bl t) %rdata_a
| ('AAAA'i %qtype bl t) %rdata_aaaa