service_pause.go 705 B

123456789101112131415161718192021222324252627282930313233343536373839
  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. s.instance.Router().ResetNetwork()
  13. } else {
  14. if s.endPauseTimer == nil {
  15. s.endPauseTimer = time.AfterFunc(time.Minute, s.pauseManager.DeviceWake)
  16. } else {
  17. s.endPauseTimer.Reset(time.Minute)
  18. }
  19. }
  20. }
  21. func (s *BoxService) Wake() {
  22. if !C.IsIos {
  23. s.pauseManager.DeviceWake()
  24. s.instance.Router().ResetNetwork()
  25. }
  26. }
  27. func (s *BoxService) ResetNetwork() {
  28. s.instance.Router().ResetNetwork()
  29. }
  30. func (s *BoxService) UpdateWIFIState() {
  31. s.instance.Network().UpdateWIFIState()
  32. }