Browse code

Detect TAP interfaces with root-enumerated hardware ID

This patch extends the TAP interface enumerating to detect the TAP
interfaces registered using "root\tap0901" hardware ID. Before, only TAP
interfaces with legacy "tap0901" HWID were detected by openvpn.exe.

The openvpnmsica.dll and tapctl.exe install TAP interfaces using root-
enumerated HWIDs, and were not detected by openvpn.exe.
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20181016102627.18676-5-simon@rozman.si>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg17762.html

Signed-off-by: Gert Doering <gert@greenie.muc.de>
(cherry picked from commit 6e03336d8a4aada12c4950a9683a483470fe4f15)

Simon Rozman authored on 2018/10/16 19:26:27
Showing 1 changed files
... ...
@@ -3700,7 +3700,8 @@ get_tap_reg(struct gc_arena *gc)
3700 3700
 
3701 3701
                 if (status == ERROR_SUCCESS && data_type == REG_SZ)
3702 3702
                 {
3703
-                    if (!strcmp(component_id, TAP_WIN_COMPONENT_ID))
3703
+                    if (!strcmp(component_id, TAP_WIN_COMPONENT_ID) ||
3704
+                        !strcmp(component_id, "root\\" TAP_WIN_COMPONENT_ID))
3704 3705
                     {
3705 3706
                         struct tap_reg *reg;
3706 3707
                         ALLOC_OBJ_CLEAR_GC(reg, struct tap_reg, gc);