@@ -57,6 +57,7 @@ import Cardano.Node.Protocol.Types
5757import Cardano.Node.Queries
5858import Cardano.Rpc.Server
5959import Cardano.Rpc.Server.Config
60+ import Data.IORef
6061import Cardano.Node.Startup
6162import Cardano.Node.TraceConstraints (TraceConstraints )
6263import Cardano.Node.Tracing.API
@@ -541,6 +542,7 @@ handleSimpleNode blockType runP tracers nc networkMagic onKernel = do
541542#endif
542543 nForkPolicy <- getForkPolicy $ ncResponderCoreAffinityPolicy nc
543544 cForkPolicy <- getForkPolicy $ ncResponderCoreAffinityPolicy nc
545+ nodeAccessRef <- newIORef Nothing
544546 void $
545547 let diffusionNodeArguments :: Cardano.Diffusion. CardanoNodeArguments IO
546548 diffusionNodeArguments = Cardano.Diffusion. CardanoNodeArguments {
@@ -573,7 +575,7 @@ handleSimpleNode blockType runP tracers nc networkMagic onKernel = do
573575 (readTVar ledgerPeerSnapshotVar)
574576 nc
575577 in
576- withAsync (rpcServerLoop (startupTracer tracers) (rpcTracer tracers) rpcConfigVar networkMagic) $ \ _ ->
578+ withAsync (rpcServerLoop (startupTracer tracers) (rpcTracer tracers) rpcConfigVar networkMagic nodeAccessRef ) $ \ _ ->
577579 Node. run
578580 nodeArgs {
579581 rnNodeKernelHook = \ registry nodeKernel -> do
@@ -858,16 +860,17 @@ rpcServerLoop :: Tracer IO (StartupTrace blk)
858860 -> Tracer IO TraceRpc
859861 -> StrictTVar IO RpcConfig
860862 -> NetworkMagic
863+ -> IORef (Maybe (NodeAccess IO ))
861864 -> IO ()
862- rpcServerLoop startupTracer rpcTracer rpcConfigVar networkMagic = go
865+ rpcServerLoop startupTracer rpcTracer rpcConfigVar networkMagic nodeAccessRef = go
863866 where
864867 go = do
865868 config@ RpcConfig {isEnabled = Identity enabled} <- readTVarIO rpcConfigVar
866869 if enabled
867870 then
868871 race_
869872 (do
870- runRpcServer rpcTracer ( config, networkMagic)
873+ runRpcServer rpcTracer config networkMagic nodeAccessRef
871874 traceWith startupTracer RpcForceDisabled
872875 disableRpcServer)
873876 (waitForRpcConfigChange config)
0 commit comments