X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fsolaris%2Fdevice.c;h=2f1972aab14cbeb05591246d7b3a8941fbb5233c;hp=111fac8f14af94ce5ffd165f270a8ff9822b0146;hb=bd7c8ae78e68e9de99436d03062fccb676549e01;hpb=80cd2ff73071941a5356555b85a00ee90dfd0e16 diff --git a/src/solaris/device.c b/src/solaris/device.c index 111fac8f..2f1972aa 100644 --- a/src/solaris/device.c +++ b/src/solaris/device.c @@ -2,7 +2,7 @@ device.c -- Interaction with Solaris tun device Copyright (C) 2001-2005 Ivo Timmermans, 2002-2010 OpenVPN Technologies, Inc. - 2001-2013 Guus Sliepen + 2001-2014 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 @@ -33,8 +33,14 @@ #include "../utils.h" #include "../xalloc.h" +#ifndef TUNNEWPPA +#warning Missing net/if_tun.h, using hardcoded value for TUNNEWPPA +#define TUNNEWPPA (('T'<<16) | 0x0001) +#endif + #define DEFAULT_TUN_DEVICE "/dev/tun" #define DEFAULT_TAP_DEVICE "/dev/tap" +#define IP_DEVICE "/dev/udp" static enum { DEVICE_TYPE_TUN, @@ -44,7 +50,6 @@ static enum { int device_fd = -1; static int if_fd = -1; static int ip_fd = -1; -static int arp_fd = -1; char *device = NULL; char *iface = NULL; static char *device_info = NULL; @@ -83,8 +88,8 @@ static bool setup_device(void) { /* The following is black magic copied from OpenVPN. */ - if((ip_fd = open("/dev/ip", O_RDWR, 0)) < 0) { - logger(LOG_ERR, "Could not open %s: %s\n", "/dev/ip", strerror(errno)); + if((ip_fd = open(IP_DEVICE, O_RDWR, 0)) < 0) { + logger(LOG_ERR, "Could not open %s: %s\n", IP_DEVICE, strerror(errno)); return false; } @@ -201,7 +206,7 @@ static bool setup_device(void) { /* Push arp module to ip_fd */ if(ioctl(ip_fd, I_PUSH, "arp") < 0) { - logger(LOG_ERR, "Could not push ARP module onto %s!", "/dev/ip"); + logger(LOG_ERR, "Could not push ARP module onto %s!", IP_DEVICE); return false; } @@ -312,7 +317,7 @@ static bool read_packet(vpn_packet_t *packet) { packet->data[13] = 0xDD; break; default: - logger(DEBUG_TRAFFIC, LOG_ERR, "Unknown IP version %d while reading packet from %s %s", packet->data[14] >> 4, device_info, device); + ifdebug(TRAFFIC) logger(LOG_ERR, "Unknown IP version %d while reading packet from %s %s", packet->data[14] >> 4, device_info, device); return false; } @@ -335,13 +340,13 @@ static bool read_packet(vpn_packet_t *packet) { device_total_in += packet->len; - logger(DEBUG_TRAFFIC, LOG_DEBUG, "Read packet of %d bytes from %s", packet->len, device_info); + ifdebug(TRAFFIC) logger(LOG_DEBUG, "Read packet of %d bytes from %s", packet->len, device_info); return true; } static bool write_packet(vpn_packet_t *packet) { - logger(DEBUG_TRAFFIC, LOG_DEBUG, "Writing packet of %d bytes to %s", packet->len, device_info); + ifdebug(TRAFFIC) logger(LOG_DEBUG, "Writing packet of %d bytes to %s", packet->len, device_info); switch(device_type) { case DEVICE_TYPE_TUN: