mirror of
https://github.com/netbirdio/netbird.git
synced 2025-06-20 09:47:49 +02:00
Fix route notification
On Android ignore the dynamic roots in the route notifications
This commit is contained in:
parent
7c6b85b4cb
commit
91f7ee6a3c
@ -32,7 +32,6 @@ func (n *Notifier) SetListener(listener listener.NetworkChangeListener) {
|
|||||||
func (n *Notifier) SetInitialClientRoutes(clientRoutes []*route.Route) {
|
func (n *Notifier) SetInitialClientRoutes(clientRoutes []*route.Route) {
|
||||||
nets := make([]string, 0)
|
nets := make([]string, 0)
|
||||||
for _, r := range clientRoutes {
|
for _, r := range clientRoutes {
|
||||||
// filter out domain routes
|
|
||||||
if r.IsDynamic() {
|
if r.IsDynamic() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -46,30 +45,27 @@ func (n *Notifier) OnNewRoutes(idMap route.HAMap) {
|
|||||||
if runtime.GOOS != "android" {
|
if runtime.GOOS != "android" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
newNets := make([]string, 0)
|
|
||||||
|
var newNets []string
|
||||||
for _, routes := range idMap {
|
for _, routes := range idMap {
|
||||||
for _, r := range routes {
|
for _, r := range routes {
|
||||||
|
if r.IsDynamic() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
newNets = append(newNets, r.Network.String())
|
newNets = append(newNets, r.Network.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sort.Strings(newNets)
|
sort.Strings(newNets)
|
||||||
switch runtime.GOOS {
|
|
||||||
case "android":
|
|
||||||
if !n.hasDiff(n.initialRouteRanges, newNets) {
|
if !n.hasDiff(n.initialRouteRanges, newNets) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
default:
|
|
||||||
if !n.hasDiff(n.routeRanges, newNets) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
n.routeRanges = newNets
|
n.routeRanges = newNets
|
||||||
|
|
||||||
n.notify()
|
n.notify()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OnNewPrefixes is called from iOS only
|
||||||
func (n *Notifier) OnNewPrefixes(prefixes []netip.Prefix) {
|
func (n *Notifier) OnNewPrefixes(prefixes []netip.Prefix) {
|
||||||
newNets := make([]string, 0)
|
newNets := make([]string, 0)
|
||||||
for _, prefix := range prefixes {
|
for _, prefix := range prefixes {
|
||||||
@ -77,19 +73,11 @@ func (n *Notifier) OnNewPrefixes(prefixes []netip.Prefix) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sort.Strings(newNets)
|
sort.Strings(newNets)
|
||||||
switch runtime.GOOS {
|
|
||||||
case "android":
|
|
||||||
if !n.hasDiff(n.initialRouteRanges, newNets) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
if !n.hasDiff(n.routeRanges, newNets) {
|
if !n.hasDiff(n.routeRanges, newNets) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
n.routeRanges = newNets
|
n.routeRanges = newNets
|
||||||
|
|
||||||
n.notify()
|
n.notify()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user