From 33076628a47b7d1278e075f6cb95649081980d5b Mon Sep 17 00:00:00 2001 From: NI Date: Mon, 19 Aug 2019 18:36:58 +0800 Subject: [PATCH] Don't set the initial deadline if the upper wants to set it --- application/network/dial_socks5.go | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/application/network/dial_socks5.go b/application/network/dial_socks5.go index 48e0b8c..8ac98bd 100644 --- a/application/network/dial_socks5.go +++ b/application/network/dial_socks5.go @@ -34,12 +34,30 @@ type socks5Conn struct { initialReadDeadline time.Time } +func (s *socks5Conn) SetDeadline(t time.Time) error { + s.initialReadDeadline = 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.SetReadDeadline(s.initialReadDeadline) + s.Conn.SetReadDeadline(s.initialReadDeadline) s.initialReadDeadline = emptyTime - defer s.SetReadDeadline(emptyTime) + defer s.Conn.SetReadDeadline(emptyTime) } rLen, rErr := s.Conn.Read(b)