Fix TCP reading
This commit is contained in:
parent
5e18c6fb24
commit
b1363094de
|
@ -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
6
dns.go
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue