projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Detect and prevent two nodes with the same Name being on the VPN simultaneously.
[tinc]
/
src
/
bsd
/
device.c
diff --git
a/src/bsd/device.c
b/src/bsd/device.c
index
ee9b0e5
..
6674abd
100644
(file)
--- a/
src/bsd/device.c
+++ b/
src/bsd/device.c
@@
-64,7
+64,7
@@
bool setup_device(void) {
device = xstrdup(DEFAULT_DEVICE);
if(!get_config_string(lookup_config(config_tree, "Interface"), &iface))
device = xstrdup(DEFAULT_DEVICE);
if(!get_config_string(lookup_config(config_tree, "Interface"), &iface))
- iface = xstrdup(
rindex(device, '/') ? rindex
(device, '/') + 1 : device);
+ iface = xstrdup(
strrchr(device, '/') ? strrchr
(device, '/') + 1 : device);
if(get_config_string(lookup_config(config_tree, "DeviceType"), &type)) {
if(!strcasecmp(type, "tun"))
if(get_config_string(lookup_config(config_tree, "DeviceType"), &type)) {
if(!strcasecmp(type, "tun"))
@@
-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:
@@
-209,7
+220,7
@@
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;
}
@@
-240,7
+251,7
@@
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;
}
@@
-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;
}