diff options
author | Christian Fuchs <christian.fuchs@cfuchs.net> | 2012-12-31 15:52:36 +0000 |
---|---|---|
committer | Christian Fuchs <christian.fuchs@cfuchs.net> | 2012-12-31 15:52:36 +0000 |
commit | d4c657e337060285f560b1a9287dd6a51551d35e (patch) | |
tree | cc21c6411bb1419c563332299f9db2bd662e967b /src/include/tap-windows.h | |
parent | f3eca31df25d50ebe32c5d38f31cc7a62e62914d (diff) | |
download | gnunet-d4c657e337060285f560b1a9287dd6a51551d35e.tar.gz gnunet-d4c657e337060285f560b1a9287dd6a51551d35e.zip |
* added tap version checking logics. Many tap32 versions are broken,
Only version 9.8 and later support IPv6, 9.8 is broken with IPv4. Thus,
we are using the same minium version as openvpn 2.3: tap32-9.9
* created our TAP/TUN handle-object (equivalent to the *nix init_tun()
function), this still requires some more logics to be
complete.
* added logics to set the tun up (+a fixed sleep, to wait for it to
come up)
* we now also store the device's GUID, as we need it for creating the
handle.
* added the exports of tap32: src/include/tap_windows.h , for the sake
of upgradability. This file contains version-specific defines for the
driver.
* happy new year!
Diffstat (limited to 'src/include/tap-windows.h')
-rw-r--r-- | src/include/tap-windows.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/include/tap-windows.h b/src/include/tap-windows.h new file mode 100644 index 000000000..b97e22e26 --- /dev/null +++ b/src/include/tap-windows.h | |||
@@ -0,0 +1,80 @@ | |||
1 | /* | ||
2 | * TAP-Windows -- A kernel driver to provide virtual tap | ||
3 | * device functionality on Windows. | ||
4 | * | ||
5 | * This code was inspired by the CIPE-Win32 driver by Damion K. Wilson. | ||
6 | * | ||
7 | * This source code is Copyright (C) 2002-2010 OpenVPN Technologies, Inc., | ||
8 | * and is released under the GPL version 2 (see below). | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License version 2 | ||
12 | * as published by the Free Software Foundation. | ||
13 | * | ||
14 | * This program is distributed in the hope that it will be useful, | ||
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | * GNU General Public License for more details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this program (see the file COPYING included with this | ||
21 | * distribution); if not, write to the Free Software Foundation, Inc., | ||
22 | * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
23 | */ | ||
24 | /** | ||
25 | * @file include/tap-windows.h | ||
26 | * @brief TAP32 virtual network driver defines | ||
27 | * @attention This file is part of openvpn and for kept | ||
28 | * as a separate file to allow easier upgrading. | ||
29 | */ | ||
30 | #ifndef __TAP_WIN_H | ||
31 | #define __TAP_WIN_H | ||
32 | |||
33 | /* | ||
34 | * ============= | ||
35 | * TAP IOCTLs | ||
36 | * ============= | ||
37 | */ | ||
38 | |||
39 | #define TAP_WIN_CONTROL_CODE(request,method) \ | ||
40 | CTL_CODE (FILE_DEVICE_UNKNOWN, request, method, FILE_ANY_ACCESS) | ||
41 | |||
42 | /* Present in 8.1 */ | ||
43 | |||
44 | #define TAP_WIN_IOCTL_GET_MAC TAP_WIN_CONTROL_CODE (1, METHOD_BUFFERED) | ||
45 | #define TAP_WIN_IOCTL_GET_VERSION TAP_WIN_CONTROL_CODE (2, METHOD_BUFFERED) | ||
46 | #define TAP_WIN_IOCTL_GET_MTU TAP_WIN_CONTROL_CODE (3, METHOD_BUFFERED) | ||
47 | #define TAP_WIN_IOCTL_GET_INFO TAP_WIN_CONTROL_CODE (4, METHOD_BUFFERED) | ||
48 | #define TAP_WIN_IOCTL_CONFIG_POINT_TO_POINT TAP_WIN_CONTROL_CODE (5, METHOD_BUFFERED) | ||
49 | #define TAP_WIN_IOCTL_SET_MEDIA_STATUS TAP_WIN_CONTROL_CODE (6, METHOD_BUFFERED) | ||
50 | #define TAP_WIN_IOCTL_CONFIG_DHCP_MASQ TAP_WIN_CONTROL_CODE (7, METHOD_BUFFERED) | ||
51 | #define TAP_WIN_IOCTL_GET_LOG_LINE TAP_WIN_CONTROL_CODE (8, METHOD_BUFFERED) | ||
52 | #define TAP_WIN_IOCTL_CONFIG_DHCP_SET_OPT TAP_WIN_CONTROL_CODE (9, METHOD_BUFFERED) | ||
53 | |||
54 | /* Added in 8.2 */ | ||
55 | |||
56 | /* obsoletes TAP_WIN_IOCTL_CONFIG_POINT_TO_POINT */ | ||
57 | #define TAP_WIN_IOCTL_CONFIG_TUN TAP_WIN_CONTROL_CODE (10, METHOD_BUFFERED) | ||
58 | |||
59 | /* | ||
60 | * ================= | ||
61 | * Registry keys | ||
62 | * ================= | ||
63 | */ | ||
64 | |||
65 | #define ADAPTER_KEY "SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}" | ||
66 | |||
67 | #define NETWORK_CONNECTIONS_KEY "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}" | ||
68 | |||
69 | /* | ||
70 | * ====================== | ||
71 | * Filesystem prefixes | ||
72 | * ====================== | ||
73 | */ | ||
74 | |||
75 | #define USERMODEDEVICEDIR "\\\\.\\Global\\" | ||
76 | #define SYSDEVICEDIR "\\Device\\" | ||
77 | #define USERDEVICEDIR "\\DosDevices\\Global\\" | ||
78 | #define TAP_WIN_SUFFIX ".tap" | ||
79 | |||
80 | #endif | ||