From 815489c0ffbf66a048b2f4797824829e8d887d8f Mon Sep 17 00:00:00 2001 From: Simon Zolin Date: Mon, 26 Aug 2019 16:02:56 +0300 Subject: [PATCH] * /control/version.json: retry up to 3 times after DNS resolve of static.adguard.com has failed --- home/control_update.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/home/control_update.go b/home/control_update.go index 163c3acd..ca2ac63e 100644 --- a/home/control_update.go +++ b/home/control_update.go @@ -85,8 +85,16 @@ func handleGetVersionJSON(w http.ResponseWriter, r *http.Request) { } } - log.Tracef("Downloading data from %s", versionCheckURL) - resp, err := config.client.Get(versionCheckURL) + var resp *http.Response + for i := 0; i != 3; i++ { + log.Tracef("Downloading data from %s", versionCheckURL) + resp, err = config.client.Get(versionCheckURL) + if err != nil && strings.HasSuffix(err.Error(), "i/o timeout") { + // This case may happen while we're restarting DNS server + continue + } + break + } if err != nil { httpError(w, http.StatusBadGateway, "Couldn't get version check json from %s: %T %s\n", versionCheckURL, err, err) return