Add no route event

This commit is contained in:
世界 2023-08-07 15:26:26 +08:00
parent 688d4da4b7
commit 59b86002c4
No known key found for this signature in database
GPG key ID: CD109927C34A63C4
2 changed files with 9 additions and 3 deletions

View file

@ -15,8 +15,9 @@ type (
) )
const ( const (
EventInterfaceUpdate = 1 EventInterfaceUpdate = iota
EventAndroidVPNUpdate = 2 EventAndroidVPNUpdate
EventNoRoute
) )
type NetworkUpdateMonitor interface { type NetworkUpdateMonitor interface {

View file

@ -4,6 +4,7 @@ package tun
import ( import (
"context" "context"
"errors"
"net" "net"
"net/netip" "net/netip"
"sync" "sync"
@ -84,7 +85,11 @@ func (m *defaultInterfaceMonitor) delayCheckUpdate() error {
if err != nil { if err != nil {
m.networkMonitor.NewError(context.Background(), E.Cause(err, "update interfaces")) m.networkMonitor.NewError(context.Background(), E.Cause(err, "update interfaces"))
} }
return m.checkUpdate() err = m.checkUpdate()
if errors.Is(err, ErrNoRoute) {
m.emit(EventNoRoute)
}
return err
} }
func (m *defaultInterfaceMonitor) updateInterfaces() error { func (m *defaultInterfaceMonitor) updateInterfaces() error {