]> git.ipfire.org Git - thirdparty/wireguard-tools.git/commitdiff
ipc: windows: don't display disabled adapters
authorJason A. Donenfeld <Jason@zx2c4.com>
Tue, 29 Jun 2021 23:56:24 +0000 (01:56 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Tue, 20 Jul 2021 11:24:18 +0000 (13:24 +0200)
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
src/ipc-windows.h

index 9c72a62279c13c2316957ae3e9a3bfe044b5df92..d19860e6b3f9f92c4a41c8e0f15cb9ccfa1a5a9e 100644 (file)
@@ -37,6 +37,7 @@ static int kernel_get_wireguard_interfaces(struct string_list *list)
                SP_DEVINFO_DATA dev_info_data = { .cbSize = sizeof(SP_DEVINFO_DATA) };
                HKEY key;
                GUID instance_id;
+               ULONG status, problem_code;
                char *interface_name;
                struct hashtable_entry *entry;
 
@@ -110,7 +111,9 @@ static int kernel_get_wireguard_interfaces(struct string_list *list)
                        goto cleanup_buf;
                }
 
-               string_list_add(list, interface_name);
+               if (CM_Get_DevNode_Status(&status, &problem_code, dev_info_data.DevInst, 0) == CR_SUCCESS &&
+                   (status & (DN_DRIVER_LOADED | DN_STARTED)) == (DN_DRIVER_LOADED | DN_STARTED))
+                       string_list_add(list, interface_name);
 
                entry = hashtable_find_or_insert_entry(&cached_kernel_interfaces, interface_name);
                free(interface_name);