From 67956b3cb10bcaeda30fd23afddade12ceb9ca6b Mon Sep 17 00:00:00 2001 From: Taimoor Zaeem Date: Fri, 26 Jun 2026 15:38:36 +0500 Subject: [PATCH] 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 --- src/PostgREST/Admin.hs | 11 +++++------ src/PostgREST/App.hs | 6 +++--- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/PostgREST/Admin.hs b/src/PostgREST/Admin.hs index 1c425b898..ced8c7e54 100644 --- a/src/PostgREST/Admin.hs +++ b/src/PostgREST/Admin.hs @@ -28,15 +28,14 @@ runAdmin appState maybeAdminSocket getSocketREST settings = do conf <- getConfig appState whenJust maybeAdminSocket $ \adminSocket -> do address <- resolveSocketToAddress adminSocket - observer $ AdminStartObs address - void . forkIO $ Warp.runSettingsSocket (adminServerSettings conf) adminSocket adminApp + void . forkIO $ Warp.runSettingsSocket (adminServerSettings conf address) adminSocket adminApp where adminApp = admin appState getSocketREST observer = AppState.getObserver appState - adminServerSettings config = - case configAdminServerPort config of - Just p -> settings & Warp.setPort p - Nothing -> settings + adminServerSettings config addr= + settings + & Warp.setBeforeMainLoop (observer $ AdminStartObs addr) + & maybe identity Warp.setPort (configAdminServerPort config) -- | PostgREST admin application admin :: AppState.AppState -> IO (Maybe NS.Socket) -> Wai.Application diff --git a/src/PostgREST/App.hs b/src/PostgREST/App.hs index 3f02237ac..5824af899 100644 --- a/src/PostgREST/App.hs +++ b/src/PostgREST/App.hs @@ -29,8 +29,8 @@ import Data.Either.Combinators (mapLeft, whenLeft) import Data.IORef (atomicWriteIORef, newIORef, readIORef) import Data.String (IsString (..), String) -import Network.Wai.Handler.Warp (defaultSettings, setHost, - setOnException, setPort, +import Network.Wai.Handler.Warp (defaultSettings, setBeforeMainLoop, + setHost, setOnException, setPort, setServerName) import qualified Data.Text.Encoding as T @@ -104,12 +104,12 @@ run appState = do let app = postgrest appState (AppState.schemaCacheLoader appState) address <- resolveSocketToAddress mainSocket - observer $ AppServerAddressObs address let appServerSettings = serverSettings conf & setPort (configServerPort conf) & setOnException onWarpException + & setBeforeMainLoop (observer $ AppServerAddressObs address) Warp.runSettingsSocket appServerSettings mainSocket app where