[PATCH v2 0/1] MR2890: nsiproxy.sys: Detect PPP interface type from flags on Linux.
Unfortunately VPN interfaces I am observing here don't expose any definite type in ifr_hwaddr.sa_data (having ARPHRD_NONE). But the flags from SIOCGIFFLAGS have IFF_POINTOPOINT for such interfaces, so it is probably nothing wrong in guessing the iface type as PPP if the flag is set. Fixes Creativerse hanging on creating local game when there is a VPN interface. -- v2: nsiproxy.sys: Detect PPP interface type from flags on Linux. https://gitlab.winehq.org/wine/wine/-/merge_requests/2890
From: Paul Gofman <pgofman(a)codeweavers.com> VPN interfaces often have ARPHRD_NONE in ifr_hwaddr.sa_data but IFF_POINTOPOINT flag set. --- dlls/nsiproxy.sys/ndis.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dlls/nsiproxy.sys/ndis.c b/dlls/nsiproxy.sys/ndis.c index c34630d8aec..1fc66c3611b 100644 --- a/dlls/nsiproxy.sys/ndis.c +++ b/dlls/nsiproxy.sys/ndis.c @@ -170,6 +170,9 @@ static NTSTATUS if_get_physical( const char *name, UINT *type, IF_PHYSICAL_ADDRE break; } + if (*type == MIB_IF_TYPE_OTHER && !ioctl( fd, SIOCGIFFLAGS, &ifr ) && ifr.ifr_flags & IFF_POINTOPOINT) + *type = MIB_IF_TYPE_PPP; + err: close( fd ); return ret; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2890
v2: - fix spurious blank line deletion; - remove traces; - add a comment to commit. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2890#note_33687
This merge request was approved by Huw Davies. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2890
participants (3)
-
Huw Davies (@huw) -
Paul Gofman -
Paul Gofman (@gofman)