From 2e9a4e1fd7bffd87a599cff8693df695f80b5e47 Mon Sep 17 00:00:00 2001 From: George Tankersley Date: Thu, 11 Jun 2020 14:27:14 -0400 Subject: [PATCH] dnsseed: plugin init should not fail if a bootstrap peer is down unless they all are --- dnsseed/setup.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dnsseed/setup.go b/dnsseed/setup.go index 3fafae2..8522ae8 100644 --- a/dnsseed/setup.go +++ b/dnsseed/setup.go @@ -63,6 +63,7 @@ func setup(c *caddy.Controller) error { log.Infof("Getting addresses from bootstrap peers %v", opts.bootstrapPeers) + connectedToBootstrap := false for _, s := range opts.bootstrapPeers { address, port, err := net.SplitHostPort(s) if err != nil { @@ -72,8 +73,14 @@ func setup(c *caddy.Controller) error { // Connect to the bootstrap peer _, err = seeder.Connect(address, port) if err != nil { - return plugin.Error(pluginName, c.Errf("error connecting to %s:%s: %v", address, port, err)) + log.Errorf("error connecting to %s:%s: %v", address, port, err) + continue } + connectedToBootstrap = true + } + + if !connectedToBootstrap { + return plugin.Error(pluginName, c.Err("Failed to connect to any bootstrap peers!")) } // Send the initial request for more addresses; spawns goroutines to process the responses.