mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-25 22:09:08 +01:00
Merge branch 'main' into fix/agentnet-bedrock-model-normalization
This commit is contained in:
+9
-4
@@ -1,19 +1,24 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"log"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
// nolint:gosec
|
// nolint:gosec
|
||||||
_ "net/http/pprof"
|
_ "net/http/pprof"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
|
|
||||||
"github.com/netbirdio/netbird/management/cmd"
|
"github.com/netbirdio/netbird/management/cmd"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
go func() {
|
if pprofAddr := os.Getenv("NB_PPROF_ADDR"); pprofAddr != "" {
|
||||||
log.Println(http.ListenAndServe("localhost:6060", nil))
|
log.Infof("pprof enabled, listening on: %s", pprofAddr)
|
||||||
}()
|
go func() {
|
||||||
|
log.Println(http.ListenAndServe(pprofAddr, nil))
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
|
||||||
if err := cmd.Execute(); err != nil {
|
if err := cmd.Execute(); err != nil {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"slices"
|
"slices"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/netbirdio/netbird/client/ssh/auth"
|
"github.com/netbirdio/netbird/client/ssh/auth"
|
||||||
@@ -42,6 +43,14 @@ type NetworkMapComponents struct {
|
|||||||
PostureFailedPeers map[string]map[string]struct{}
|
PostureFailedPeers map[string]map[string]struct{}
|
||||||
|
|
||||||
RouterPeers map[string]*nbpeer.Peer
|
RouterPeers map[string]*nbpeer.Peer
|
||||||
|
|
||||||
|
routesByPeerOnce sync.Once
|
||||||
|
routesByPeerIdx map[string][]routeIndexEntry
|
||||||
|
}
|
||||||
|
|
||||||
|
type routeIndexEntry struct {
|
||||||
|
route *route.Route
|
||||||
|
viaGroup bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type AccountSettingsInfo struct {
|
type AccountSettingsInfo struct {
|
||||||
@@ -530,33 +539,43 @@ func (c *NetworkMapComponents) getRoutingPeerRoutes(peerID string) (enabledRoute
|
|||||||
disabledRoutes = append(disabledRoutes, r)
|
disabledRoutes = append(disabledRoutes, r)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, r := range c.Routes {
|
for _, entry := range c.routesByPeer()[peerID] {
|
||||||
for _, groupID := range r.PeerGroups {
|
if entry.viaGroup {
|
||||||
group := c.GetGroupInfo(groupID)
|
newPeerRoute := entry.route.Copy()
|
||||||
if group == nil {
|
newPeerRoute.PeerGroups = nil
|
||||||
continue
|
newPeerRoute.ID = route.ID(string(entry.route.ID) + ":" + peerID)
|
||||||
}
|
takeRoute(newPeerRoute)
|
||||||
for _, id := range group.Peers {
|
continue
|
||||||
if id != peerID {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
newPeerRoute := r.Copy()
|
|
||||||
newPeerRoute.Peer = id
|
|
||||||
newPeerRoute.PeerGroups = nil
|
|
||||||
newPeerRoute.ID = route.ID(string(r.ID) + ":" + id)
|
|
||||||
takeRoute(newPeerRoute)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if r.Peer == peerID {
|
|
||||||
takeRoute(r.Copy())
|
|
||||||
}
|
}
|
||||||
|
takeRoute(entry.route.Copy())
|
||||||
}
|
}
|
||||||
|
|
||||||
return enabledRoutes, disabledRoutes
|
return enabledRoutes, disabledRoutes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *NetworkMapComponents) routesByPeer() map[string][]routeIndexEntry {
|
||||||
|
c.routesByPeerOnce.Do(func() {
|
||||||
|
idx := make(map[string][]routeIndexEntry)
|
||||||
|
for _, r := range c.Routes {
|
||||||
|
for _, groupID := range r.PeerGroups {
|
||||||
|
group := c.GetGroupInfo(groupID)
|
||||||
|
if group == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
for _, id := range group.Peers {
|
||||||
|
idx[id] = append(idx[id], routeIndexEntry{route: r, viaGroup: true})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if r.Peer != "" {
|
||||||
|
idx[r.Peer] = append(idx[r.Peer], routeIndexEntry{route: r})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
c.routesByPeerIdx = idx
|
||||||
|
})
|
||||||
|
|
||||||
|
return c.routesByPeerIdx
|
||||||
|
}
|
||||||
|
|
||||||
func (c *NetworkMapComponents) filterRoutesByGroups(routes []*route.Route, groupListMap LookupMap) []*route.Route {
|
func (c *NetworkMapComponents) filterRoutesByGroups(routes []*route.Route, groupListMap LookupMap) []*route.Route {
|
||||||
var filteredRoutes []*route.Route
|
var filteredRoutes []*route.Route
|
||||||
for _, r := range routes {
|
for _, r := range routes {
|
||||||
|
|||||||
Reference in New Issue
Block a user