From 5bb1faee4241c147e2747643cf5af3a10f6c6e91 Mon Sep 17 00:00:00 2001 From: Ben Date: Mon, 22 Jan 2018 18:25:08 -0600 Subject: [PATCH] Fixes issue #34956 (#35149) (cherry picked from commit 9fdaa86c9fcca6d192e9e9416d584854e95bf6cc) --- lib/ansible/modules/windows/win_dns_client.ps1 | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/ansible/modules/windows/win_dns_client.ps1 b/lib/ansible/modules/windows/win_dns_client.ps1 index c842c0339f1..011aece0dbb 100644 --- a/lib/ansible/modules/windows/win_dns_client.ps1 +++ b/lib/ansible/modules/windows/win_dns_client.ps1 @@ -135,7 +135,11 @@ Function Get-DnsClientMatch { $current_dns_v4 = ($current_dns_all | Where-Object AddressFamily -eq 2 <# IPv4 #>).ServerAddresses - If ($current_dns_v4 -eq $null) { + If (($current_dns_v4 -eq $null) -and ($ipv4_addresses -eq $null)) { + $v4_match = $True + } + + ElseIf (($current_dns_v4 -eq $null) -or ($ipv4_addresses -eq $null)) { $v4_match = $False } @@ -166,10 +170,16 @@ Function Set-DnsClientAddresses ) Write-DebugLog ("Setting DNS addresses for adapter {0} to ({1})" -f $adapter_name, ($ipv4_addresses -join ", ")) + + If ($ipv4_addresses -eq $null) { + Set-DnsClientServerAddress -InterfaceAlias $adapter_name -ResetServerAddress + } + Else { # this silently ignores invalid IPs, so we validate parseability ourselves up front... - Set-DnsClientServerAddress -InterfaceAlias $adapter_name -ServerAddresses $ipv4_addresses - + Set-DnsClientServerAddress -InterfaceAlias $adapter_name -ServerAddresses $ipv4_addresses + } + # TODO: implement IPv6 }