From b3a0b98e80f68a43e825d260c710853f812a3e3b Mon Sep 17 00:00:00 2001 From: Marcin Rataj Date: Tue, 22 Feb 2022 17:32:57 +0100 Subject: [PATCH] refactor: log error on missing relay subsystem This logs an error when Relay transport or client dependency is missing. --- core/node/groups.go | 14 ++++++++++++-- core/node/libp2p/relay.go | 3 ++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/core/node/groups.go b/core/node/groups.go index 2889b3a0a001..8001310bf517 100644 --- a/core/node/groups.go +++ b/core/node/groups.go @@ -112,8 +112,18 @@ func LibP2P(bcfg *BuildCfg, cfg *config.Config) fx.Option { } enableRelayTransport := cfg.Swarm.Transports.Network.Relay.WithDefault(true) //nolint - enableRelayService := cfg.Swarm.RelayService.Enabled.WithDefault(true) - enableRelayClient := cfg.Swarm.RelayClient.Enabled.WithDefault(true) + enableRelayService := cfg.Swarm.RelayService.Enabled.WithDefault(enableRelayTransport) + enableRelayClient := cfg.Swarm.RelayClient.Enabled.WithDefault(enableRelayTransport) + + // Log error when relay subsystem could not be initialized + if !enableRelayTransport { + if cfg.Swarm.RelayService.Enabled.WithDefault(true) { + log.Error("Failed to enable `Swarm.RelayService.Enabled`, it requires `Swarm.Transports.Network.Relay` to be true.") + } + if cfg.Swarm.RelayClient.Enabled.WithDefault(true) { + log.Error("Failed to enable `Swarm.RelayClient.Enabled`, it requires `Swarm.Transports.Network.Relay` to be true.") + } + } // Force users to migrate old config. //nolint diff --git a/core/node/libp2p/relay.go b/core/node/libp2p/relay.go index 17c44ea7e060..188e5578e770 100644 --- a/core/node/libp2p/relay.go +++ b/core/node/libp2p/relay.go @@ -75,7 +75,8 @@ func HolePunching(flag config.Flag, hasRelayClient bool) func() (opts Libp2pOpts return func() (opts Libp2pOpts, err error) { if flag.WithDefault(true) { if !hasRelayClient { - log.Fatal("To enable `Swarm.EnableHolePunching` requires `Swarm.RelayClient.Enabled` to be enabled.") + log.Error("Failed to enable `Swarm.EnableHolePunching`, it requires `Swarm.RelayClient.Enabled` to be true.") + return } opts.Opts = append(opts.Opts, libp2p.EnableHolePunching()) }