Don't set the initial deadline if the upper wants to set it

This commit is contained in:
NI
2019-08-19 18:36:58 +08:00
parent 00c0e66611
commit 33076628a4

View File

@@ -34,12 +34,30 @@ type socks5Conn struct {
initialReadDeadline time.Time initialReadDeadline time.Time
} }
func (s *socks5Conn) Read(b []byte) (int, error) { func (s *socks5Conn) SetDeadline(t time.Time) error {
if s.initialReadDeadline != emptyTime {
s.SetReadDeadline(s.initialReadDeadline)
s.initialReadDeadline = emptyTime s.initialReadDeadline = emptyTime
defer s.SetReadDeadline(emptyTime) return s.Conn.SetDeadline(t)
}
func (s *socks5Conn) SetReadDeadline(t time.Time) error {
s.initialReadDeadline = emptyTime
return s.Conn.SetReadDeadline(t)
}
func (s *socks5Conn) SetWriteDeadline(t time.Time) error {
s.initialReadDeadline = emptyTime
return s.Conn.SetWriteDeadline(t)
}
func (s *socks5Conn) Read(b []byte) (int, error) {
if s.initialReadDeadline != emptyTime {
s.Conn.SetReadDeadline(s.initialReadDeadline)
s.initialReadDeadline = emptyTime
defer s.Conn.SetReadDeadline(emptyTime)
} }
rLen, rErr := s.Conn.Read(b) rLen, rErr := s.Conn.Read(b)