diff options
| author | Mikhail Osipov <mike.osipov@gmail.com> | 2021-08-27 21:38:16 +0300 |
|---|---|---|
| committer | Mikhail Osipov <mike.osipov@gmail.com> | 2021-08-27 21:38:16 +0300 |
| commit | 2f01cc1db51368f36ba6ae664a3b0db9234f683f (patch) | |
| tree | fb4a869419816fe4fd83440611a9bc7b6a8140df /pkg/server/socket/sys.go | |
| parent | 3015840d9835717762de52e091adb58f1e2e3b63 (diff) | |
add origin host and port to env
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 { |
