summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Pluim <rpluim@gmail.com>2019-11-27 10:41:32 +0100
committerRobert Pluim <rpluim@gmail.com>2019-11-28 09:41:28 +0100
commitb05aa8d742d80aeb692c54289e8ccb074a68bf51 (patch)
tree039d002db29ac1cacac44fa5def51b5440e4e337
parent25d4bf4fe0f0765f04404399b50cda91e827315e (diff)
downloademacs-b05aa8d742d80aeb692c54289e8ccb074a68bf51.tar.gz
Support wlan in network-interface-list on pre-Vista Windows
* src/w32.c (network_interface_list): Check for 'Wireless' in adapter description to support pre-Vista Windows.
-rw-r--r--src/w32.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/w32.c b/src/w32.c
index a6ebe55ee4d..9f3c1b5d6ed 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -9540,8 +9540,23 @@ network_interface_list (bool full, unsigned short match)
switch (adapter->IfType)
{
case IF_TYPE_ETHERNET_CSMACD:
- ifmt_idx = ETHERNET;
- if_num = eth_count++;
+ /* Windows before Vista reports wireless adapters as
+ Ethernet. Work around by looking at the Description
+ string. */
+ {
+ char description[MAX_UTF8_PATH];
+ if (filename_from_utf16 (adapter->Description, description) == 0
+ && strstr (description, "Wireless "))
+ {
+ ifmt_idx = WLAN;
+ if_num = wlan_count++;
+ }
+ else
+ {
+ ifmt_idx = ETHERNET;
+ if_num = eth_count++;
+ }
+ }
break;
case IF_TYPE_ISO88025_TOKENRING:
ifmt_idx = TOKENRING;