From 59f0fe5b321fa434ec011550bef78f0c29eba6bd Mon Sep 17 00:00:00 2001 From: monacoremo <59358383+monacoremo@users.noreply.github.com> Date: Sat, 24 Apr 2021 15:58:18 +0200 Subject: [PATCH] fix: Properly close unix domain socket on exit --- src/PostgREST/Unix.hs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/PostgREST/Unix.hs b/src/PostgREST/Unix.hs index 9c742541d..ddae782cc 100644 --- a/src/PostgREST/Unix.hs +++ b/src/PostgREST/Unix.hs @@ -21,12 +21,11 @@ import Protolude -- | Run the PostgREST application with user defined socket. runAppInSocket :: Warp.Settings -> Application -> FileMode -> FilePath -> IO () -runAppInSocket settings app socketFileMode socketFilePath = do - sock <- createAndBindSocket - putStrLn $ ("Listening on unix socket " :: Text) <> show socketFilePath - Socket.listen sock Socket.maxListenQueue - Warp.runSettingsSocket settings sock app - Socket.close sock +runAppInSocket settings app socketFileMode socketFilePath = + bracket createAndBindSocket Socket.close $ \socket -> do + putStrLn $ ("Listening on unix socket " :: Text) <> show socketFilePath + Socket.listen socket Socket.maxListenQueue + Warp.runSettingsSocket settings socket app where createAndBindSocket = do deleteSocketFileIfExist socketFilePath