|
@@ -560,13 +560,12 @@ func (r *Router) Start() error {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if needWIFIStateFromRuleSet || r.needWIFIState {
|
|
|
+ if (needWIFIStateFromRuleSet || r.needWIFIState) && r.platformInterface != nil {
|
|
|
monitor.Start("initialize WIFI state")
|
|
|
- if r.platformInterface != nil && r.interfaceMonitor != nil {
|
|
|
- r.interfaceMonitor.RegisterCallback(func(_ int) {
|
|
|
- r.updateWIFIState()
|
|
|
- })
|
|
|
- }
|
|
|
+ r.needWIFIState = true
|
|
|
+ r.interfaceMonitor.RegisterCallback(func(_ int) {
|
|
|
+ r.updateWIFIState()
|
|
|
+ })
|
|
|
r.updateWIFIState()
|
|
|
monitor.Finish()
|
|
|
}
|
|
@@ -716,6 +715,10 @@ func (r *Router) RuleSet(tag string) (adapter.RuleSet, bool) {
|
|
|
return ruleSet, loaded
|
|
|
}
|
|
|
|
|
|
+func (r *Router) NeedWIFIState() bool {
|
|
|
+ return r.needWIFIState
|
|
|
+}
|
|
|
+
|
|
|
func (r *Router) RouteConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error {
|
|
|
if r.pauseManager.IsDevicePaused() {
|
|
|
return E.New("reject connection to ", metadata.Destination, " while device paused")
|