By default, at least on Linux, opening a PF_INET6 socket also
grabs the matching IPv4 port.  This patch stops that.

Only tested on Linux.  Unknown how this will work on *BSD or WinXX.
---
 udp6.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/udp6.c b/udp6.c
index f098b8c..54df133 100644
--- a/udp6.c
+++ b/udp6.c
@@ -121,6 +121,10 @@ static int open_socket_ipv6(const char *name, struct 
in6_addr mc_addr[2], short
 
        *interface_index = index;
 
+       if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof(on))) {
+               pr_err("setsockopt IPV6_V6ONLY failed: %m");
+               goto no_option;
+       }
        if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on))) {
                pr_err("setsockopt SO_REUSEADDR failed: %m");
                goto no_option;
-- 
2.4.6

Attachment: pgpGrezNM7A2k.pgp
Description: OpenPGP digital signature

------------------------------------------------------------------------------
_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to