Just a small suggestion: I think the following will work: - Check the version of the current operating system. - Dynamically loading related DLLs (in this case, should be WFP-related libraries) using LoadLibrary() only if OpenVPN is running Windows Vista+, and pops a warning for XP users who has that option enabled. - On Vista+, get addresses of those APIs that we want to call (via GetProcAddress() ), and then use them as function pointers.
Pros: one binary works for all Windows. Cons: the code is a bit messier. I've done this before for my own projects that must be running on both XP and later versions of Windows, and it works reliably. I can look into this later this week (if ValdikSS doesn't have cycles). Best, Fish -----Original Message----- From: Gert Doering [mailto:[email protected]] Sent: Wednesday, November 25, 2015 6:55 AM To: Arne Schwabe <[email protected]> Cc: openvpn-devel <[email protected]> Subject: Re: [Openvpn-devel] [PATCH v4-master] Add Windows DNS Leak fix using WFP ('block-outside-dns') Hi, On Wed, Nov 25, 2015 at 03:19:51PM +0100, Arne Schwabe wrote: > I am not sure if we want to ship separate WIN XP and Vista+ versions. We are in agremeent that we do *not* want that :-) - but we *do* want this patch to work around Win10 DNS brokenness, and that binary won't run on XP. Which of the options do we want less...? gert -- USENET is *not* the non-clickable part of WWW! //www.muc.de/~gert/ Gert Doering - Munich, Germany [email protected] fax: +49-89-35655025 [email protected]
