Browse Source

:art: Add retry to improve network check

Liang Ding 2 years ago
parent
commit
f87f27b352
2 changed files with 11 additions and 18 deletions
  1. 1 1
      kernel/model/sync.go
  2. 10 17
      kernel/util/net.go

+ 1 - 1
kernel/model/sync.go

@@ -576,7 +576,7 @@ func isProviderOnline() (ret bool) {
 		checkURL = Conf.Sync.WebDAV.Endpoint
 		checkURL = Conf.Sync.WebDAV.Endpoint
 	default:
 	default:
 		logging.LogWarnf("unknown provider: %d", Conf.Sync.Provider)
 		logging.LogWarnf("unknown provider: %d", Conf.Sync.Provider)
-		util.IsOnline("")
+		return false
 	}
 	}
 
 
 	if ret = util.IsOnline(checkURL); !ret {
 	if ret = util.IsOnline(checkURL); !ret {

+ 10 - 17
kernel/util/net.go

@@ -33,19 +33,6 @@ import (
 
 
 func IsOnline(checkURL string) bool {
 func IsOnline(checkURL string) bool {
 	if "" == checkURL {
 	if "" == checkURL {
-		if isOnline("https://www.baidu.com") {
-			return true
-		}
-
-		if isOnline("https://icanhazip.com") {
-			return true
-		}
-
-		if isOnline("https://api.ipify.org") {
-			return true
-		}
-
-		logging.LogWarnf("network is offline")
 		return false
 		return false
 	}
 	}
 
 
@@ -57,10 +44,16 @@ func IsOnline(checkURL string) bool {
 	return false
 	return false
 }
 }
 
 
-func isOnline(checkURL string) bool {
-	c := req.C().SetTimeout(1 * time.Second)
-	_, err := c.R().Head(checkURL)
-	return nil == err
+func isOnline(checkURL string) (ret bool) {
+	for i := 0; i < 3; i++ {
+		c := req.C().SetTimeout(3 * time.Second)
+		_, err := c.R().Head(checkURL)
+		ret = nil == err
+		if ret {
+			break
+		}
+	}
+	return
 }
 }
 
 
 func GetRemoteAddr(session *melody.Session) string {
 func GetRemoteAddr(session *melody.Session) string {