This commit is contained in:
mzz2017
2023-01-28 15:59:53 +08:00
parent cd4d3ada3e
commit f8d40e03c1
3 changed files with 9 additions and 3 deletions

View File

@ -84,13 +84,16 @@ func (a *AliveDialerSet) SetAlive(dialer *Dialer, alive bool) {
var (
latency time.Duration
hasLatency bool
minPolicy bool
)
switch a.selectionPolicy {
case consts.DialerSelectionPolicy_MinLastLatency:
latency, hasLatency = dialer.Latencies10.LastLatency()
minPolicy = true
case consts.DialerSelectionPolicy_MinAverage10Latencies:
latency, hasLatency = dialer.Latencies10.AvgLatency()
minPolicy = true
}
if alive {
@ -128,8 +131,9 @@ func (a *AliveDialerSet) SetAlive(dialer *Dialer, alive bool) {
// This dialer is already not alive.
}
}
oldBestDialer := a.minLatency.dialer
if hasLatency {
oldBestDialer := a.minLatency.dialer
// Calc minLatency.
a.dialerToLatency[dialer] = latency
if latency < a.minLatency.latency {
@ -144,7 +148,7 @@ func (a *AliveDialerSet) SetAlive(dialer *Dialer, alive bool) {
a.log.Infof("Group [%v] switched dialer to <%v> (%v): %v", a.dialerGroupName, a.minLatency.dialer.Name(), a.selectionPolicy, a.minLatency.latency)
}
} else {
if alive && a.minLatency.dialer == nil {
if alive && minPolicy && a.minLatency.dialer == nil {
// Use first dialer if no dialer has alive state.
a.minLatency.dialer = dialer
a.log.Infof("Group [%v] switched dialer to <%v>", a.dialerGroupName, a.minLatency.dialer.Name())

View File

@ -55,7 +55,7 @@ group {
routing {
domain(geosite:category-ads) -> block
l4proto(udp) && mac('02:42:ac:11:00:03') -> BT
l4proto(udp) && mac('02:42:ac:11:00:03') -> my_group
domain(geosite:category-ads) -> block
domain(geosite:disney) -> disney
domain(geosite:netflix) -> netflix

View File

@ -16,6 +16,8 @@ func NewLogger(verbose int) *logrus.Logger {
level = logrus.WarnLevel
case 1:
level = logrus.InfoLevel
case 2:
level = logrus.DebugLevel
default:
level = logrus.TraceLevel
}