@@ -10,6 +10,7 @@ import (
1010 "runtime"
1111 "slices"
1212 "sync"
13+ "sync/atomic"
1314 "time"
1415
1516 "github.com/google/uuid"
@@ -23,6 +24,7 @@ import (
2324 "github.com/netbirdio/netbird/client/iface/netstack"
2425 "github.com/netbirdio/netbird/client/internal/dns"
2526 "github.com/netbirdio/netbird/client/internal/listener"
27+ nbdns "github.com/netbirdio/netbird/dns"
2628 "github.com/netbirdio/netbird/client/internal/peer"
2729 "github.com/netbirdio/netbird/client/internal/peerstore"
2830 "github.com/netbirdio/netbird/client/internal/routemanager/client"
@@ -54,6 +56,7 @@ type Manager interface {
5456 SetRouteChangeListener (listener listener.NetworkChangeListener )
5557 InitialRouteRange () []string
5658 SetFirewall (firewall.Manager ) error
59+ SetDNSForwarderPort (port uint16 )
5760 Stop (stateManager * statemanager.Manager )
5861}
5962
@@ -101,6 +104,7 @@ type DefaultManager struct {
101104 disableServerRoutes bool
102105 activeRoutes map [route.HAUniqueID ]client.RouteHandler
103106 fakeIPManager * fakeip.Manager
107+ dnsForwarderPort atomic.Uint32
104108}
105109
106110func NewManager (config ManagerConfig ) * DefaultManager {
@@ -130,6 +134,7 @@ func NewManager(config ManagerConfig) *DefaultManager {
130134 disableServerRoutes : config .DisableServerRoutes ,
131135 activeRoutes : make (map [route.HAUniqueID ]client.RouteHandler ),
132136 }
137+ dm .dnsForwarderPort .Store (uint32 (nbdns .ForwarderClientPort ))
133138
134139 useNoop := netstack .IsEnabled () || config .DisableClientRoutes
135140 dm .setupRefCounters (useNoop )
@@ -270,6 +275,11 @@ func (m *DefaultManager) SetFirewall(firewall firewall.Manager) error {
270275 return nil
271276}
272277
278+ // SetDNSForwarderPort sets the DNS forwarder port for route handlers
279+ func (m * DefaultManager ) SetDNSForwarderPort (port uint16 ) {
280+ m .dnsForwarderPort .Store (uint32 (port ))
281+ }
282+
273283// Stop stops the manager watchers and clean firewall rules
274284func (m * DefaultManager ) Stop (stateManager * statemanager.Manager ) {
275285 m .stop ()
@@ -345,6 +355,7 @@ func (m *DefaultManager) updateSystemRoutes(newRoutes route.HAMap) error {
345355 UseNewDNSRoute : m .useNewDNSRoute ,
346356 Firewall : m .firewall ,
347357 FakeIPManager : m .fakeIPManager ,
358+ ForwarderPort : & m .dnsForwarderPort ,
348359 }
349360 handler := client .HandlerFromRoute (params )
350361 if err := handler .AddRoute (m .ctx ); err != nil {
0 commit comments