More Windows fixes
authorJoseph C. Lehner <joseph.c.lehner@gmail.com>
Tue, 2 Feb 2016 12:19:05 +0000 (14:19 +0200)
committerJoseph C. Lehner <joseph.c.lehner@gmail.com>
Tue, 2 Feb 2016 12:19:05 +0000 (14:19 +0200)
ethsock.c

index f1e9bdfe186e878e386c33025efc9d1a564a2c30..ca1e7904175c4d52f761431e94c522ba5ec1bdb7 100644 (file)
--- a/ethsock.c
+++ b/ethsock.c
@@ -94,7 +94,14 @@ static bool get_hwaddr(uint8_t *hwaddr, const char *intf)
                                continue;
                        }
 
-                       if (!strcmp(adapter->AdapterName, intf)) {
+#ifndef NMRPFLASH_WINDOWS
+                       if (!strcmp(intf, adapter->AdapterName))
+#else
+                       /* Interface names from WinPcap are "\Device\NPF_{GUID}", while
+                        * AdapterName from GetAdaptersInfo is just "{GUID}".*/
+                       if (strstr(intf, adapter->AdapterName))
+#endif
+                       {
                                if (adapter->AddressLength == 6) {
                                        for (i = 0; i != 6; ++i) {
                                                hwaddr[i] = adapter->Address[i];
@@ -310,10 +317,6 @@ int ethsock_list_all(void)
        memset(hwaddr, 0, 6);
 
        for (dev = devs; dev; dev = dev->next) {
-               if (dev->flags & PCAP_IF_LOOPBACK) {
-                       continue;
-               }
-
                if (!is_ethernet(dev->name)) {
                        continue;
                }