/branches/gl-inet/package/network/utils/iputils/Makefile |
@@ -0,0 +1,182 @@ |
# |
# Copyright (C) 2006-2010 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:=iputils |
PKG_VERSION:=20101006 |
PKG_RELEASE:=1 |
|
PKG_SOURCE:=$(PKG_NAME)-s$(PKG_VERSION).tar.bz2 |
PKG_SOURCE_URL:=http://www.skbuff.net/iputils |
PKG_HASH:=fd3af46c80ebb99607c2ca1f2a3608b6fe828e25bbec6e54f2afd25f6ddb6ee7 |
|
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io> |
PKG_LICENSE:=GPL-2.0+ |
PKG_CPE_ID:=cpe:/a:skbuff:iputils |
|
PKG_BUILD_DEPENDS:=sysfsutils |
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-s$(PKG_VERSION) |
|
include $(INCLUDE_DIR)/package.mk |
|
|
define Package/iputils/Default |
SECTION:=net |
CATEGORY:=Network |
URL:=http://www.skbuff.net/iputils |
endef |
|
|
define Package/iputils-arping |
$(call Package/iputils/Default) |
TITLE:=iputils - arping |
DEPENDS+= +libsysfs |
endef |
|
define Package/iputils-arping/description |
Program arping from iputils. |
Sends ARP REQUEST to a neighbour host. |
endef |
|
|
define Package/iputils-clockdiff |
$(call Package/iputils/Default) |
TITLE:=iputils - clockdiff |
endef |
|
define Package/iputils-clockdiff/description |
Program clockdiff from iputils. |
Measures clock difference between hosts. |
endef |
|
|
define Package/iputils-ping |
$(call Package/iputils/Default) |
TITLE:=iputils - ping |
endef |
|
define Package/iputils-ping/description |
Program ping from iputils. |
Sends ICMP ECHO_REQUEST to network hosts (IPv4). |
endef |
|
|
define Package/iputils-ping6 |
$(call Package/iputils/Default) |
TITLE:=iputils - ping6 |
DEPENDS+= @IPV6 +USE_GLIBC:libopenssl |
endef |
|
define Package/iputils-ping6/description |
Program ping6 from iputils. |
Sends ICMP ECHO_REQUEST to network hosts (IPv6). |
endef |
|
|
define Package/iputils-tftpd |
$(call Package/iputils/Default) |
TITLE:=iputils - tftpd |
endef |
|
define Package/iputils-tftpd/description |
Program tftpd from iputils |
Trivial File Transfer Protocol server. |
endef |
|
|
define Package/iputils-tracepath |
$(call Package/iputils/Default) |
TITLE:=iputils - tracepath |
endef |
|
define Package/iputils-tracepath/description |
Program tracepath from iputils. |
Traces path to a network host discovering MTU along this path (IPv4). |
endef |
|
|
define Package/iputils-tracepath6 |
$(call Package/iputils/Default) |
TITLE:=iputils - tracepath6 |
DEPENDS+= @IPV6 |
endef |
|
define Package/iputils-tracepath6/description |
Program tracepath6 from iputils. |
Traces path to a network host discovering MTU along this path (IPv6). |
endef |
|
|
define Package/iputils-traceroute6 |
$(call Package/iputils/Default) |
TITLE:=iputils - traceroute6 |
DEPENDS+= @IPV6 |
endef |
|
define Package/iputils-traceroute6/description |
Program traceroute6 from iputils. |
Traces path to a network host (IPv6). |
endef |
|
ifdef CONFIG_USE_MUSL |
TARGET_CFLAGS += -D__UCLIBC__ |
endif |
|
MAKE_FLAGS += \ |
CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_LDFLAGS)" \ |
CONFIG_IPV6="$(CONFIG_IPV6)" \ |
CONFIG_USE_UCLIBC="$(CONFIG_USE_UCLIBC)$(CONFIG_USE_MUSL)" \ |
|
define Package/iputils-arping/install |
$(INSTALL_DIR) $(1)/usr/bin |
$(INSTALL_BIN) $(PKG_BUILD_DIR)/arping $(1)/usr/bin/ |
endef |
|
define Package/iputils-clockdiff/install |
$(INSTALL_DIR) $(1)/usr/bin |
$(INSTALL_BIN) $(PKG_BUILD_DIR)/clockdiff $(1)/usr/bin/ |
endef |
|
define Package/iputils-ping/install |
$(INSTALL_DIR) $(1)/usr/bin |
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ping $(1)/usr/bin/ |
endef |
|
define Package/iputils-ping6/install |
$(INSTALL_DIR) $(1)/usr/bin |
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ping6 $(1)/usr/bin/ |
endef |
|
define Package/iputils-tftpd/install |
$(INSTALL_DIR) $(1)/usr/sbin |
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tftpd $(1)/usr/sbin/ |
endef |
|
define Package/iputils-tracepath/install |
$(INSTALL_DIR) $(1)/usr/bin |
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tracepath $(1)/usr/bin/ |
endef |
|
define Package/iputils-tracepath6/install |
$(INSTALL_DIR) $(1)/usr/bin |
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tracepath6 $(1)/usr/bin/ |
endef |
|
define Package/iputils-traceroute6/install |
$(INSTALL_DIR) $(1)/usr/bin |
$(INSTALL_BIN) $(PKG_BUILD_DIR)/traceroute6 $(1)/usr/bin/ |
endef |
|
$(eval $(call BuildPackage,iputils-arping)) |
$(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)) |
/branches/gl-inet/package/network/utils/iputils/patches/010-ping6_uclibc_resolv.patch |
@@ -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__ */ |