summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorinitramfs <initramfs@initramfs.io>2022-11-03 09:31:23 +0800
committerinitramfs <initramfs@initramfs.io>2022-11-03 09:31:23 +0800
commitda47ffa55c49fd4bee82233f6adad26fbcca1755 (patch)
tree69f22b84ab2f7f8b72b1de6ca0effd6eb783431d
parentded4533d253aa51832a799d87443ace7b8c18bb4 (diff)
downloadvyos-build-da47ffa55c49fd4bee82233f6adad26fbcca1755.tar.gz
vyos-build-da47ffa55c49fd4bee82233f6adad26fbcca1755.zip
packages: wide-dhcpv6: T4760: fix support for multiple dhcp6c instances
This commit adds a patch to the WIDE DHCPv6 client forcing it to bind to the last network interface specified on the command line, allowing multiple concurrent instances of the daemon running without having a single daemon receiving all the incoming DHCPv6 packets.
-rw-r--r--packages/wide-dhcpv6/patches/0024-bind-to-single-socket.patch17
1 files changed, 17 insertions, 0 deletions
diff --git a/packages/wide-dhcpv6/patches/0024-bind-to-single-socket.patch b/packages/wide-dhcpv6/patches/0024-bind-to-single-socket.patch
new file mode 100644
index 00000000..b5751325
--- /dev/null
+++ b/packages/wide-dhcpv6/patches/0024-bind-to-single-socket.patch
@@ -0,0 +1,17 @@
+diff --git a/dhcp6c.c b/dhcp6c.c
+index 1caaaa5..04ce9c5 100644
+--- a/dhcp6c.c
++++ b/dhcp6c.c
+@@ -217,6 +217,12 @@ main(argc, argv)
+ argv[0]);
+ exit(1);
+ }
++
++ if (setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, argv[0], strlen(argv[0])) != 0) {
++ debug_printf(LOG_ERR, FNAME, "failed to bind %s", argv[0]);
++ exit(1);
++ }
++
+ argv++;
+ }
+