projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use /dev/udp instead of /dev/ip on Solaris.
[tinc]
/
src
/
solaris
/
device.c
diff --git
a/src/solaris/device.c
b/src/solaris/device.c
index
111fac8
..
2f1972a
100644
(file)
--- 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. <sales@openvpn.net>
device.c -- Interaction with Solaris tun device
Copyright (C) 2001-2005 Ivo Timmermans,
2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>
- 2001-201
3
Guus Sliepen <guus@tinc-vpn.org>
+ 2001-201
4
Guus Sliepen <guus@tinc-vpn.org>
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
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"
#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 DEFAULT_TUN_DEVICE "/dev/tun"
#define DEFAULT_TAP_DEVICE "/dev/tap"
+#define IP_DEVICE "/dev/udp"
static enum {
DEVICE_TYPE_TUN,
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;
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;
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. */
/* 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;
}
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) {
/* 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;
}
return false;
}
@@
-312,7
+317,7
@@
static bool read_packet(vpn_packet_t *packet) {
packet->data[13] = 0xDD;
break;
default:
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;
}
return false;
}
@@
-335,13
+340,13
@@
static bool read_packet(vpn_packet_t *packet) {
device_total_in += packet->len;
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) {
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:
switch(device_type) {
case DEVICE_TYPE_TUN: