From: acoul Date: Thu, 31 Mar 2016 05:05:14 +0000 (+0300) Subject: package/mtr: add mtr X-Git-Url: http://git.ozo.com/?p=openwrt-working-2016%2F.git;a=commitdiff_plain;h=c97c5d461ebafd0c78bf6e56691d2d4b196a3956 package/mtr: add mtr --- diff --git a/package/network/services/mtr/Makefile b/package/network/services/mtr/Makefile new file mode 100644 index 0000000000..f3ca9bacff --- /dev/null +++ b/package/network/services/mtr/Makefile @@ -0,0 +1,73 @@ +# +# Copyright (C) 2006-2015 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=mtr +PKG_REV:=dd2b750 +PKG_VERSION:=0.85+newdns-$(PKG_REV) +PKG_RELEASE:=2 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/traviscross/mtr.git +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE_VERSION:=$(PKG_REV) +PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz + +PKG_LICENSE:=GPL-2.0+ +PKG_LICENSE_FILES:=COPYING + +PKG_INSTALL:=1 + +PKG_FIXUP:=autoreconf + +include $(INCLUDE_DIR)/package.mk + +define Package/mtr + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libncurses + TITLE:=Full screen ncurses traceroute tool + URL:=http://www.bitwizard.nl/mtr/ + PKG_MAINTAINER:=Jonathan McCrohan +endef + +define Package/mtr/description + mtr combines the functionality of the 'traceroute' and 'ping' programs + in a single network diagnostic tool. + As mtr starts, it investigates the network connection between the host + mtr runs on and a user-specified destination host. After it + determines the address of each network hop between the machines, + it sends a sequence ICMP ECHO requests to each one to determine the + quality of the link to each machine. As it does this, it prints + running statistics about each machine. +endef + +CONFIGURE_ARGS += \ + --without-gtk \ + --without-glib \ + $(call autoconf_bool,CONFIG_IPV6,ipv6) + +define Build/Configure + (cd $(PKG_BUILD_DIR); touch \ + configure.in \ + aclocal.m4 \ + Makefile.in \ + img/Makefile.in \ + stamp-h.in \ + config.h.in \ + configure \ + ); + $(call Build/Configure/Default) +endef + +define Package/mtr/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/mtr $(1)/usr/sbin/ +endef + +$(eval $(call BuildPackage,mtr)) diff --git a/package/network/services/mtr/patches/100-disabled-ipv6-fix.patch b/package/network/services/mtr/patches/100-disabled-ipv6-fix.patch new file mode 100644 index 0000000000..5ef9984ff0 --- /dev/null +++ b/package/network/services/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