From f17dd769f1a6aa0b2c9f4fc20c389720f41f89c8 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Tue, 30 Jun 2015 17:32:03 +0200 Subject: [PATCH] mtr: fix build with globally disabled IPv6 The current mtr does not build if IPv6 is disabled globally, add a patch to fix the build in this case. Signed-off-by: Jo-Philipp Wich --- net/mtr/Makefile | 2 +- net/mtr/patches/100-disabled-ipv6-fix.patch | 49 +++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 net/mtr/patches/100-disabled-ipv6-fix.patch diff --git a/net/mtr/Makefile b/net/mtr/Makefile index 1a4660111..f3ca9bacf 100644 --- a/net/mtr/Makefile +++ b/net/mtr/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mtr PKG_REV:=dd2b750 PKG_VERSION:=0.85+newdns-$(PKG_REV) -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/traviscross/mtr.git diff --git a/net/mtr/patches/100-disabled-ipv6-fix.patch b/net/mtr/patches/100-disabled-ipv6-fix.patch new file mode 100644 index 000000000..5ef9984ff --- /dev/null +++ b/net/mtr/patches/100-disabled-ipv6-fix.patch @@ -0,0 +1,49 @@ +--- a/net.c ++++ b/net.c +@@ -307,9 +307,11 @@ void net_send_tcp(int index) + struct sockaddr_storage local; + struct sockaddr_storage remote; + struct sockaddr_in *local4 = (struct sockaddr_in *) &local; +- struct sockaddr_in6 *local6 = (struct sockaddr_in6 *) &local; + struct sockaddr_in *remote4 = (struct sockaddr_in *) &remote; ++#ifdef ENABLE_IPV6 ++ struct sockaddr_in6 *local6 = (struct sockaddr_in6 *) &local; + struct sockaddr_in6 *remote6 = (struct sockaddr_in6 *) &remote; ++#endif + socklen_t len; + + ttl = index + 1; +@@ -566,8 +568,10 @@ void net_send_query(int index) + + /* sendto() assumes packet length includes the IPv4 header but not the + IPv6 header. */ +- spacketsize = abs(packetsize) - +- ( ( af == AF_INET ) ? 0 : sizeof (struct ip6_hdr) ); ++ spacketsize = abs(packetsize); ++#ifdef ENABLE_IPV6 ++ spacketsize -= ( ( af == AF_INET ) ? 0 : sizeof (struct ip6_hdr) ); ++#endif + rv = sendto(sendsock, packet, spacketsize, 0, remotesockaddr, salen); + if (first && (rv < 0) && ((errno == EINVAL) || (errno == EMSGSIZE))) { + /* Try the first packet again using host byte order. */ +--- a/dns.c ++++ b/dns.c +@@ -49,7 +49,7 @@ + #include + #include + //#include +-//#include ++#include + #include + #include + #include +--- a/net.h ++++ b/net.h +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #ifdef ENABLE_IPV6 + #include