This adds resolved host's IP to "Listening on ..." messages emitted when app and admin servers start.
18 lines
551 B
Haskell
18 lines
551 B
Haskell
module PostgREST.Network
|
|
( resolveHost
|
|
) where
|
|
|
|
import Data.IP (fromHostAddress, fromHostAddress6)
|
|
import Data.String (IsString (..))
|
|
import qualified Network.Socket as NS
|
|
|
|
import Protolude
|
|
|
|
resolveHost :: NS.Socket -> IO (Maybe Text)
|
|
resolveHost sock = do
|
|
sn <- NS.getSocketName sock
|
|
case sn of
|
|
NS.SockAddrInet _ hostAddr -> pure $ Just $ fromString $ show $ fromHostAddress hostAddr
|
|
NS.SockAddrInet6 _ _ hostAddr6 _ -> pure $ Just $ fromString $ show $ fromHostAddress6 hostAddr6
|
|
_ -> pure Nothing
|