From 55c06a0a58a8cf0f9144cd6fca3820291946fe40 Mon Sep 17 00:00:00 2001 From: notsure2 Date: Mon, 29 May 2023 19:32:15 +0300 Subject: [PATCH] Fix integration test. --- internal/client/piper.go | 47 ++++++++++++++++--------------- internal/test/integration_test.go | 2 +- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/internal/client/piper.go b/internal/client/piper.go index 3d7b91d..744c2de 100644 --- a/internal/client/piper.go +++ b/internal/client/piper.go @@ -105,32 +105,35 @@ func RouteTCP(listener net.Listener, streamTimeout time.Duration, singleplex boo continue } - syscallConn, err := localConn.(*net.TCPConn).SyscallConn() - if err != nil { - log.Fatal(err) - continue - } - - err = syscallConn.Control(func(fd uintptr) { - if sendBufferSize > 0 { - log.Debugf("Setting loopback connection tcp send buffer: %d", sendBufferSize) - err := syscall.SetsockoptInt(common.Platformfd(fd), syscall.SOL_SOCKET, syscall.SO_SNDBUF, sendBufferSize) - if err != nil { - log.Errorf("setsocketopt SO_SNDBUF: %s\n", err) - } + conn, ok := localConn.(*net.TCPConn) + if ok { + syscallConn, err := conn.SyscallConn() + if err != nil { + log.Fatal(err) + continue } - if receiveBufferSize > 0 { - log.Debugf("Setting loopback connection tcp receive buffer: %d", receiveBufferSize) - err = syscall.SetsockoptInt(common.Platformfd(fd), syscall.SOL_SOCKET, syscall.SO_RCVBUF, receiveBufferSize) - if err != nil { - log.Errorf("setsocketopt SO_RCVBUF: %s\n", err) + err = syscallConn.Control(func(fd uintptr) { + if sendBufferSize > 0 { + log.Debugf("Setting loopback connection tcp send buffer: %d", sendBufferSize) + err := syscall.SetsockoptInt(common.Platformfd(fd), syscall.SOL_SOCKET, syscall.SO_SNDBUF, sendBufferSize) + if err != nil { + log.Errorf("setsocketopt SO_SNDBUF: %s\n", err) + } } + + if receiveBufferSize > 0 { + log.Debugf("Setting loopback connection tcp receive buffer: %d", receiveBufferSize) + err = syscall.SetsockoptInt(common.Platformfd(fd), syscall.SOL_SOCKET, syscall.SO_RCVBUF, receiveBufferSize) + if err != nil { + log.Errorf("setsocketopt SO_RCVBUF: %s\n", err) + } + } + }) + if err != nil { + log.Fatal(err) + continue } - }) - if err != nil { - log.Fatal(err) - continue } if !singleplex && (sesh == nil || sesh.IsClosed()) { diff --git a/internal/test/integration_test.go b/internal/test/integration_test.go index 6df255c..110ca7c 100644 --- a/internal/test/integration_test.go +++ b/internal/test/integration_test.go @@ -207,7 +207,7 @@ func establishSession(lcc client.LocalConnConfig, rcc client.RemoteConnConfig, a } else { var proxyToCkClientL *connutil.PipeListener proxyToCkClientD, proxyToCkClientL = connutil.DialerListener(10 * 1024) - go client.RouteTCP(proxyToCkClientL, lcc.Timeout, rcc.Singleplex, clientSeshMaker) + go client.RouteTCP(proxyToCkClientL, lcc.Timeout, rcc.Singleplex, 0, 0, clientSeshMaker) } // set up server