From c3d166fc03e8cc2b628bfc394f70821738916af9 Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Thu, 13 Feb 2014 23:32:52 +0000 Subject: [PATCH] Split out os_setup_tun() for Windows vs. sane platforms Signed-off-by: David Woodhouse --- openconnect-internal.h | 5 ++--- tun-win32.c | 2 +- tun.c | 9 ++++----- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/openconnect-internal.h b/openconnect-internal.h index 6a1ff579..6379e001 100644 --- a/openconnect-internal.h +++ b/openconnect-internal.h @@ -445,18 +445,17 @@ int dumb_socketpair(int socks[2], int make_overlapped); } while (0) /****************************************************************************/ -/* tun-win32.c */ -int win32_setup_tun(struct openconnect_info *vpninfo); /* script.c */ int setenv_int(const char *opt, int value); void set_script_env(struct openconnect_info *vpninfo); int script_config_tun(struct openconnect_info *vpninfo, const char *reason); -/* tun.c */ +/* tun.c / tun-win32.c */ void os_shutdown_tun(struct openconnect_info *vpninfo); int os_read_tun(struct openconnect_info *vpninfo, struct pkt *pkt, int new_pkt); int os_write_tun(struct openconnect_info *vpninfo, struct pkt *pkt); +int os_setup_tun(struct openconnect_info *vpninfo); /* dtls.c */ unsigned char unhex(const char *data); diff --git a/tun-win32.c b/tun-win32.c index 85af24b1..98fb4f7e 100644 --- a/tun-win32.c +++ b/tun-win32.c @@ -196,7 +196,7 @@ static int open_tun(struct openconnect_info *vpninfo, char *guid, char *name) return 1; } -int win32_setup_tun(struct openconnect_info *vpninfo) +int os_setup_tun(struct openconnect_info *vpninfo) { if (search_taps(vpninfo, open_tun) != 1) return -1; diff --git a/tun.c b/tun.c index 28d1c9ad..3c8636d7 100644 --- a/tun.c +++ b/tun.c @@ -143,6 +143,8 @@ static int link_proto(int unit_nr, const char *devname, uint64_t flags) } #endif +#ifndef _WIN32 + #ifdef SIOCIFCREATE static int bsd_open_tun(char *tun_name) { @@ -171,12 +173,10 @@ static int bsd_open_tun(char *tun_name) #define bsd_open_tun(tun_name) open(tun_name, O_RDWR) #endif -static int os_setup_tun(struct openconnect_info *vpninfo) +int os_setup_tun(struct openconnect_info *vpninfo) { int tun_fd = -1; -#ifdef _WIN32 - tun_fd = win32_setup_tun(vpninfo); -#elif defined(IFF_TUN) /* Linux */ +#ifdef IFF_TUN /* Linux */ struct ifreq ifr; int tunerr; @@ -322,7 +322,6 @@ static int os_setup_tun(struct openconnect_info *vpninfo) return tun_fd; } -#ifndef _WIN32 int openconnect_setup_tun_fd(struct openconnect_info *vpninfo, int tun_fd) { set_fd_cloexec(tun_fd);