diff options
Diffstat (limited to 'pkg/server/socket/sys.go')
| -rw-r--r-- | pkg/server/socket/sys.go | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/pkg/server/socket/sys.go b/pkg/server/socket/sys.go index f90d2da..b2d836e 100644 --- a/pkg/server/socket/sys.go +++ b/pkg/server/socket/sys.go @@ -106,7 +106,7 @@ func getSocketOriginalDst(fd int, sa *unix.RawSockaddrAny) error { } } -func getConnOriginalAddr(conn net.Conn, addr *string) error { +func getConnOriginalHostPort(conn net.Conn) (string, string, error) { var sa unix.RawSockaddrAny f := func(fd int) error { @@ -114,7 +114,7 @@ func getConnOriginalAddr(conn net.Conn, addr *string) error { } if err := withConnControl(conn, f); err != nil { - return fmt.Errorf("get-original-addr: %w", err) + return "", "", fmt.Errorf("get-original-addr: %w", err) } var host net.IP @@ -128,12 +128,10 @@ func getConnOriginalAddr(conn net.Conn, addr *string) error { sin := (*unix.RawSockaddrInet6)(unsafe.Pointer(&sa)) host, port = sin.Addr[:], sin.Port default: - return errors.New("get-original-addr: unknown address family") + return "", "", fmt.Errorf("get-original-addr: unknown address family %d", sa.Addr.Family) } - *addr = net.JoinHostPort(host.String(), strconv.Itoa(int(be16toh(port)))) - - return nil + return host.String(), strconv.Itoa(int(be16toh(port))), nil } func setSocketTransparent(fd int) error { |
