mirror of
https://github.com/nadoo/glider.git
synced 2025-02-23 17:35:40 +08:00
strategy: when no forwarders, available set priority to 0
This commit is contained in:
parent
ac94540ab8
commit
1c2ad64000
@ -155,6 +155,8 @@ func (d *Dialer) initAvailable() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(d.available) == 0 {
|
if len(d.available) == 0 {
|
||||||
|
// no available forwarders, set priority to 0 to check all forwarders in check func
|
||||||
|
d.SetPriority(0)
|
||||||
log.F("[strategy] no available forwarders, just use: %s, please check your settings or network", d.fwdrs[0])
|
log.F("[strategy] no available forwarders, just use: %s, please check your settings or network", d.fwdrs[0])
|
||||||
d.available = append(d.available, d.fwdrs[0])
|
d.available = append(d.available, d.fwdrs[0])
|
||||||
}
|
}
|
||||||
@ -202,15 +204,16 @@ func (d *Dialer) check(i int) {
|
|||||||
for {
|
for {
|
||||||
time.Sleep(time.Duration(d.config.CheckInterval) * time.Second * time.Duration(retry>>1))
|
time.Sleep(time.Duration(d.config.CheckInterval) * time.Second * time.Duration(retry>>1))
|
||||||
|
|
||||||
|
// check all forwarders at least one time
|
||||||
|
if retry > 1 && f.Priority() < d.Priority() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
retry <<= 1
|
retry <<= 1
|
||||||
if retry > 16 {
|
if retry > 16 {
|
||||||
retry = 16
|
retry = 16
|
||||||
}
|
}
|
||||||
|
|
||||||
if f.Priority() < d.Priority() {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
startTime := time.Now()
|
startTime := time.Now()
|
||||||
rc, err := f.Dial("tcp", d.config.CheckWebSite)
|
rc, err := f.Dial("tcp", d.config.CheckWebSite)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user