Fix parsing of AAAA records
This commit is contained in:
parent
e1bd7db73b
commit
e50100848c
|
@ -147,25 +147,25 @@ func TestSetString(t *testing.T) {
|
|||
a := new(RR_A)
|
||||
a.SetString("miek.nl. IN A 127.0.0.1")
|
||||
if a.String() != "miek.nl.\t0\tIN\tA\t127.0.0.1" {
|
||||
t.Log(a.String())
|
||||
t.Log(a.String(), "miek.nl. IN A 127.0.0.1")
|
||||
t.Fail()
|
||||
}
|
||||
b := new(RR_AAAA)
|
||||
b.SetString("miek.nl. IN AAAA ::1")
|
||||
if b.String() != "miek.nl.\t0\tIN\tAAAA\t::1" {
|
||||
t.Log(b.String())
|
||||
t.Log(b.String(), "miek.nl. IN AAAA ::1")
|
||||
t.Fail()
|
||||
}
|
||||
c := new(RR_MX)
|
||||
c.SetString("miek.nl. IN MX 10 miek.nl.")
|
||||
if c.String() != "miek.nl.\t0\tIN\tMX\t10 miek.nl." {
|
||||
t.Log(c.String())
|
||||
t.Log(c.String(), "miek.nl. IN MX 10 miek.nl.")
|
||||
t.Fail()
|
||||
}
|
||||
d := new(RR_NS)
|
||||
d.SetString("miek.nl. IN NS ns1.miek.nl")
|
||||
if d.String() != "miek.nl.\t0\tIN\tNS\tns1.miek.nl" {
|
||||
t.Log(d.String())
|
||||
t.Log(d.String(), "miek.nl. IN NS ns1.miek.nl")
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
|
2
types.go
2
types.go
|
@ -521,7 +521,7 @@ func (rr *RR_AAAA) String() string {
|
|||
|
||||
func (rr *RR_AAAA) SetString(s string) (*RR_AAAA, bool) {
|
||||
p := parse(s)
|
||||
if p != nil {
|
||||
if p == nil {
|
||||
return nil, false
|
||||
}
|
||||
if _, ok := p.(*RR_AAAA); !ok {
|
||||
|
|
22
zparse.rl
22
zparse.rl
|
@ -69,6 +69,7 @@ func Zparse(q io.Reader) (rr RR, err os.Error) {
|
|||
buf := make([]byte, _IOBUF)
|
||||
n, err := q.Read(buf)
|
||||
if err != nil {
|
||||
println("RETURNING HERE\n")
|
||||
return nil, err
|
||||
}
|
||||
buf = buf[:n]
|
||||
|
@ -94,7 +95,8 @@ func Zparse(q io.Reader) (rr RR, err os.Error) {
|
|||
i := Str_rr[data[mark:p]]
|
||||
mk, known := rr_mk[int(i)]
|
||||
if ! known {
|
||||
// ...
|
||||
println("Unknown type seen: " + data[mark:p])
|
||||
// panic?
|
||||
}
|
||||
rr = mk()
|
||||
hdr.Rrtype = i
|
||||
|
@ -103,11 +105,11 @@ func Zparse(q io.Reader) (rr RR, err os.Error) {
|
|||
qclass = ('IN'i|'CS'i|'CH'i|'HS'i|'ANY'i|'NONE'i) %qclass;
|
||||
ttl = digit+ >mark;
|
||||
bl = [ \t]+ %mark;
|
||||
qname = [a-zA-Z0-9.\\]+ %qname;
|
||||
# If I use this in the definitions at the end, things break...
|
||||
tb = [a-zA-Z0-9.\\ ]+ $1 %0 %textblank;
|
||||
# t = [a-zA-Z0-9.\\]+ $1 %0 %text;
|
||||
t = [a-zA-Z0-9.\\/+=]+ $1 %0 %text;
|
||||
qname = [a-zA-Z0-9.\\_]+ %qname;
|
||||
# If I use this in the definitions at the end, things break.
|
||||
# 6l seems to hang when compiling the resulting .go file...
|
||||
tb = [ a-zA-Z0-9.\\/+=:]+ $1 %0 %textblank;
|
||||
t = [a-zA-Z0-9.\\/+=:]+ $1 %0 %text;
|
||||
n = [0-9]+ $1 %0 %number;
|
||||
comment = /^;/;
|
||||
|
||||
|
@ -142,11 +144,11 @@ func Zparse(q io.Reader) (rr RR, err os.Error) {
|
|||
if cs < z_first_final {
|
||||
// No clue what I'm doing what so ever
|
||||
if p == pe {
|
||||
//return nil, os.ErrorString("unexpected eof")
|
||||
return nil, nil
|
||||
println("unexpected eof")
|
||||
return rr, nil
|
||||
} else {
|
||||
//return nil, os.ErrorString(fmt.Sprintf("error at position %d", p))
|
||||
return nil, nil
|
||||
println("error at position ", p)
|
||||
return rr, nil
|
||||
}
|
||||
}
|
||||
return rr, nil
|
||||
|
|
Loading…
Reference in New Issue