If I understood this correctly, include/tap-windows.h gets removed, and
will then be included using the same mechanism that's used to include
LZO headers, OpenSSL headers, etc. I think this makes sense now that the
TAP-driver is a separate subproject.

ACK.

-- 
Samuli Seppänen
Community Manager
OpenVPN Technologies, Inc

irc freenode net: mattock



> tap-windows.h is provided by the tap project
>
> Signed-off-by: Alon Bar-Lev <alon.bar...@gmail.com>
> ---
>  configure.ac               |   12 ++++++++
>  include/Makefile.am        |    2 -
>  include/tap-windows.h      |   68 
> --------------------------------------------
>  msvc-env.bat               |    2 +
>  src/openvpn/Makefile.am    |    1 +
>  src/openvpn/openvpn.vcproj |    4 +-
>  6 files changed, 17 insertions(+), 72 deletions(-)
>  delete mode 100644 include/tap-windows.h
>
> diff --git a/configure.ac b/configure.ac
> index 2b095a3..c6cabee 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -666,6 +666,18 @@ PKG_CHECK_MODULES(
>         )]
>  )
>
> +AC_ARG_VAR([TAP_WINDOWS_CFLAGS], [C compiler flags for TAP-Windows])
> +if test "${WIN32}" = "yes"; then
> +       old_CFLAGS="${CFLAGS}"
> +       CFLAGS="${CFLAGS} ${TAP_WINDOWS_CFLAGS}"
> +       AC_CHECK_HEADERS(
> +               [tap-windows.h],
> +               ,
> +               [AC_MSG_ERROR([tap-windows.h is required but missing])]
> +       )
> +       CFLAGS="${old_CFLAGS}"
> +fi
> +
>  if test "${have_openssl_crypto}" = "yes"; then
>         saved_CFLAGS="${CFLAGS}"
>         saved_LIBS="${LIBS}"
> diff --git a/include/Makefile.am b/include/Makefile.am
> index 36eeb6c..13dee61 100644
> --- a/include/Makefile.am
> +++ b/include/Makefile.am
> @@ -12,6 +12,4 @@
>  MAINTAINERCLEANFILES = \
>         $(srcdir)/Makefile.in
>
> -dist_noinst_HEADERS = tap-windows.h
> -
>  include_HEADERS = openvpn-plugin.h
> diff --git a/include/tap-windows.h b/include/tap-windows.h
> deleted file mode 100644
> index 243a4a2..0000000
> --- a/include/tap-windows.h
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -/*
> - *  TAP-Windows -- A kernel driver to provide virtual tap
> - *                 device functionality on Windows.
> - *
> - *  This code was inspired by the CIPE-Win32 driver by Damion K. Wilson.
> - *
> - *  This source code is Copyright (C) 2002-2010 OpenVPN Technologies, Inc.,
> - *  and is released under the GPL version 2 (see below).
> - *
> - *  This program is free software; you can redistribute it and/or modify
> - *  it under the terms of the GNU General Public License version 2
> - *  as published by the Free Software Foundation.
> - *
> - *  This program is distributed in the hope that it will be useful,
> - *  but WITHOUT ANY WARRANTY; without even the implied warranty of
> - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - *  GNU General Public License for more details.
> - *
> - *  You should have received a copy of the GNU General Public License
> - *  along with this program (see the file COPYING included with this
> - *  distribution); if not, write to the Free Software Foundation, Inc.,
> - *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
> - */
> -#ifndef __TAP_WIN_H
> -#define __TAP_WIN_H
> -
> -//=============
> -// TAP IOCTLs
> -//=============
> -
> -#define TAP_WIN_CONTROL_CODE(request,method) \
> -  CTL_CODE (FILE_DEVICE_UNKNOWN, request, method, FILE_ANY_ACCESS)
> -
> -// Present in 8.1
> -
> -#define TAP_WIN_IOCTL_GET_MAC               TAP_WIN_CONTROL_CODE (1, 
> METHOD_BUFFERED)
> -#define TAP_WIN_IOCTL_GET_VERSION           TAP_WIN_CONTROL_CODE (2, 
> METHOD_BUFFERED)
> -#define TAP_WIN_IOCTL_GET_MTU               TAP_WIN_CONTROL_CODE (3, 
> METHOD_BUFFERED)
> -#define TAP_WIN_IOCTL_GET_INFO              TAP_WIN_CONTROL_CODE (4, 
> METHOD_BUFFERED)
> -#define TAP_WIN_IOCTL_CONFIG_POINT_TO_POINT TAP_WIN_CONTROL_CODE (5, 
> METHOD_BUFFERED)
> -#define TAP_WIN_IOCTL_SET_MEDIA_STATUS      TAP_WIN_CONTROL_CODE (6, 
> METHOD_BUFFERED)
> -#define TAP_WIN_IOCTL_CONFIG_DHCP_MASQ      TAP_WIN_CONTROL_CODE (7, 
> METHOD_BUFFERED)
> -#define TAP_WIN_IOCTL_GET_LOG_LINE          TAP_WIN_CONTROL_CODE (8, 
> METHOD_BUFFERED)
> -#define TAP_WIN_IOCTL_CONFIG_DHCP_SET_OPT   TAP_WIN_CONTROL_CODE (9, 
> METHOD_BUFFERED)
> -
> -// Added in 8.2
> -
> -/* obsoletes TAP_WIN_IOCTL_CONFIG_POINT_TO_POINT */
> -#define TAP_WIN_IOCTL_CONFIG_TUN            TAP_WIN_CONTROL_CODE (10, 
> METHOD_BUFFERED)
> -
> -//=================
> -// Registry keys
> -//=================
> -
> -#define ADAPTER_KEY 
> "SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}"
> -
> -#define NETWORK_CONNECTIONS_KEY 
> "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}"
> -
> -//======================
> -// Filesystem prefixes
> -//======================
> -
> -#define USERMODEDEVICEDIR "\\\\.\\Global\\"
> -#define SYSDEVICEDIR      "\\Device\\"
> -#define USERDEVICEDIR     "\\DosDevices\\Global\\"
> -#define TAP_WIN_SUFFIX    ".tap"
> -
> -#endif
> diff --git a/msvc-env.bat b/msvc-env.bat
> index ef9c7bb..e37757b 100644
> --- a/msvc-env.bat
> +++ b/msvc-env.bat
> @@ -23,7 +23,9 @@ if "%OPENVPN_DEPROOT%" == "" set 
> OPENVPN_DEPROOT=c:\Temp\openvpn-deps
>  if "%OPENSSL_HOME%" == "" set OPENSSL_HOME=%OPENVPN_DEPROOT%
>  if "%LZO_HOME%" == "" set LZO_HOME=%OPENVPN_DEPROOT%
>  if "%PKCS11H_HOME%" == "" set PKCS11H_HOME=%OPENVPN_DEPROOT%
> +if "%TAP_WINDOWS_HOME%" == "" set TAP_WINDOWS_HOME=%OPENVPN_DEPROOT%
>
>  if not exist "%OPENSSL_HOME%" echo WARNING: openssl '%OPENSSL_HOME%' does 
> not exist
>  if not exist "%LZO_HOME%" echo WARNING: lzo '%LZO_HOME%' does not exist
>  if not exist "%PKCS11H_HOME%" echo WARNING: pkcs11-helper '%PKCS11H_HOME%' 
> does not exist
> +if not exist "%TAP_WINDOWS_HOME%" echo WARNING: tap-windows 
> '%TAP_WINDOWS_HOME%' does not exist
> diff --git a/src/openvpn/Makefile.am b/src/openvpn/Makefile.am
> index 6ba12b8..1410021 100644
> --- a/src/openvpn/Makefile.am
> +++ b/src/openvpn/Makefile.am
> @@ -22,6 +22,7 @@ INCLUDES = \
>         -I$(top_srcdir)/src/compat
>
>  AM_CFLAGS = \
> +       $(TAP_WINDOWS_CFLAGS) \
>         $(OPTIONAL_CRYPTO_CFLAGS) \
>         $(OPTIONAL_LZO_CFLAGS) \
>         $(OPTIONAL_PKCS11_HELPER_CFLAGS)
> diff --git a/src/openvpn/openvpn.vcproj b/src/openvpn/openvpn.vcproj
> index 4680e52..c1aa8a0 100644
> --- a/src/openvpn/openvpn.vcproj
> +++ b/src/openvpn/openvpn.vcproj
> @@ -41,7 +41,7 @@
>                         <Tool
>                                 Name="VCCLCompilerTool"
>                                 Optimization="0"
> -                               
> AdditionalIncludeDirectories="$(SOURCEBASE);$(SOURCEBASE)/src/compat;$(SOURCEBASE)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include"
> +                               
> AdditionalIncludeDirectories="$(SOURCEBASE);$(SOURCEBASE)/src/compat;$(SOURCEBASE)/include;$(TAP_WINDOWS_HOME)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include"
>                                 
> PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;$(CPPFLAGS)"
>                                 MinimalRebuild="true"
>                                 BasicRuntimeChecks="3"
> @@ -118,7 +118,7 @@
>                                 Name="VCCLCompilerTool"
>                                 Optimization="2"
>                                 EnableIntrinsicFunctions="true"
> -                               
> AdditionalIncludeDirectories="$(SOURCEBASE);$(SOURCEBASE)/src/compat;$(SOURCEBASE)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include"
> +                               
> AdditionalIncludeDirectories="$(SOURCEBASE);$(SOURCEBASE)/src/compat;$(SOURCEBASE)/include;$(TAP_WINDOWS_HOME)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include"
>                                 
> PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;$(CPPFLAGS)"
>                                 RuntimeLibrary="2"
>                                 EnableFunctionLevelLinking="true"
> --
> 1.7.3.4
>
>
> ------------------------------------------------------------------------------
> Virtualization & Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
> _______________________________________________
> Openvpn-devel mailing list
> Openvpn-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/openvpn-devel



Reply via email to