projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into 1.1
[tinc]
/
src
/
bsd
/
device.c
diff --git
a/src/bsd/device.c
b/src/bsd/device.c
index
ee9b0e5
..
a9e39d4
100644
(file)
--- a/
src/bsd/device.c
+++ b/
src/bsd/device.c
@@
-150,6
+150,17
@@
bool setup_device(void) {
if(routing_mode == RMODE_ROUTER)
overwrite_mac = true;
device_info = "Generic BSD tap device";
if(routing_mode == RMODE_ROUTER)
overwrite_mac = true;
device_info = "Generic BSD tap device";
+#ifdef TAPGIFNAME
+ {
+ struct ifreq ifr;
+ if(ioctl(device_fd, TAPGIFNAME, (void*)&ifr) == 0) {
+ if(iface)
+ free(iface);
+ iface = xstrdup(ifr.ifr_name);
+ }
+ }
+
+#endif
break;
#ifdef HAVE_TUNEMU
case DEVICE_TYPE_TUNEMU:
break;
#ifdef HAVE_TUNEMU
case DEVICE_TYPE_TUNEMU:
@@
-179,20
+190,20
@@
void close_device(void) {
}
bool read_packet(vpn_packet_t *packet) {
}
bool read_packet(vpn_packet_t *packet) {
- int
leni
n;
+ int
inle
n;
switch(device_type) {
case DEVICE_TYPE_TUN:
#ifdef HAVE_TUNEMU
case DEVICE_TYPE_TUNEMU:
if(device_type == DEVICE_TYPE_TUNEMU)
switch(device_type) {
case DEVICE_TYPE_TUN:
#ifdef HAVE_TUNEMU
case DEVICE_TYPE_TUNEMU:
if(device_type == DEVICE_TYPE_TUNEMU)
-
leni
n = tunemu_read(device_fd, packet->data + 14, MTU - 14);
+
inle
n = tunemu_read(device_fd, packet->data + 14, MTU - 14);
else
#else
else
#else
-
leni
n = read(device_fd, packet->data + 14, MTU - 14);
+
inle
n = read(device_fd, packet->data + 14, MTU - 14);
#endif
#endif
- if(
leni
n <= 0) {
+ if(
inle
n <= 0) {
logger(LOG_ERR, "Error while reading from %s %s: %s", device_info,
device, strerror(errno));
return false;
logger(LOG_ERR, "Error while reading from %s %s: %s", device_info,
device, strerror(errno));
return false;
@@
-209,19
+220,19
@@
bool read_packet(vpn_packet_t *packet) {
break;
default:
ifdebug(TRAFFIC) logger(LOG_ERR,
break;
default:
ifdebug(TRAFFIC) logger(LOG_ERR,
-
_ ("Unknown IP version %d while reading packet from %s %s")
,
+
"Unknown IP version %d while reading packet from %s %s"
,
packet->data[14] >> 4, device_info, device);
return false;
}
packet->data[14] >> 4, device_info, device);
return false;
}
- packet->len =
leni
n + 14;
+ packet->len =
inle
n + 14;
break;
case DEVICE_TYPE_TUNIFHEAD: {
u_int32_t type;
break;
case DEVICE_TYPE_TUNIFHEAD: {
u_int32_t type;
- struct iovec vector[2] = {{&type, sizeof
(type)
}, {packet->data + 14, MTU - 14}};
+ struct iovec vector[2] = {{&type, sizeof
type
}, {packet->data + 14, MTU - 14}};
- if((
leni
n = readv(device_fd, vector, 2)) <= 0) {
+ if((
inle
n = readv(device_fd, vector, 2)) <= 0) {
logger(LOG_ERR, "Error while reading from %s %s: %s", device_info,
device, strerror(errno));
return false;
logger(LOG_ERR, "Error while reading from %s %s: %s", device_info,
device, strerror(errno));
return false;
@@
-240,23
+251,23
@@
bool read_packet(vpn_packet_t *packet) {
default:
ifdebug(TRAFFIC) logger(LOG_ERR,
default:
ifdebug(TRAFFIC) logger(LOG_ERR,
-
_ ("Unknown address family %x while reading packet from %s %s")
,
+
"Unknown address family %x while reading packet from %s %s"
,
ntohl(type), device_info, device);
return false;
}
ntohl(type), device_info, device);
return false;
}
- packet->len =
leni
n + 10;
+ packet->len =
inle
n + 10;
break;
}
case DEVICE_TYPE_TAP:
break;
}
case DEVICE_TYPE_TAP:
- if((
leni
n = read(device_fd, packet->data, MTU)) <= 0) {
+ if((
inle
n = read(device_fd, packet->data, MTU)) <= 0) {
logger(LOG_ERR, "Error while reading from %s %s: %s", device_info,
device, strerror(errno));
return false;
}
logger(LOG_ERR, "Error while reading from %s %s: %s", device_info,
device, strerror(errno));
return false;
}
- packet->len =
leni
n;
+ packet->len =
inle
n;
break;
default:
break;
default:
@@
-268,7
+279,6
@@
bool read_packet(vpn_packet_t *packet) {
ifdebug(TRAFFIC) logger(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);
- logger(LOG_INFO, "E:fd_read");
return true;
}
return true;
}
@@
-287,7
+297,7
@@
bool write_packet(vpn_packet_t *packet) {
case DEVICE_TYPE_TUNIFHEAD: {
u_int32_t type;
case DEVICE_TYPE_TUNIFHEAD: {
u_int32_t type;
- struct iovec vector[2] = {{&type, sizeof
(type)
}, {packet->data + 14, packet->len - 14}};
+ struct iovec vector[2] = {{&type, sizeof
type
}, {packet->data + 14, packet->len - 14}};
int af;
af = (packet->data[12] << 8) + packet->data[13];
int af;
af = (packet->data[12] << 8) + packet->data[13];