38 lines
1.3 KiB
Diff
38 lines
1.3 KiB
Diff
|
|
--- tinc-1.0.37/src/net_socket.c 2025-11-08 15:46:26
|
||
|
|
+++ tinc-1.0.37-patched/src/net_socket.c 2026-03-21 14:12:58
|
||
|
|
@@ -102,14 +102,14 @@
|
||
|
|
|
||
|
|
#if defined(SOL_SOCKET) && defined(SO_BINDTODEVICE)
|
||
|
|
memset(&ifr, 0, sizeof(ifr));
|
||
|
|
- strncpy(ifr.ifr_ifrn.ifrn_name, iface, IFNAMSIZ);
|
||
|
|
- ifr.ifr_ifrn.ifrn_name[IFNAMSIZ - 1] = 0;
|
||
|
|
+ strncpy(ifr.ifr_name, iface, IFNAMSIZ);
|
||
|
|
+ ifr.ifr_name[IFNAMSIZ - 1] = 0;
|
||
|
|
free(iface);
|
||
|
|
|
||
|
|
status = setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, (void *)&ifr, sizeof(ifr));
|
||
|
|
|
||
|
|
if(status) {
|
||
|
|
- logger(LOG_ERR, "Can't bind to interface %s: %s", ifr.ifr_ifrn.ifrn_name, strerror(errno));
|
||
|
|
+ logger(LOG_ERR, "Can't bind to interface %s: %s", ifr.ifr_name, strerror(errno));
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
@@ -157,13 +157,13 @@
|
||
|
|
struct ifreq ifr;
|
||
|
|
|
||
|
|
memset(&ifr, 0, sizeof(ifr));
|
||
|
|
- strncpy(ifr.ifr_ifrn.ifrn_name, iface, IFNAMSIZ);
|
||
|
|
- ifr.ifr_ifrn.ifrn_name[IFNAMSIZ - 1] = 0;
|
||
|
|
+ strncpy(ifr.ifr_name, iface, IFNAMSIZ);
|
||
|
|
+ ifr.ifr_name[IFNAMSIZ - 1] = 0;
|
||
|
|
free(iface);
|
||
|
|
|
||
|
|
if(setsockopt(nfd, SOL_SOCKET, SO_BINDTODEVICE, (void *)&ifr, sizeof(ifr))) {
|
||
|
|
closesocket(nfd);
|
||
|
|
- logger(LOG_ERR, "Can't bind to interface %s: %s", ifr.ifr_ifrn.ifrn_name, strerror(sockerrno));
|
||
|
|
+ logger(LOG_ERR, "Can't bind to interface %s: %s", ifr.ifr_name, strerror(sockerrno));
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|