ndisc6/bugfix-add-SO_BINDTODEVICE.patch
2022-04-06 14:13:02 +08:00

28 lines
802 B
Diff

From 03a0daf4b4dc010debf534f28c37cf65e07c1037 Mon Sep 17 00:00:00 2001
From: gaoxingwang <gaoxingwang@huawei.com>
Date: Thu, 15 Jul 2021 18:37:32 +0800
Subject: [PATCH] add SO_BINDTODEVICE
---
src/ndisc.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/ndisc.c b/src/ndisc.c
index bfd7cb7..0adedf5 100644
--- a/src/ndisc.c
+++ b/src/ndisc.c
@@ -783,6 +783,10 @@ ndisc (const char *name, const char *ifname, unsigned flags, unsigned retry,
}
setsockopt (fd, SOL_SOCKET, SO_DONTROUTE, &(int){ 1 }, sizeof (int));
+ struct ifreq req;
+ memset(&req, 0, sizeof(struct ifreq));
+ strncpy(req.ifr_name, ifname, IFNAMSIZ - 1);
+ setsockopt (fd, SOL_SOCKET, SO_BINDTODEVICE, (void *)&req, sizeof(req));
/* sets Hop-by-hop limit to 255 */
sethoplimit (fd, 255);
--
2.27.0