mirror of
https://github.com/SagerNet/sing-box.git
synced 2026-10-25 05:41:07 +00:00
Fix reset network
This commit is contained in:
parent
d9290bc940
commit
ae0c62aae8
3 changed files with 8 additions and 9 deletions
|
|
@ -280,7 +280,6 @@ func (r *Router) NeighborResolver() adapter.NeighborResolver {
|
|||
}
|
||||
|
||||
func (r *Router) ResetNetwork() {
|
||||
r.network.ResetNetwork()
|
||||
r.httpClientManager.ResetNetwork()
|
||||
r.dns.ResetNetwork()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ type Service struct {
|
|||
boxService.Adapter
|
||||
ctx context.Context
|
||||
logger log.ContextLogger
|
||||
router adapter.Router
|
||||
network adapter.NetworkManager
|
||||
timerConfig timerConfig
|
||||
adaptiveTimer *adaptiveTimer
|
||||
lastReportTime atomic.Int64
|
||||
|
|
@ -44,13 +44,13 @@ func NewService(ctx context.Context, logger log.ContextLogger, tag string, optio
|
|||
Adapter: boxService.NewAdapter(boxConstant.TypeOOMKiller, tag),
|
||||
ctx: ctx,
|
||||
logger: logger,
|
||||
router: service.FromContext[adapter.Router](ctx),
|
||||
network: service.FromContext[adapter.NetworkManager](ctx),
|
||||
timerConfig: config,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Service) createTimer() {
|
||||
s.adaptiveTimer = newAdaptiveTimer(s.logger, s.router, s.timerConfig, s.writeOOMReport)
|
||||
s.adaptiveTimer = newAdaptiveTimer(s.logger, s.network, s.timerConfig, s.writeOOMReport)
|
||||
}
|
||||
|
||||
func (s *Service) startTimer() {
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ func buildTimerConfig(options option.OOMKillerServiceOptions, memoryLimit uint64
|
|||
type adaptiveTimer struct {
|
||||
timerConfig
|
||||
logger log.ContextLogger
|
||||
router adapter.Router
|
||||
network adapter.NetworkManager
|
||||
onTriggered func(uint64)
|
||||
limitThresholds pressureThresholds
|
||||
|
||||
|
|
@ -115,11 +115,11 @@ type adaptiveTimer struct {
|
|||
pressureBaselineTime time.Time
|
||||
}
|
||||
|
||||
func newAdaptiveTimer(logger log.ContextLogger, router adapter.Router, config timerConfig, onTriggered func(uint64)) *adaptiveTimer {
|
||||
func newAdaptiveTimer(logger log.ContextLogger, network adapter.NetworkManager, config timerConfig, onTriggered func(uint64)) *adaptiveTimer {
|
||||
t := &adaptiveTimer{
|
||||
timerConfig: config,
|
||||
logger: logger,
|
||||
router: router,
|
||||
network: network,
|
||||
onTriggered: onTriggered,
|
||||
}
|
||||
if config.policyMode == policyModeMemoryLimit || config.policyMode == policyModeNetworkExtension {
|
||||
|
|
@ -218,14 +218,14 @@ func (t *adaptiveTimer) poll() {
|
|||
t.logger.Warn("memory growth rate critical (report only), usage: ", byteformats.FormatMemoryBytes(sample.usage), t.logDetails(sample))
|
||||
} else {
|
||||
t.logger.Error("memory growth rate critical, usage: ", byteformats.FormatMemoryBytes(sample.usage), t.logDetails(sample), ", resetting network")
|
||||
t.router.ResetNetwork()
|
||||
t.network.ResetNetwork()
|
||||
}
|
||||
} else {
|
||||
if t.killerDisabled {
|
||||
t.logger.Warn("memory threshold reached (report only), usage: ", byteformats.FormatMemoryBytes(sample.usage), t.logDetails(sample))
|
||||
} else {
|
||||
t.logger.Error("memory threshold reached, usage: ", byteformats.FormatMemoryBytes(sample.usage), t.logDetails(sample), ", resetting network")
|
||||
t.router.ResetNetwork()
|
||||
t.network.ResetNetwork()
|
||||
}
|
||||
}
|
||||
badCleanup()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue