mirror of
https://github.com/miekg/dns.git
synced 2025-12-11 14:51:01 +01:00
Merge net branch
This commit is contained in:
parent
68083bc956
commit
aa44c75b91
31
client.go
31
client.go
@ -185,10 +185,8 @@ func (co *Conn) Read(p []byte) (n int, err error) {
|
|||||||
if len(p) < 2 {
|
if len(p) < 2 {
|
||||||
return 0, io.ErrShortBuffer
|
return 0, io.ErrShortBuffer
|
||||||
}
|
}
|
||||||
switch w.client.Net {
|
if t, ok := co.Conn.(*net.TCPConn); ok {
|
||||||
case "tcp", "tcp4", "tcp6":
|
n, err = t.Read(p[0:2])
|
||||||
setTimeouts(w)
|
|
||||||
n, err = w.conn.Read(p[0:2])
|
|
||||||
if err != nil || n != 2 {
|
if err != nil || n != 2 {
|
||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
@ -199,25 +197,25 @@ func (co *Conn) Read(p []byte) (n int, err error) {
|
|||||||
if int(l) > len(p) {
|
if int(l) > len(p) {
|
||||||
return int(l), io.ErrShortBuffer
|
return int(l), io.ErrShortBuffer
|
||||||
}
|
}
|
||||||
n, err = w.conn.Read(p[:l])
|
n, err = t.Read(p[:l])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
i := n
|
i := n
|
||||||
for i < int(l) {
|
for i < int(l) {
|
||||||
j, err := w.conn.Read(p[i:int(l)])
|
j, err := t.Read(p[i:int(l)])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return i, err
|
return i, err
|
||||||
}
|
}
|
||||||
i += j
|
i += j
|
||||||
}
|
}
|
||||||
n = i
|
n = i
|
||||||
case "", "udp", "udp4", "udp6":
|
return n, err
|
||||||
setTimeouts(w)
|
}
|
||||||
n, err = w.conn.Read(p)
|
// assume udp connection
|
||||||
if err != nil {
|
n, _, err = co.Conn.(*net.UDPConn).ReadFromUDP(p)
|
||||||
return n, err
|
if err != nil {
|
||||||
}
|
return n, err
|
||||||
}
|
}
|
||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
@ -270,16 +268,7 @@ func (co *Conn) Write(p []byte) (n int, err error) {
|
|||||||
i += j
|
i += j
|
||||||
}
|
}
|
||||||
n = i
|
n = i
|
||||||
<<<<<<< HEAD
|
|
||||||
case "", "udp", "udp4", "udp6":
|
|
||||||
setTimeouts(w)
|
|
||||||
n, err = w.conn.Write(p)
|
|
||||||
if err != nil {
|
|
||||||
return n, err
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
return n, err
|
return n, err
|
||||||
>>>>>>> net
|
|
||||||
}
|
}
|
||||||
n, err = co.Conn.(*net.UDPConn).Write(p)
|
n, err = co.Conn.(*net.UDPConn).Write(p)
|
||||||
return n, err
|
return n, err
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user