refactor: log server listening observations after listening socket is ready

Correct behavior is to log this after the listening socket is ready.

Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com>
This commit is contained in:
Taimoor Zaeem
2026-06-26 16:01:55 +05:00
parent a6840f9bf9
commit 67956b3cb1
2 changed files with 8 additions and 9 deletions
+5 -6
View File
@@ -28,15 +28,14 @@ runAdmin appState maybeAdminSocket getSocketREST settings = do
conf <- getConfig appState conf <- getConfig appState
whenJust maybeAdminSocket $ \adminSocket -> do whenJust maybeAdminSocket $ \adminSocket -> do
address <- resolveSocketToAddress adminSocket address <- resolveSocketToAddress adminSocket
observer $ AdminStartObs address void . forkIO $ Warp.runSettingsSocket (adminServerSettings conf address) adminSocket adminApp
void . forkIO $ Warp.runSettingsSocket (adminServerSettings conf) adminSocket adminApp
where where
adminApp = admin appState getSocketREST adminApp = admin appState getSocketREST
observer = AppState.getObserver appState observer = AppState.getObserver appState
adminServerSettings config = adminServerSettings config addr=
case configAdminServerPort config of settings
Just p -> settings & Warp.setPort p & Warp.setBeforeMainLoop (observer $ AdminStartObs addr)
Nothing -> settings & maybe identity Warp.setPort (configAdminServerPort config)
-- | PostgREST admin application -- | PostgREST admin application
admin :: AppState.AppState -> IO (Maybe NS.Socket) -> Wai.Application admin :: AppState.AppState -> IO (Maybe NS.Socket) -> Wai.Application
+3 -3
View File
@@ -29,8 +29,8 @@ import Data.Either.Combinators (mapLeft, whenLeft)
import Data.IORef (atomicWriteIORef, newIORef, import Data.IORef (atomicWriteIORef, newIORef,
readIORef) readIORef)
import Data.String (IsString (..), String) import Data.String (IsString (..), String)
import Network.Wai.Handler.Warp (defaultSettings, setHost, import Network.Wai.Handler.Warp (defaultSettings, setBeforeMainLoop,
setOnException, setPort, setHost, setOnException, setPort,
setServerName) setServerName)
import qualified Data.Text.Encoding as T import qualified Data.Text.Encoding as T
@@ -104,12 +104,12 @@ run appState = do
let app = postgrest appState (AppState.schemaCacheLoader appState) let app = postgrest appState (AppState.schemaCacheLoader appState)
address <- resolveSocketToAddress mainSocket address <- resolveSocketToAddress mainSocket
observer $ AppServerAddressObs address
let let
appServerSettings = serverSettings conf appServerSettings = serverSettings conf
& setPort (configServerPort conf) & setPort (configServerPort conf)
& setOnException onWarpException & setOnException onWarpException
& setBeforeMainLoop (observer $ AppServerAddressObs address)
Warp.runSettingsSocket appServerSettings mainSocket app Warp.runSettingsSocket appServerSettings mainSocket app
where where