Fix GetAdapterAddresses flags bug
Retrieve adapters by skipping multicast and IPv6 unicast addresses. Change-Id: I09d6e3593111c200a15f5713d6f4f676a3bcbb6a
This commit is contained in:
parent
b56f0d2aa7
commit
1b28f141dc
@ -171,9 +171,12 @@ class WindowsNetworkUtilsTests(unittest.TestCase):
|
||||
(mock_socket_addr_to_str.return_value,
|
||||
unicast_addr.Address.lpSockaddr.contents.sa_family)]
|
||||
|
||||
filter_flags = (self.network.iphlpapi.GAA_FLAG_SKIP_ANYCAST |
|
||||
self.network.iphlpapi.GAA_FLAG_SKIP_MULTICAST)
|
||||
|
||||
compare_GetAdaptersAddresses = [mock.call(
|
||||
self.network.ws2_32.AF_UNSPEC,
|
||||
self.network.iphlpapi.GAA_FLAG_SKIP_ANYCAST,
|
||||
filter_flags,
|
||||
None, None, mock_byref.return_value)]
|
||||
|
||||
if not p:
|
||||
@ -187,7 +190,7 @@ class WindowsNetworkUtilsTests(unittest.TestCase):
|
||||
|
||||
compare_GetAdaptersAddresses.append(mock.call(
|
||||
self.network.ws2_32.AF_UNSPEC,
|
||||
self.network.iphlpapi.GAA_FLAG_SKIP_ANYCAST, None,
|
||||
filter_flags, None,
|
||||
p_curr_addr, mock_byref.return_value))
|
||||
|
||||
else:
|
||||
@ -208,7 +211,7 @@ class WindowsNetworkUtilsTests(unittest.TestCase):
|
||||
|
||||
compare_GetAdaptersAddresses.append(mock.call(
|
||||
self.network.ws2_32.AF_UNSPEC,
|
||||
self.network.iphlpapi.GAA_FLAG_SKIP_ANYCAST, None,
|
||||
filter_flags, None,
|
||||
p_curr_addr, mock_byref.return_value))
|
||||
|
||||
if ret_val2 == self.network.kernel32.ERROR_NO_DATA:
|
||||
|
@ -25,7 +25,7 @@ MAX_ADAPTER_DESCRIPTION_LENGTH = 128
|
||||
MAX_ADAPTER_ADDRESS_LENGTH = 8
|
||||
|
||||
GAA_FLAG_SKIP_ANYCAST = 2
|
||||
GAA_FLAG_SKIP_ANYCAST = 4
|
||||
GAA_FLAG_SKIP_MULTICAST = 4
|
||||
|
||||
IP_ADAPTER_DHCP_ENABLED = 4
|
||||
IP_ADAPTER_IPV4_ENABLED = 0x80
|
||||
|
@ -67,11 +67,13 @@ def _get_registry_dhcp_server(adapter_name):
|
||||
|
||||
def get_adapter_addresses():
|
||||
net_adapters = []
|
||||
filter_flags = (iphlpapi.GAA_FLAG_SKIP_ANYCAST |
|
||||
iphlpapi.GAA_FLAG_SKIP_MULTICAST)
|
||||
|
||||
size = wintypes.ULONG()
|
||||
ret_val = iphlpapi.GetAdaptersAddresses(
|
||||
ws2_32.AF_UNSPEC,
|
||||
iphlpapi.GAA_FLAG_SKIP_ANYCAST,
|
||||
filter_flags,
|
||||
None, None, ctypes.byref(size))
|
||||
|
||||
if ret_val == kernel32.ERROR_NO_DATA:
|
||||
@ -91,7 +93,7 @@ def get_adapter_addresses():
|
||||
|
||||
ret_val = iphlpapi.GetAdaptersAddresses(
|
||||
ws2_32.AF_UNSPEC,
|
||||
iphlpapi.GAA_FLAG_SKIP_ANYCAST,
|
||||
filter_flags,
|
||||
None, p_addr, ctypes.byref(size))
|
||||
|
||||
if ret_val == kernel32.ERROR_NO_DATA:
|
||||
|
Loading…
x
Reference in New Issue
Block a user