| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package proxyprotocol
-
- import (
- "net"
- "syscall"
- "testing"
-
- "github.com/pires/go-proxyproto"
- "github.com/stretchr/testify/require"
- )
-
- func TestConnWrapperSyscallConn(t *testing.T) {
- listener, err := net.Listen("tcp4", "127.0.0.1:0")
- require.NoError(t, err)
- defer listener.Close() //nolint: errcheck
-
- accepted := make(chan net.Conn, 1)
- acceptErr := make(chan error, 1)
- go func() {
- conn, err := listener.Accept()
- if err != nil {
- acceptErr <- err
-
- return
- }
- accepted <- conn
- }()
-
- clientConn, err := net.Dial("tcp4", listener.Addr().String())
- require.NoError(t, err)
- defer clientConn.Close() //nolint: errcheck
-
- var conn net.Conn
- select {
- case err := <-acceptErr:
- require.NoError(t, err)
- case conn = <-accepted:
- }
- defer conn.Close() //nolint: errcheck
-
- wrapped := connWrapper{proxyproto.NewConn(conn)}
- _, ok := any(wrapped).(syscall.Conn)
- require.True(t, ok)
-
- rawConn, err := wrapped.SyscallConn()
- require.NoError(t, err)
- require.NotNil(t, rawConn)
- }
|