🎨 Add retry to improve network check

This commit is contained in:
Liang Ding 2023-04-04 10:21:34 +08:00
parent 5ad353f238
commit de1c01a2e8
No known key found for this signature in database
GPG Key ID: 136F30F901A2231D
2 changed files with 11 additions and 18 deletions

View File

@ -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 {

View File

@ -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 { func isOnline(checkURL string) (ret bool) {
c := req.C().SetTimeout(1 * time.Second) for i := 0; i < 3; i++ {
_, err := c.R().Head(checkURL) c := req.C().SetTimeout(3 * time.Second)
return nil == err _, err := c.R().Head(checkURL)
ret = nil == err
if ret {
break
}
}
return
} }
func GetRemoteAddr(session *melody.Session) string { func GetRemoteAddr(session *melody.Session) string {