@@ -13,10 +13,7 @@ module PostgREST.AppState
1313 , getNextListenerDelay
1414 , getTime
1515 , getJwtCacheState
16- , getSocketREST
17- , getSocketAdmin
1816 , init
19- , initSockets
2017 , initWithPool
2118 , putNextListenerDelay
2219 , putSchemaCache
@@ -32,13 +29,11 @@ module PostgREST.AppState
3229
3330import qualified Data.ByteString.Char8 as BS
3431import Data.Either.Combinators (whenLeft )
35- import qualified Data.Text as T (unpack )
3632import qualified Hasql.Pool as SQL
3733import qualified Hasql.Pool.Config as SQL
3834import qualified Hasql.Session as SQL
3935import qualified Hasql.Transaction.Sessions as SQL
4036import qualified Network.HTTP.Types.Status as HTTP
41- import qualified Network.Socket as NS
4237import qualified PostgREST.Auth.JwtCache as JwtCache
4338import qualified PostgREST.Error as Error
4439import qualified PostgREST.Logger as Logger
@@ -70,10 +65,7 @@ import PostgREST.SchemaCache (SchemaCache (..),
7065 querySchemaCache ,
7166 showSummary )
7267import PostgREST.SchemaCache.Identifiers (quoteQi )
73- import PostgREST.Unix (createAndBindDomainSocket )
7468
75- import Data.Streaming.Network (bindPortTCP , bindRandomPortTCP )
76- import Data.String (IsString (.. ))
7769import Protolude
7870
7971data AppState = AppState
@@ -99,10 +91,6 @@ data AppState = AppState
9991 , stateNextDelay :: IORef Int
10092 -- | Keeps track of the next delay for the listener
10193 , stateNextListenerDelay :: IORef Int
102- -- | Network socket for REST API
103- , stateSocketREST :: NS. Socket
104- -- | Network socket for the admin UI
105- , stateSocketAdmin :: Maybe NS. Socket
10694 -- | Observation handler
10795 , stateObserver :: ObservationHandler
10896 -- | JWT Cache
@@ -117,8 +105,6 @@ newtype SchemaCacheStatus = SchemaCacheStatus
117105 { getSCStatusMVar :: MVar ()
118106 }
119107
120- type AppSockets = (NS. Socket , Maybe NS. Socket )
121-
122108init :: AppConfig -> IO AppState
123109init conf@ AppConfig {configLogLevel, configDbPoolSize} = do
124110 loggerState <- Logger. init
@@ -128,12 +114,10 @@ init conf@AppConfig{configLogLevel, configDbPoolSize} = do
128114 observer $ AppStartObs prettyVersion
129115
130116 pool <- initPool conf observer
131- (sock, adminSock) <- initSockets conf
132- state' <- initWithPool (sock, adminSock) pool conf loggerState metricsState observer
133- pure state' { stateSocketREST = sock, stateSocketAdmin = adminSock}
117+ initWithPool pool conf loggerState metricsState observer -- { stateSocketREST = sock, stateSocketAdmin = adminSock}
134118
135- initWithPool :: AppSockets -> SQL. Pool -> AppConfig -> Logger. LoggerState -> Metrics. MetricsState -> ObservationHandler -> IO AppState
136- initWithPool (sock, adminSock) pool conf loggerState metricsState observer = do
119+ initWithPool :: SQL. Pool -> AppConfig -> Logger. LoggerState -> Metrics. MetricsState -> ObservationHandler -> IO AppState
120+ initWithPool pool conf loggerState metricsState observer = do
137121
138122 appState <- AppState pool
139123 <$> newIORef minimumPgVersion -- assume we're in a supported version when starting, this will be corrected on a later step
@@ -146,8 +130,6 @@ initWithPool (sock, adminSock) pool conf loggerState metricsState observer = do
146130 <*> myThreadId
147131 <*> newIORef 0
148132 <*> newIORef 1
149- <*> pure sock
150- <*> pure adminSock
151133 <*> pure observer
152134 <*> JwtCache. init conf observer
153135 <*> pure loggerState
@@ -166,40 +148,6 @@ initWithPool (sock, adminSock) pool conf loggerState metricsState observer = do
166148destroy :: AppState -> IO ()
167149destroy = destroyPool
168150
169- initSockets :: AppConfig -> IO AppSockets
170- initSockets AppConfig {.. } = do
171- let
172- cfg'usp = configServerUnixSocket
173- cfg'uspm = configServerUnixSocketMode
174- cfg'host = configServerHost
175- cfg'port = configServerPort
176- cfg'adminHost = configAdminServerHost
177- cfg'adminPort = configAdminServerPort
178-
179- sock <- case cfg'usp of
180- -- I'm not using `streaming-commons`' bindPath function here because it's not defined for Windows,
181- -- but we need to have runtime error if we try to use it in Windows, not compile time error
182- Just path -> createAndBindDomainSocket path cfg'uspm
183- Nothing -> do
184- (_, sock) <-
185- if cfg'port /= 0
186- then do
187- sock <- bindPortTCP cfg'port (fromString $ T. unpack cfg'host)
188- pure (cfg'port, sock)
189- else do
190- -- explicitly bind to a random port, returning bound port number
191- (num, sock) <- bindRandomPortTCP (fromString $ T. unpack cfg'host)
192- pure (num, sock)
193- pure sock
194-
195- adminSock <- case cfg'adminPort of
196- Just adminPort -> do
197- adminSock <- bindPortTCP adminPort (fromString $ T. unpack cfg'adminHost)
198- pure $ Just adminSock
199- Nothing -> pure Nothing
200-
201- pure (sock, adminSock)
202-
203151initPool :: AppConfig -> ObservationHandler -> IO SQL. Pool
204152initPool AppConfig {.. } observer = do
205153 SQL. acquire $ SQL. settings
@@ -313,12 +261,6 @@ getTime = stateGetTime
313261getJwtCacheState :: AppState -> JwtCacheState
314262getJwtCacheState = stateJwtCache
315263
316- getSocketREST :: AppState -> NS. Socket
317- getSocketREST = stateSocketREST
318-
319- getSocketAdmin :: AppState -> Maybe NS. Socket
320- getSocketAdmin = stateSocketAdmin
321-
322264getMainThreadId :: AppState -> ThreadId
323265getMainThreadId = stateMainThreadId
324266
0 commit comments