From eec4114162c06cb5b592ecc0a3487ebd2189a1a0 Mon Sep 17 00:00:00 2001 From: Dennis Herrmann Date: Sat, 9 Jul 2011 09:49:16 +0000 Subject: [PATCH] - Fix listing for Router Solicitations PR: ports/158697 Submitted by: Geoffrey Sisson --- net/radvd/files/patch-device-bsd44.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 net/radvd/files/patch-device-bsd44.c diff --git a/net/radvd/files/patch-device-bsd44.c b/net/radvd/files/patch-device-bsd44.c new file mode 100644 index 000000000000..4f36c217a46f --- /dev/null +++ b/net/radvd/files/patch-device-bsd44.c @@ -0,0 +1,27 @@ +--- ./device-bsd44.c.orig 2011-02-26 17:00:23.000000000 +0100 ++++ ./device-bsd44.c 2011-07-08 13:13:44.000000000 +0200 +@@ -189,6 +189,24 @@ + + int setup_allrouters_membership(struct Interface *iface) + { ++ struct ipv6_mreq mreq; ++ ++ memset(&mreq, 0, sizeof(mreq)); ++ mreq.ipv6mr_interface = iface->if_index; ++ ++ /* all-routers multicast address */ ++ if (inet_pton(AF_INET6, "ff02::2", ++ &mreq.ipv6mr_multiaddr.s6_addr) != 1) { ++ flog(LOG_ERR, "inet_pton failed"); ++ return (-1); ++ } ++ ++ if (setsockopt(sock, IPPROTO_IPV6, IPV6_JOIN_GROUP, ++ &mreq, sizeof(mreq)) < 0) { ++ flog(LOG_ERR, "can't join ipv6-allrouters on %s", iface->Name); ++ return (-1); ++ } ++ + return (0); + } +