diff --git a/lnd.go b/lnd.go index 61f6d2b9..12c4e113 100644 --- a/lnd.go +++ b/lnd.go @@ -917,8 +917,8 @@ func Main(cfg *Config, lisCfg ListenerCfg, interceptor signal.Interceptor) error // Now we have created all dependencies necessary to populate and // start the RPC server. err = rpcServer.addDeps( - server, macaroonService, cfg.SubRPCServers, atplManager, - server.invoices, tower, chainedAcceptor, + server, interceptorChain.MacaroonService(), cfg.SubRPCServers, + atplManager, server.invoices, tower, chainedAcceptor, ) if err != nil { err := fmt.Errorf("unable to add deps to RPC server: %v", err) diff --git a/rpcperms/interceptor.go b/rpcperms/interceptor.go index 4b8f47db..71481592 100644 --- a/rpcperms/interceptor.go +++ b/rpcperms/interceptor.go @@ -386,6 +386,15 @@ func (r *InterceptorChain) AddMacaroonService(svc *macaroons.Service) { r.svc = svc } +// MacaroonService returns the currently registered macaroon service. This might +// be nil if none was registered (yet). +func (r *InterceptorChain) MacaroonService() *macaroons.Service { + r.RLock() + defer r.RUnlock() + + return r.svc +} + // AddPermission adds a new macaroon rule for the given method. func (r *InterceptorChain) AddPermission(method string, ops []bakery.Op) error { r.Lock()