Skip to content

Commit 4e03f70

Browse files
authored
fix dns forwarder port update (#4613)
fix dns forwarder port update (#4613)
1 parent 654aa95 commit 4e03f70

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

client/internal/dnsfwd/manager.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ type Manager struct {
4040
fwRules []firewall.Rule
4141
tcpRules []firewall.Rule
4242
dnsForwarder *DNSForwarder
43-
port uint16
4443
}
4544

4645
func ListenPort() uint16 {
@@ -49,11 +48,16 @@ func ListenPort() uint16 {
4948
return listenPort
5049
}
5150

52-
func NewManager(fw firewall.Manager, statusRecorder *peer.Status, port uint16) *Manager {
51+
func SetListenPort(port uint16) {
52+
listenPortMu.Lock()
53+
listenPort = port
54+
listenPortMu.Unlock()
55+
}
56+
57+
func NewManager(fw firewall.Manager, statusRecorder *peer.Status) *Manager {
5358
return &Manager{
5459
firewall: fw,
5560
statusRecorder: statusRecorder,
56-
port: port,
5761
}
5862
}
5963

@@ -67,12 +71,6 @@ func (m *Manager) Start(fwdEntries []*ForwarderEntry) error {
6771
return err
6872
}
6973

70-
if m.port > 0 {
71-
listenPortMu.Lock()
72-
listenPort = m.port
73-
listenPortMu.Unlock()
74-
}
75-
7674
m.dnsForwarder = NewDNSForwarder(fmt.Sprintf(":%d", ListenPort()), dnsTTL, m.firewall, m.statusRecorder)
7775
go func() {
7876
if err := m.dnsForwarder.Listen(fwdEntries); err != nil {

client/internal/engine.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1849,6 +1849,10 @@ func (e *Engine) updateDNSForwarder(
18491849
return
18501850
}
18511851

1852+
if forwarderPort > 0 {
1853+
dnsfwd.SetListenPort(forwarderPort)
1854+
}
1855+
18521856
if !enabled {
18531857
if e.dnsForwardMgr == nil {
18541858
return
@@ -1862,7 +1866,7 @@ func (e *Engine) updateDNSForwarder(
18621866
if len(fwdEntries) > 0 {
18631867
switch {
18641868
case e.dnsForwardMgr == nil:
1865-
e.dnsForwardMgr = dnsfwd.NewManager(e.firewall, e.statusRecorder, forwarderPort)
1869+
e.dnsForwardMgr = dnsfwd.NewManager(e.firewall, e.statusRecorder)
18661870
if err := e.dnsForwardMgr.Start(fwdEntries); err != nil {
18671871
log.Errorf("failed to start DNS forward: %v", err)
18681872
e.dnsForwardMgr = nil
@@ -1892,7 +1896,7 @@ func (e *Engine) restartDnsFwd(fwdEntries []*dnsfwd.ForwarderEntry, forwarderPor
18921896
if err := e.dnsForwardMgr.Stop(context.Background()); err != nil {
18931897
log.Errorf("failed to stop DNS forward: %v", err)
18941898
}
1895-
e.dnsForwardMgr = dnsfwd.NewManager(e.firewall, e.statusRecorder, forwarderPort)
1899+
e.dnsForwardMgr = dnsfwd.NewManager(e.firewall, e.statusRecorder)
18961900
if err := e.dnsForwardMgr.Start(fwdEntries); err != nil {
18971901
log.Errorf("failed to start DNS forward: %v", err)
18981902
e.dnsForwardMgr = nil

0 commit comments

Comments
 (0)