From c92a4b8c681e33eb6930941178c058190d621e04 Mon Sep 17 00:00:00 2001 From: 9seconds Date: Tue, 5 Jun 2018 10:54:42 +0300 Subject: [PATCH] Refactor timeoutrwc to wrappers --- proxy/server.go | 4 ++-- proxy/timeoutrwc.go | 40 ---------------------------------------- 2 files changed, 2 insertions(+), 42 deletions(-) delete mode 100644 proxy/timeoutrwc.go diff --git a/proxy/server.go b/proxy/server.go index 67815e5..43a9be2 100644 --- a/proxy/server.go +++ b/proxy/server.go @@ -112,7 +112,7 @@ func (s *Server) makeSocketID() string { } func (s *Server) getClientStream(ctx context.Context, cancel context.CancelFunc, conn net.Conn, socketID string) (io.ReadWriteCloser, int16, error) { - wConn := newTimeoutReadWriteCloser(conn, s.readTimeout, s.writeTimeout) + wConn := wrappers.NewTimeoutRWC(conn, s.readTimeout, s.writeTimeout) wConn = newTrafficReadWriteCloser(wConn, s.stats.addIncomingTraffic, s.stats.addOutgoingTraffic) frame, err := obfuscated2.ExtractFrame(wConn) if err != nil { @@ -136,7 +136,7 @@ func (s *Server) getTelegramStream(ctx context.Context, cancel context.CancelFun if err != nil { return nil, errors.Annotate(err, "Cannot dial") } - wConn := newTimeoutReadWriteCloser(socket, s.readTimeout, s.writeTimeout) + wConn := wrappers.NewTimeoutRWC(socket, s.readTimeout, s.writeTimeout) wConn = newTrafficReadWriteCloser(wConn, s.stats.addIncomingTraffic, s.stats.addOutgoingTraffic) obfs2, frame := obfuscated2.MakeTelegramObfuscated2Frame() diff --git a/proxy/timeoutrwc.go b/proxy/timeoutrwc.go deleted file mode 100644 index 0067d60..0000000 --- a/proxy/timeoutrwc.go +++ /dev/null @@ -1,40 +0,0 @@ -package proxy - -import ( - "io" - "net" - "time" -) - -// TimeoutReadWriteCloser sets timeouts for read/write into underlying -// network connection. -type TimeoutReadWriteCloser struct { - conn net.Conn - readTimeout time.Duration - writeTimeout time.Duration -} - -// Read reads from connection -func (t *TimeoutReadWriteCloser) Read(p []byte) (int, error) { - t.conn.SetReadDeadline(time.Now().Add(t.readTimeout)) // nolint: errcheck, gas - return t.conn.Read(p) -} - -// Write writes into connection. -func (t *TimeoutReadWriteCloser) Write(p []byte) (int, error) { - t.conn.SetWriteDeadline(time.Now().Add(t.writeTimeout)) // nolint: errcheck, gas - return t.conn.Write(p) -} - -// Close closes underlying connection. -func (t *TimeoutReadWriteCloser) Close() error { - return t.conn.Close() -} - -func newTimeoutReadWriteCloser(conn net.Conn, readTimeout, writeTimeout time.Duration) io.ReadWriteCloser { - return &TimeoutReadWriteCloser{ - conn: conn, - readTimeout: readTimeout, - writeTimeout: writeTimeout, - } -}