Merge net branch

This commit is contained in:
Miek Gieben 2013-10-12 18:32:53 +01:00
parent 68083bc956
commit aa44c75b91

View File

@ -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