service_pause.go 620 B

123456789101112131415161718192021222324252627282930313233343536
  1. package libbox
  2. import (
  3. "time"
  4. C "github.com/sagernet/sing-box/constant"
  5. )
  6. type iOSPauseFields struct {
  7. endPauseTimer *time.Timer
  8. }
  9. func (s *BoxService) Pause() {
  10. s.pauseManager.DevicePause()
  11. if C.IsIos {
  12. if s.endPauseTimer == nil {
  13. s.endPauseTimer = time.AfterFunc(time.Minute, s.pauseManager.DeviceWake)
  14. } else {
  15. s.endPauseTimer.Reset(time.Minute)
  16. }
  17. }
  18. }
  19. func (s *BoxService) Wake() {
  20. if !C.IsIos {
  21. s.pauseManager.DeviceWake()
  22. }
  23. }
  24. func (s *BoxService) ResetNetwork() {
  25. s.instance.Router().ResetNetwork()
  26. }
  27. func (s *BoxService) UpdateWIFIState() {
  28. s.instance.Network().UpdateWIFIState()
  29. }