mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-04 12:39:06 +02:00
Refactor route handling to use RouteWithResourceId for improved state management
This commit is contained in:
@@ -109,7 +109,7 @@ type LocalPeerState struct {
|
||||
PubKey string
|
||||
KernelInterface bool
|
||||
FQDN string
|
||||
Routes map[string]struct{}
|
||||
Routes map[RouteWithResourceId]struct{}
|
||||
}
|
||||
|
||||
// Clone returns a copy of the LocalPeerState
|
||||
@@ -372,7 +372,7 @@ func (d *Status) CheckRoutes(src, dst netip.Addr) (srcMatchedPeerIP string, dstM
|
||||
// check local peer routes.
|
||||
if d.localPeer.Routes != nil {
|
||||
for route := range d.localPeer.Routes {
|
||||
prefix, err := netip.ParsePrefix(route)
|
||||
prefix, err := netip.ParsePrefix(route.Route)
|
||||
if err != nil {
|
||||
log.Debugf("failed to parse route %s: %v", route, err)
|
||||
continue
|
||||
|
||||
@@ -104,7 +104,10 @@ func (m *serverRouter) removeFromServerNetwork(route *route.Route) error {
|
||||
delete(m.routes, route.ID)
|
||||
|
||||
state := m.statusRecorder.GetLocalPeerState()
|
||||
delete(state.Routes, route.Network.String())
|
||||
delete(state.Routes, peer.RouteWithResourceId{
|
||||
Route: route.Network.String(),
|
||||
ResourceId: route.GetResourceID(),
|
||||
})
|
||||
m.statusRecorder.UpdateLocalPeerState(state)
|
||||
|
||||
return nil
|
||||
@@ -133,14 +136,17 @@ func (m *serverRouter) addToServerNetwork(route *route.Route) error {
|
||||
|
||||
state := m.statusRecorder.GetLocalPeerState()
|
||||
if state.Routes == nil {
|
||||
state.Routes = map[string]struct{}{}
|
||||
state.Routes = map[peer.RouteWithResourceId]struct{}{}
|
||||
}
|
||||
|
||||
routeStr := route.Network.String()
|
||||
if route.IsDynamic() {
|
||||
routeStr = route.Domains.SafeString()
|
||||
}
|
||||
state.Routes[routeStr] = struct{}{}
|
||||
state.Routes[peer.RouteWithResourceId{
|
||||
Route: routeStr,
|
||||
ResourceId: route.GetResourceID(),
|
||||
}] = struct{}{}
|
||||
|
||||
m.statusRecorder.UpdateLocalPeerState(state)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user