diff --git a/home/control_update.go b/home/control_update.go index 163c3acd..92c82f1e 100644 --- a/home/control_update.go +++ b/home/control_update.go @@ -85,8 +85,17 @@ 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 + // https://github.com/AdguardTeam/AdGuardHome/issues/934 + continue + } + break + } if err != nil { httpError(w, http.StatusBadGateway, "Couldn't get version check json from %s: %T %s\n", versionCheckURL, err, err) return