Fix TCP reading

This commit is contained in:
Miek Gieben 2011-03-24 18:07:38 +01:00
parent 5e18c6fb24
commit b1363094de
3 changed files with 8 additions and 8 deletions

View File

@ -27,10 +27,10 @@ func main() {
}
go res.Xfr(m, c)
for x := range c {
if x.Err != nil {
fmt.Printf("%v\n",x.Err)
} else {
// if x.Err != nil {
// fmt.Printf("%v\n",x.Err)
// } else {
fmt.Printf("%v %v\n",x.Add, x.RR)
}
// }
}
}

6
dns.go
View File

@ -178,17 +178,17 @@ func (d *Conn) Read(p []byte) (n int, err os.Error) {
if int(l) > len(p) {
return int(l), &Error{Error: "Buffer too small to read"}
}
n, err = d.TCP.Read(p)
n, err = d.TCP.Read(p[:l])
if err != nil {
return n, err
}
i := n
for i < int(l) {
n, err = d.TCP.Read(p[i:])
j, err := d.TCP.Read(p[i:l])
if err != nil {
return i, err
}
i += n
i += j
}
n = i
}

2
xfr.go
View File

@ -73,7 +73,7 @@ func (d *Conn) axfrRead(q *Msg, m chan Xfr) {
if !first {
if d.Tsig != nil {
d.Tsig.TimersOnly = true // Subsequent envelopes use this
d.Tsig.TimersOnly = true // Subsequent envelopes use this.
}
if !checkXfrSOA(in, false) {
// Soa record not the last one