From 64a26b221ba4dc625f54a48ff682350a734e3b64 Mon Sep 17 00:00:00 2001 From: Aaron Klotz Date: Fri, 1 Dec 2023 14:57:29 -0700 Subject: [PATCH] net/dns: use an additional registry setting to disable dynamic DNS updates for our interface on Windows Fixes #9775 Signed-off-by: Aaron Klotz --- net/dns/manager_windows.go | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/net/dns/manager_windows.go b/net/dns/manager_windows.go index 4c05b7718..3b0039894 100644 --- a/net/dns/manager_windows.go +++ b/net/dns/manager_windows.go @@ -399,11 +399,24 @@ func (m *windowsManager) Close() error { // Windows DHCP client from sending dynamic DNS updates for our interface to // AD domain controllers. func (m *windowsManager) disableDynamicUpdates() error { - if err := m.setSingleDWORD(winutil.IPv4TCPIPInterfacePrefix, "DisableDynamicUpdate", 1); err != nil { - return err + prefixen := []winutil.RegistryPathPrefix{ + winutil.IPv4TCPIPInterfacePrefix, + winutil.IPv6TCPIPInterfacePrefix, } - if err := m.setSingleDWORD(winutil.IPv6TCPIPInterfacePrefix, "DisableDynamicUpdate", 1); err != nil { - return err + + for _, prefix := range prefixen { + k, err := m.openInterfaceKey(prefix) + if err != nil { + return err + } + defer k.Close() + + if err := k.SetDWordValue("DisableDynamicUpdate", 1); err != nil { + return err + } + if err := k.SetDWordValue("MaxNumberOfAddressesToRegister", 0); err != nil { + return err + } } return nil }