X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Flinux%2Fdevice.c;h=519896e71c4e513d1559d12ef48a7bfce5b53b71;hb=f02d3ed3e135b5326003e7f69f8331ff6a3cc219;hp=1858f5c267eb56954677b9f11484d90cd93c6489;hpb=dc3b7d47f3297e22161787a1d6e06205140cf0fb;p=tinc diff --git a/src/linux/device.c b/src/linux/device.c index 1858f5c2..519896e7 100644 --- a/src/linux/device.c +++ b/src/linux/device.c @@ -1,7 +1,7 @@ /* device.c -- Interaction with Linux ethertap and tun/tap device - Copyright (C) 2001-2003 Ivo Timmermans , - 2001-2003 Guus Sliepen + Copyright (C) 2001-2005 Ivo Timmermans, + 2001-2006 Guus Sliepen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,17 +17,13 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: device.c,v 1.4 2003/08/27 13:47:48 guus Exp $ + $Id$ */ #include "system.h" -#ifdef HAVE_TUNTAP -#ifdef LINUX_IF_TUN_H -#include LINUX_IF_TUN_H -#else +#ifdef HAVE_LINUX_IF_TUN_H #include -#endif #define DEFAULT_DEVICE "/dev/net/tun" #else #define DEFAULT_DEVICE "/dev/tap0" @@ -46,17 +42,16 @@ typedef enum device_type_t { } device_type_t; int device_fd = -1; -device_type_t device_type; +static device_type_t device_type; char *device; char *iface; char ifrname[IFNAMSIZ]; char *device_info; -int device_total_in = 0; -int device_total_out = 0; +static int device_total_in = 0; +static int device_total_out = 0; -bool setup_device(void) -{ +bool setup_device(void) { struct ifreq ifr; cp(); @@ -65,7 +60,7 @@ bool setup_device(void) device = DEFAULT_DEVICE; if(!get_config_string(lookup_config(config_tree, "Interface"), &iface)) -#ifdef HAVE_TUNTAP +#ifdef HAVE_LINUX_IF_TUN_H iface = netname; #else iface = rindex(device, '/') ? rindex(device, '/') + 1 : device; @@ -77,7 +72,7 @@ bool setup_device(void) return false; } -#ifdef HAVE_TUNTAP +#ifdef HAVE_LINUX_IF_TUN_H /* Ok now check if this is an old ethertap or a new tun/tap thingie */ memset(&ifr, 0, sizeof(ifr)); @@ -94,10 +89,10 @@ bool setup_device(void) if(iface) strncpy(ifr.ifr_name, iface, IFNAMSIZ); - if(!ioctl(device_fd, TUNSETIFF, (void *) &ifr)) { + if(!ioctl(device_fd, TUNSETIFF, &ifr)) { strncpy(ifrname, ifr.ifr_name, IFNAMSIZ); iface = ifrname; - } else if(!ioctl(device_fd, (('T' << 8) | 202), (void *) &ifr)) { + } else if(!ioctl(device_fd, (('T' << 8) | 202), &ifr)) { logger(LOG_WARNING, _("Old ioctl() request was needed for %s"), device); strncpy(ifrname, ifr.ifr_name, IFNAMSIZ); iface = ifrname; @@ -116,15 +111,13 @@ bool setup_device(void) return true; } -void close_device(void) -{ +void close_device(void) { cp(); close(device_fd); } -bool read_packet(vpn_packet_t *packet) -{ +bool read_packet(vpn_packet_t *packet) { int lenin; cp(); @@ -173,8 +166,7 @@ bool read_packet(vpn_packet_t *packet) return true; } -bool write_packet(vpn_packet_t *packet) -{ +bool write_packet(vpn_packet_t *packet) { cp(); ifdebug(TRAFFIC) logger(LOG_DEBUG, _("Writing packet of %d bytes to %s"), @@ -212,8 +204,7 @@ bool write_packet(vpn_packet_t *packet) return true; } -void dump_device_stats(void) -{ +void dump_device_stats(void) { cp(); logger(LOG_DEBUG, _("Statistics for %s %s:"), device_info, device);