[PATCH] Update iputils to 20101006
This patch also fixes the ping6 linking issues with uClibc by disabling the libresolv-based stuff (the "-N nodeinfo-option" feature). Signed-off-by: Luis Alberto Dallos Roa <luis.dallos at gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/packages@26994 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
358b1ea86b
commit
3475b58d04
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=iputils
|
||||
PKG_VERSION:=20100418
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=20101006
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-s$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=http://www.skbuff.net/iputils
|
||||
PKG_MD5SUM:=df6b0062118cdc5c62e3c810f831e976
|
||||
PKG_MD5SUM:=a36c25e9ec17e48be514dc0485e7376c
|
||||
|
||||
PKG_BUILD_DEPENDS:=sysfsutils
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-s$(PKG_VERSION)
|
||||
@ -66,7 +66,7 @@ endef
|
||||
define Package/iputils-ping6
|
||||
$(call Package/iputils/Default)
|
||||
TITLE:=iputils - ping6
|
||||
DEPENDS+= @IPV6 @BROKEN
|
||||
DEPENDS+= @IPV6
|
||||
endef
|
||||
|
||||
define Package/iputils-ping6/description
|
||||
@ -77,7 +77,6 @@ endef
|
||||
|
||||
define Package/iputils-tftpd
|
||||
$(call Package/iputils/Default)
|
||||
SUBMENU:=File Transfer
|
||||
TITLE:=iputils - tftpd
|
||||
endef
|
||||
|
||||
@ -101,7 +100,7 @@ endef
|
||||
define Package/iputils-tracepath6
|
||||
$(call Package/iputils/Default)
|
||||
TITLE:=iputils - tracepath6
|
||||
DEPENDS+= @IPV6 @BROKEN
|
||||
DEPENDS+= @IPV6
|
||||
endef
|
||||
|
||||
define Package/iputils-tracepath6/description
|
||||
@ -113,7 +112,7 @@ endef
|
||||
define Package/iputils-traceroute6
|
||||
$(call Package/iputils/Default)
|
||||
TITLE:=iputils - traceroute6
|
||||
DEPENDS+= @IPV6 @BROKEN
|
||||
DEPENDS+= @IPV6
|
||||
endef
|
||||
|
||||
define Package/iputils-traceroute6/description
|
||||
@ -127,6 +126,8 @@ endif
|
||||
|
||||
MAKE_FLAGS += \
|
||||
CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_LDFLAGS)" \
|
||||
CONFIG_IPV6="$(CONFIG_IPV6)" \
|
||||
CONFIG_USE_UCLIBC="$(CONFIG_USE_UCLIBC)" \
|
||||
|
||||
define Package/iputils-arping/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
@ -173,6 +174,6 @@ $(eval $(call BuildPackage,iputils-clockdiff))
|
||||
$(eval $(call BuildPackage,iputils-ping))
|
||||
$(eval $(call BuildPackage,iputils-tftpd))
|
||||
$(eval $(call BuildPackage,iputils-tracepath))
|
||||
#$(eval $(call BuildPackage,iputils-ping6))
|
||||
#$(eval $(call BuildPackage,iputils-tracepath6))
|
||||
#$(eval $(call BuildPackage,iputils-traceroute6))
|
||||
$(eval $(call BuildPackage,iputils-ping6))
|
||||
$(eval $(call BuildPackage,iputils-tracepath6))
|
||||
$(eval $(call BuildPackage,iputils-traceroute6))
|
||||
|
@ -1,9 +1,9 @@
|
||||
diff -ur iputils/Makefile iputils_new/Makefile
|
||||
--- iputils/Makefile 2002-09-20 18:23:55.000000000 +0000
|
||||
+++ iputils_new/Makefile 2007-05-17 13:59:55.000000000 +0000
|
||||
@@ -27,8 +27,8 @@
|
||||
diff -ur a/Makefile b/Makefile
|
||||
--- a/Makefile 2002-09-20 18:23:55.000000000 +0000
|
||||
+++ b/Makefile 2007-05-17 13:59:55.000000000 +0000
|
||||
@@ -16,8 +16,8 @@
|
||||
CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g
|
||||
CFLAGS=$(CCOPT) $(GLIBCFIX) -I$(KERNEL_INCLUDE) -I../include $(DEFINES)
|
||||
CFLAGS=$(CCOPT) $(GLIBCFIX) $(DEFINES)
|
||||
|
||||
-IPV4_TARGETS=tracepath ping clockdiff rdisc arping tftpd rarpd
|
||||
-IPV6_TARGETS=tracepath6 traceroute6 ping6
|
||||
@ -11,4 +11,4 @@ diff -ur iputils/Makefile iputils_new/Makefile
|
||||
+IPV6_TARGETS=tracepath6 traceroute6 ping6
|
||||
TARGETS=$(IPV4_TARGETS) $(IPV6_TARGETS)
|
||||
|
||||
all: check-kernel $(TARGETS)
|
||||
LASTTAG:=`git describe HEAD | sed -e 's/-.*//'`
|
||||
|
@ -10,5 +10,5 @@
|
||||
+ TARGETS=$(IPV4_TARGETS) $(IPV6_TARGETS)
|
||||
+endif
|
||||
|
||||
LASTTAG:=`git-describe HEAD | sed -e 's/-.*//'`
|
||||
LASTTAG:=`git describe HEAD | sed -e 's/-.*//'`
|
||||
TAG:=`date +s%Y%m%d`
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -30,9 +30,11 @@ all: $(TARGETS)
|
||||
@@ -30,9 +30,13 @@ all: $(TARGETS)
|
||||
|
||||
|
||||
tftpd: tftpd.o tftpsubs.o
|
||||
@ -9,8 +9,10 @@
|
||||
+ $(CC) $(CFLAGS) -o $@ arping.o -lsysfs
|
||||
ping: ping.o ping_common.o
|
||||
-ping6: ping6.o ping_common.o -lresolv -lcrypto
|
||||
+ping6: ping6.o ping_common.o
|
||||
+ $(CC) $(CFLAGS) -o $@ ping6.o ping_common.o -lresolv -lcrypto
|
||||
+ping6: ping6.o ping_common.o
|
||||
+ifneq ($(CONFIG_USE_UCLIBC),y)
|
||||
+ $(CC) $(CFLAGS) -o $@ ping6.o ping_common.o -lresolv -lcrypto
|
||||
+endif
|
||||
ping.o ping6.o ping_common.o: ping_common.h
|
||||
tftpd.o tftpsubs.o: tftp.h
|
||||
|
||||
|
200
net/iputils/patches/010-ping6_uclibc_resolv.patch
Normal file
200
net/iputils/patches/010-ping6_uclibc_resolv.patch
Normal file
@ -0,0 +1,200 @@
|
||||
diff --git a/ping6.c b/ping6.c
|
||||
index c5ff881..ef2243f 100644
|
||||
--- a/ping6.c
|
||||
+++ b/ping6.c
|
||||
@@ -71,9 +71,11 @@ char copyright[] =
|
||||
#include <linux/filter.h>
|
||||
#include <netinet/ip6.h>
|
||||
#include <netinet/icmp6.h>
|
||||
+#ifndef __UCLIBC__
|
||||
#include <resolv.h>
|
||||
|
||||
#include "ping6_niquery.h"
|
||||
+#endif /* __UCLIBC__ */
|
||||
|
||||
#ifndef SOL_IPV6
|
||||
#define SOL_IPV6 IPPROTO_IPV6
|
||||
@@ -154,6 +156,7 @@ int pmtudisc=-1;
|
||||
|
||||
static int icmp_sock;
|
||||
|
||||
+#ifndef __UCLIBC__
|
||||
#include <openssl/md5.h>
|
||||
|
||||
/* Node Information query */
|
||||
@@ -165,6 +168,7 @@ int ni_subject_type = 0;
|
||||
char *ni_group;
|
||||
|
||||
__u8 ni_nonce[8];
|
||||
+#endif /* __UCLIBC__ */
|
||||
|
||||
static struct in6_addr in6_anyaddr;
|
||||
static __inline__ int ipv6_addr_any(struct in6_addr *addr)
|
||||
@@ -223,6 +227,7 @@ unsigned int if_name2index(const char *ifname)
|
||||
return i;
|
||||
}
|
||||
|
||||
+#ifndef __UCLIBC__
|
||||
struct niquery_option {
|
||||
char *name;
|
||||
int namelen;
|
||||
@@ -512,6 +517,7 @@ char *ni_groupaddr(const char *name)
|
||||
strcat(nigroup_buf, q);
|
||||
return nigroup_buf;
|
||||
}
|
||||
+#endif /* __UCLIBC__ */
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
@@ -595,12 +601,14 @@ int main(int argc, char *argv[])
|
||||
case 'V':
|
||||
printf("ping6 utility, iputils-ss%s\n", SNAPSHOT);
|
||||
exit(0);
|
||||
+#ifndef __UCLIBC__
|
||||
case 'N':
|
||||
if (niquery_option_handler(optarg) < 0) {
|
||||
usage();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
+#endif /* __UCLIBC__ */
|
||||
COMMON_OPTIONS
|
||||
common_options(ch);
|
||||
break;
|
||||
@@ -663,6 +671,7 @@ int main(int argc, char *argv[])
|
||||
argc--;
|
||||
}
|
||||
|
||||
+#ifndef __UCLIBC__
|
||||
if (ni_query >= 0) {
|
||||
int i;
|
||||
for (i = 0; i < 8; i++)
|
||||
@@ -674,15 +683,20 @@ int main(int argc, char *argv[])
|
||||
ni_subject_type = NI_SUBJ_IPV6;
|
||||
}
|
||||
}
|
||||
+#endif /* __UCLIBC__ */
|
||||
|
||||
if (argc > 1)
|
||||
usage();
|
||||
else if (argc == 1) {
|
||||
target = *argv;
|
||||
} else {
|
||||
+#ifndef __UCLIBC__
|
||||
if (ni_query < 0 && ni_subject_type != NI_SUBJ_NAME)
|
||||
+#endif /* __UCLIBC__ */
|
||||
usage();
|
||||
+#ifndef __UCLIBC__
|
||||
target = ni_group;
|
||||
+#endif /* __UCLIBC__ */
|
||||
}
|
||||
|
||||
memset(&hints, 0, sizeof(hints));
|
||||
@@ -817,7 +831,11 @@ int main(int argc, char *argv[])
|
||||
exit(2);
|
||||
}
|
||||
|
||||
+#ifndef __UCLIBC__
|
||||
if (datalen >= sizeof(struct timeval) && (ni_query < 0)) {
|
||||
+#else
|
||||
+ if (datalen >= sizeof(struct timeval)) {
|
||||
+#endif /* __UCLIBC__ */
|
||||
/* can we time transfer */
|
||||
timing = 1;
|
||||
}
|
||||
@@ -866,9 +884,11 @@ int main(int argc, char *argv[])
|
||||
ICMP6_FILTER_SETPASS(ICMP6_PARAM_PROB, &filter);
|
||||
}
|
||||
|
||||
+#ifndef __UCLIBC__
|
||||
if (ni_query >= 0)
|
||||
ICMP6_FILTER_SETPASS(ICMPV6_NI_REPLY, &filter);
|
||||
else
|
||||
+#endif /* __UCLIBC__ */
|
||||
ICMP6_FILTER_SETPASS(ICMP6_ECHO_REPLY, &filter);
|
||||
|
||||
err = setsockopt(icmp_sock, IPPROTO_ICMPV6, ICMP6_FILTER, &filter,
|
||||
@@ -1100,6 +1120,7 @@ int build_echo(__u8 *_icmph)
|
||||
return cc;
|
||||
}
|
||||
|
||||
+#ifndef __UCLIBC__
|
||||
int build_niquery(__u8 *_nih)
|
||||
{
|
||||
struct ni_hdr *nih;
|
||||
@@ -1125,6 +1146,7 @@ int build_niquery(__u8 *_nih)
|
||||
|
||||
return cc;
|
||||
}
|
||||
+#endif /* __UCLIBC__ */
|
||||
|
||||
int send_probe(void)
|
||||
{
|
||||
@@ -1132,9 +1154,11 @@ int send_probe(void)
|
||||
|
||||
CLR((ntransmitted+1) % mx_dup_ck);
|
||||
|
||||
+#ifndef __UCLIBC__
|
||||
if (ni_query >= 0)
|
||||
len = build_niquery(outpack);
|
||||
else
|
||||
+#endif /* __UCLIBC__ */
|
||||
len = build_echo(outpack);
|
||||
|
||||
if (cmsglen == 0) {
|
||||
@@ -1176,6 +1200,7 @@ static void putchar_safe(char c)
|
||||
printf("\\%03o", c);
|
||||
}
|
||||
|
||||
+#ifndef __UCLIBC__
|
||||
void pr_niquery_reply_name(struct ni_hdr *nih, int len)
|
||||
{
|
||||
__u8 *h = (__u8 *)(nih + 1);
|
||||
@@ -1304,6 +1329,7 @@ void pr_niquery_reply(__u8 *_nih, int len)
|
||||
}
|
||||
putchar(';');
|
||||
}
|
||||
+#endif /* __UCLIBC__ */
|
||||
|
||||
/*
|
||||
* parse_reply --
|
||||
@@ -1353,6 +1379,7 @@ parse_reply(struct msghdr *msg, int cc, void *addr, struct timeval *tv)
|
||||
hops, 0, tv, pr_addr(&from->sin6_addr),
|
||||
pr_echo_reply))
|
||||
return 0;
|
||||
+#ifndef __UCLIBC__
|
||||
} else if (icmph->icmp6_type == ICMPV6_NI_REPLY) {
|
||||
struct ni_hdr *nih = (struct ni_hdr *)icmph;
|
||||
__u16 seq = ntohs(*(__u16 *)nih->ni_nonce);
|
||||
@@ -1363,6 +1390,7 @@ parse_reply(struct msghdr *msg, int cc, void *addr, struct timeval *tv)
|
||||
hops, 0, tv, pr_addr(&from->sin6_addr),
|
||||
pr_niquery_reply))
|
||||
return 0;
|
||||
+#endif /* __UCLIBC__ */
|
||||
} else {
|
||||
int nexthdr;
|
||||
struct ip6_hdr *iph1 = (struct ip6_hdr*)(icmph+1);
|
||||
@@ -1557,7 +1585,9 @@ void usage(void)
|
||||
"Usage: ping6 [-LUdfnqrvVaAD] [-c count] [-i interval] [-w deadline]\n"
|
||||
" [-p pattern] [-s packetsize] [-t ttl] [-I interface]\n"
|
||||
" [-M pmtudisc-hint] [-S sndbuf] [-F flowlabel] [-Q tclass]\n"
|
||||
+#ifndef __UCLIBC__
|
||||
" [[-N nodeinfo-option] ...]\n"
|
||||
+#endif /* __UCLIBC__ */
|
||||
" [hop1 ...] destination\n");
|
||||
exit(2);
|
||||
}
|
||||
diff --git a/ping6_niquery.h b/ping6_niquery.h
|
||||
index 61a5cfa..34c31f8 100644
|
||||
--- a/ping6_niquery.h
|
||||
+++ b/ping6_niquery.h
|
||||
@@ -1,3 +1,4 @@
|
||||
+#ifndef __UCLIBC__
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
/* Node Information Query */
|
||||
@@ -45,3 +46,4 @@ struct ni_hdr {
|
||||
#define NI_IPV4ADDR_F_TRUNCATE NI_IPV6ADDR_F_TRUNCATE
|
||||
#define NI_IPV4ADDR_F_ALL NI_IPV6ADDR_F_ALL
|
||||
|
||||
+#endif /* __UCLIBC__ */
|
Loading…
x
Reference in New Issue
Block a user