X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fbsd%2Fdevice.c;h=f6614b29a0b5e13e309fc2b9578e04d745a06b93;hp=46879e465365ba4ce4c1a10ee2b82cb12cd9c15f;hb=985d19caf20058db3c764f0f6fbeafa8bcc59fcc;hpb=755963f0b19378bf3f416d0aef14acf7d905a275 diff --git a/src/bsd/device.c b/src/bsd/device.c index 46879e46..f6614b29 100644 --- a/src/bsd/device.c +++ b/src/bsd/device.c @@ -75,7 +75,7 @@ static bool setup_utun(void) { } struct ctl_info info = {}; - strlcpy(info.ctl_name, UTUN_CONTROL_NAME, sizeof info.ctl_name); + strlcpy(info.ctl_name, UTUN_CONTROL_NAME, sizeof(info.ctl_name)); if(ioctl(device_fd, CTLIOCGINFO, &info) == -1) { logger(LOG_ERR, "ioctl(CTLIOCGINFO) failed: %s", strerror(errno)); @@ -92,7 +92,7 @@ static bool setup_utun(void) { struct sockaddr_ctl sc = { .sc_id = info.ctl_id, - .sc_len = sizeof sc, + .sc_len = sizeof(sc), .sc_family = AF_SYSTEM, .ss_sysaddr = AF_SYS_CONTROL, .sc_unit = unit + 1, @@ -104,7 +104,7 @@ static bool setup_utun(void) { } char name[64] = ""; - socklen_t len = sizeof name; + socklen_t len = sizeof(name); if(getsockopt(device_fd, SYSPROTO_CONTROL, UTUN_OPT_IFNAME, name, &len)) { iface = xstrdup(device); } else { @@ -198,18 +198,19 @@ static bool setup_device(void) { // Guess what the corresponding interface is called - char *realname; + char *realname = NULL; #if defined(HAVE_FDEVNAME) - realname = fdevname(device_fd) ? : device; + realname = fdevname(device_fd); #elif defined(HAVE_DEVNAME) struct stat buf; if(!fstat(device_fd, &buf)) - realname = devname(buf.st_rdev, S_IFCHR) ? : device; -#else - realname = device; + realname = devname(buf.st_rdev, S_IFCHR); #endif + if(!realname) + realname = device; + if(!get_config_string(lookup_config(config_tree, "Interface"), &iface)) iface = xstrdup(strrchr(realname, '/') ? strrchr(realname, '/') + 1 : realname); else if(strcmp(iface, strrchr(realname, '/') ? strrchr(realname, '/') + 1 : realname)) @@ -224,7 +225,7 @@ static bool setup_device(void) { #ifdef TUNSIFHEAD { const int zero = 0; - if(ioctl(device_fd, TUNSIFHEAD, &zero, sizeof zero) == -1) { + if(ioctl(device_fd, TUNSIFHEAD, &zero, sizeof(zero)) == -1) { logger(LOG_ERR, "System call `%s' failed: %s", "ioctl", strerror(errno)); return false; } @@ -233,7 +234,7 @@ static bool setup_device(void) { #if defined(TUNSIFMODE) && defined(IFF_BROADCAST) && defined(IFF_MULTICAST) { const int mode = IFF_BROADCAST | IFF_MULTICAST; - ioctl(device_fd, TUNSIFMODE, &mode, sizeof mode); + ioctl(device_fd, TUNSIFMODE, &mode, sizeof(mode)); } #endif @@ -243,7 +244,7 @@ static bool setup_device(void) { #ifdef TUNSIFHEAD { const int one = 1; - if(ioctl(device_fd, TUNSIFHEAD, &one, sizeof one) == -1) { + if(ioctl(device_fd, TUNSIFHEAD, &one, sizeof(one)) == -1) { logger(LOG_ERR, "System call `%s' failed: %s", "ioctl", strerror(errno)); return false; } @@ -252,7 +253,7 @@ static bool setup_device(void) { #if defined(TUNSIFMODE) && defined(IFF_BROADCAST) && defined(IFF_MULTICAST) { const int mode = IFF_BROADCAST | IFF_MULTICAST; - ioctl(device_fd, TUNSIFMODE, &mode, sizeof mode); + ioctl(device_fd, TUNSIFMODE, &mode, sizeof(mode)); } #endif @@ -428,7 +429,7 @@ static bool write_packet(vpn_packet_t *packet) { return false; } - memcpy(packet->data + 10, &type, sizeof type); + memcpy(packet->data + 10, &type, sizeof(type)); if(write(device_fd, packet->data + 10, packet->len - 10) < 0) { logger(LOG_ERR, "Can't write to %s %s: %s", device_info, device,