From d3139b660e7497547f5fec89a251b2ee56144dd4 Mon Sep 17 00:00:00 2001 From: Daniel Adolfsson Date: Sat, 17 Sep 2011 23:38:08 +0200 Subject: [PATCH] Set IPV6_UNICAST_HOPS to 255 on _ifd --- src/iface.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/iface.cc b/src/iface.cc index 77997cd..6cb6f80 100644 --- a/src/iface.cc +++ b/src/iface.cc @@ -225,6 +225,13 @@ strong_ptr iface::open_ifd(const std::string& name) return strong_ptr(); } + if(setsockopt(fd, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &hops, sizeof(hops)) < 0) + { + close(fd); + ERR("iface::open_ifd() failed IPV6_UNICAST_HOPS"); + return strong_ptr(); + } + // Switch to non-blocking mode. int on = 1; @@ -420,7 +427,7 @@ ssize_t iface::write_advert(const address& daddr, const address& taddr) opt->nd_opt_len = 1; na->nd_na_type = ND_NEIGHBOR_ADVERT; - na->nd_na_flags_reserved = ND_NA_FLAG_SOLICITED | ND_NA_FLAG_ROUTER; + na->nd_na_flags_reserved = ND_NA_FLAG_SOLICITED; // | ND_NA_FLAG_ROUTER; memcpy(&na->nd_na_target, &taddr.const_addr(), sizeof(struct in6_addr));