From c9f2e1e4d13caf06cb7740c39ab81273b5c6d9e7 Mon Sep 17 00:00:00 2001 From: cyrus Date: Mon, 17 Mar 2014 14:16:22 +0000 Subject: [PATCH] mdnsresponder: fix binding-patch git-svn-id: svn://svn.openwrt.org/openwrt/packages@39934 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- ...v6-sockets-to-interface-due-to-link-local.patch | 46 ++++++++++------------ 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/net/mdnsresponder/patches/100-Binding-IPv6-sockets-to-interface-due-to-link-local.patch b/net/mdnsresponder/patches/100-Binding-IPv6-sockets-to-interface-due-to-link-local.patch index 639a186fb..ebac1116f 100644 --- a/net/mdnsresponder/patches/100-Binding-IPv6-sockets-to-interface-due-to-link-local.patch +++ b/net/mdnsresponder/patches/100-Binding-IPv6-sockets-to-interface-due-to-link-local.patch @@ -9,30 +9,24 @@ places and mdnsd is quite confused. --- .../patches/003-ipv6-bind-to-interface.patch | 22 ++++++++++++++++++++ 1 file changed, 22 insertions(+) - create mode 100644 net/mdnsresponder/patches/003-ipv6-bind-to-interface.patch ---- /dev/null -+++ b/net/mdnsresponder/patches/003-ipv6-bind-to-interface.patch -@@ -0,0 +1,22 @@ -+diff -ur mDNSResponder-544.source/mDNSPosix/mDNSPosix.c mDNSResponder-544/mDNSPosix/mDNSPosix.c -+--- mDNSResponder-544.source/mDNSPosix/mDNSPosix.c 2013-12-14 22:54:24.000000000 +0200 -++++ mDNSResponder-544/mDNSPosix/mDNSPosix.c 2014-02-19 18:59:55.000000000 +0200 -+@@ -784,6 +784,17 @@ -+ if (err < 0) { err = errno; perror("setsockopt - IPV6_MULTICAST_HOPS"); } -+ } -+ -++#ifdef __linux__ -++#ifdef SO_BINDTODEVICE -++ if (err == 0) -++ { -++ char ifname[IFNAMSIZ]; -++ if (if_indextoname(interfaceIndex, ifname)) -++ err = setsockopt(*sktPtr, SOL_SOCKET, SO_BINDTODEVICE, ifname, strlen(ifname)); -++ } -++#endif /* SO_BINDTODEVICE */ -++#endif /* __linux__ */ -++ -+ // And start listening for packets -+ if (err == 0) -+ { -+Only in mDNSResponder-544/mDNSPosix: mDNSPosix.c~ +--- mDNSResponder-544.source/mDNSPosix/mDNSPosix.c 2013-12-14 22:54:24.000000000 +0200 ++++ mDNSResponder-544/mDNSPosix/mDNSPosix.c 2014-02-19 18:59:55.000000000 +0200 +@@ -784,6 +784,17 @@ + if (err < 0) { err = errno; perror("setsockopt - IPV6_MULTICAST_HOPS"); } + } + ++#ifdef __linux__ ++#ifdef SO_BINDTODEVICE ++ if (err == 0) ++ { ++ char ifname[IFNAMSIZ]; ++ if (if_indextoname(interfaceIndex, ifname)) ++ err = setsockopt(*sktPtr, SOL_SOCKET, SO_BINDTODEVICE, ifname, strlen(ifname)); ++ } ++#endif /* SO_BINDTODEVICE */ ++#endif /* __linux__ */ ++ + // And start listening for packets + if (err == 0) + { -- 2.11.0