aboutsummaryrefslogtreecommitdiff
path: root/src/include/tap-windows.h
diff options
context:
space:
mode:
authorChristian Fuchs <christian.fuchs@cfuchs.net>2012-12-31 15:52:36 +0000
committerChristian Fuchs <christian.fuchs@cfuchs.net>2012-12-31 15:52:36 +0000
commitd4c657e337060285f560b1a9287dd6a51551d35e (patch)
treecc21c6411bb1419c563332299f9db2bd662e967b /src/include/tap-windows.h
parentf3eca31df25d50ebe32c5d38f31cc7a62e62914d (diff)
downloadgnunet-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.h80
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