1package xmpp
2
3import (
4	"net"
5	"time"
6)
7
8type timeoutableConn struct {
9	net.Conn
10	duration time.Duration
11}
12
13func (c *timeoutableConn) Read(b []byte) (n int, err error) {
14	deadline := time.Now().Add(c.duration)
15	c.Conn.SetReadDeadline(deadline)
16	n, err = c.Conn.Read(b)
17	c.Conn.SetReadDeadline(time.Time{})
18
19	return
20}
21
22func (c *timeoutableConn) Write(b []byte) (n int, err error) {
23	deadline := time.Now().Add(c.duration)
24	c.Conn.SetWriteDeadline(deadline)
25	n, err = c.Conn.Write(b)
26	c.Conn.SetWriteDeadline(time.Time{})
27
28	return
29}
30