Revert "iputils: switch to new upstream"

This reverts commit 77d3ac8e3e.
This reverts commit e665b3df2a.

Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
John Crispin 2017-08-24 08:08:42 +02:00
parent fc48aebdc1
commit d99c52765d
8 changed files with 330 additions and 101 deletions

View File

@ -13,7 +13,7 @@ PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-s$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.skbuff.net/iputils
PKG_HASH:=f813092f03d17294fd23544b129b95cdb87fe19f7970a51908a6b88509acad8a
PKG_HASH:=fd3af46c80ebb99607c2ca1f2a3608b6fe828e25bbec6e54f2afd25f6ddb6ee7
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKG_LICENSE:=GPL-2.0+
@ -68,7 +68,7 @@ endef
define Package/iputils-ping6
$(call Package/iputils/Default)
TITLE:=iputils - ping6
DEPENDS+= @IPV6 +libopenssl
DEPENDS+= @IPV6 +USE_GLIBC:libopenssl
endef
define Package/iputils-ping6/description

View File

@ -0,0 +1,14 @@
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) $(DEFINES)
-IPV4_TARGETS=tracepath ping clockdiff rdisc arping tftpd rarpd
-IPV6_TARGETS=tracepath6 traceroute6 ping6
+IPV4_TARGETS=tracepath ping clockdiff arping tftpd
+IPV6_TARGETS=tracepath6 traceroute6 ping6
TARGETS=$(IPV4_TARGETS) $(IPV6_TARGETS)
LASTTAG:=`git describe HEAD | sed -e 's/-.*//'`

View File

@ -0,0 +1,14 @@
--- a/Makefile
+++ b/Makefile
@@ -18,7 +18,10 @@ CFLAGS=$(CCOPT) $(GLIBCFIX) $(DEFINES)
IPV4_TARGETS=tracepath ping clockdiff arping tftpd
IPV6_TARGETS=tracepath6 traceroute6 ping6
-TARGETS=$(IPV4_TARGETS) $(IPV6_TARGETS)
+TARGETS=$(IPV4_TARGETS)
+ifeq ($(CONFIG_IPV6),y)
+ TARGETS=$(IPV4_TARGETS) $(IPV6_TARGETS)
+endif
LASTTAG:=`git describe HEAD | sed -e 's/-.*//'`
TAG:=`date +s%Y%m%d`

View File

@ -0,0 +1,18 @@
--- a/Makefile
+++ b/Makefile
@@ -30,9 +30,13 @@ all: $(TARGETS)
tftpd: tftpd.o tftpsubs.o
-arping: arping.o -lsysfs
+arping: arping.o
+ $(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
+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

View File

@ -1,99 +0,0 @@
Index: iputils-s20101006/tracepath.c
===================================================================
--- iputils-s20101006.orig/tracepath.c
+++ iputils-s20101006/tracepath.c
@@ -14,13 +14,13 @@
#include <unistd.h>
#include <sys/socket.h>
#include <linux/types.h>
+#include <sys/time.h>
#include <linux/errqueue.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <netinet/in.h>
#include <resolv.h>
-#include <sys/time.h>
#include <sys/uio.h>
#include <arpa/inet.h>
Index: iputils-s20101006/ping_common.h
===================================================================
--- iputils-s20101006.orig/ping_common.h
+++ iputils-s20101006/ping_common.h
@@ -7,11 +7,11 @@
#include <linux/sockios.h>
#include <sys/file.h>
#include <sys/time.h>
-#include <sys/signal.h>
+#include <signal.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <sys/uio.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <ctype.h>
#include <errno.h>
#include <string.h>
@@ -20,7 +20,9 @@
#include <netinet/in.h>
#include <arpa/inet.h>
#include <linux/types.h>
+#include <sys/types.h>
#include <linux/errqueue.h>
+#include <asm/param.h>
#include "SNAPSHOT.h"
Index: iputils-s20101006/clockdiff.c
===================================================================
--- iputils-s20101006.orig/clockdiff.c
+++ iputils-s20101006/clockdiff.c
@@ -14,7 +14,6 @@
#include <netinet/ip.h>
#include <netinet/ip_icmp.h>
#define TSPTYPES
-#include <protocols/timed.h>
#include <fcntl.h>
#include <netdb.h>
#include <arpa/inet.h>
Index: iputils-s20101006/Makefile
===================================================================
--- iputils-s20101006.orig/Makefile
+++ iputils-s20101006/Makefile
@@ -16,7 +16,7 @@ CC=gcc
CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g
CFLAGS=$(CCOPT) $(GLIBCFIX) $(DEFINES)
-IPV4_TARGETS=tracepath ping clockdiff rdisc arping tftpd rarpd
+IPV4_TARGETS=tracepath ping clockdiff arping tftpd
IPV6_TARGETS=tracepath6 traceroute6 ping6
TARGETS=$(IPV4_TARGETS) $(IPV6_TARGETS)
@@ -27,9 +27,11 @@ all: $(TARGETS)
tftpd: tftpd.o tftpsubs.o
-arping: arping.o -lsysfs
+arping: arping.o
+ $(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
ping.o ping6.o ping_common.o: ping_common.h
tftpd.o tftpsubs.o: tftp.h
Index: iputils-s20101006/arping.c
===================================================================
--- iputils-s20101006.orig/arping.c
+++ iputils-s20101006/arping.c
@@ -15,7 +15,7 @@
#include <linux/sockios.h>
#include <sys/file.h>
#include <sys/time.h>
-#include <sys/signal.h>
+#include <signal.h>
#include <sys/ioctl.h>
#include <linux/if.h>
#include <linux/if_packet.h>

View 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__ */

View File

@ -0,0 +1,11 @@
--- a/ping6.c
+++ b/ping6.c
@@ -66,6 +66,8 @@ char copyright[] =
* More statistics could always be gathered.
* This program has to run SUID to ROOT to access the ICMP socket.
*/
+
+#define _GNU_SOURCE
#include "ping_common.h"
#include <linux/filter.h>

View File

@ -0,0 +1,71 @@
--- a/ping_common.h
+++ b/ping_common.h
@@ -2,6 +2,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
+#include <sys/types.h>
#include <sys/param.h>
#include <sys/socket.h>
#include <linux/sockios.h>
@@ -11,7 +12,7 @@
#include <sys/ioctl.h>
#include <net/if.h>
#include <sys/uio.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <ctype.h>
#include <errno.h>
#include <string.h>
@@ -24,6 +25,10 @@
#include "SNAPSHOT.h"
+#ifndef HZ
+#define HZ 100
+#endif
+
#define DEFDATALEN (64 - 8) /* default data length */
#define MAXWAIT 10 /* max seconds to wait for response */
--- a/clockdiff.c
+++ b/clockdiff.c
@@ -13,8 +13,6 @@
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/ip_icmp.h>
-#define TSPTYPES
-#include <protocols/timed.h>
#include <fcntl.h>
#include <netdb.h>
#include <arpa/inet.h>
--- a/tracepath.c
+++ b/tracepath.c
@@ -13,6 +13,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <sys/socket.h>
+#include <sys/time.h>
#include <linux/types.h>
#include <linux/errqueue.h>
#include <errno.h>
--- a/ping.c
+++ b/ping.c
@@ -661,8 +661,15 @@ int send_probe()
do {
static struct iovec iov = {outpack, 0};
- static struct msghdr m = { &whereto, sizeof(whereto),
- &iov, 1, &cmsg, 0, 0 };
+ static struct msghdr m = {
+ .msg_name = &whereto,
+ .msg_namelen = sizeof(whereto),
+ .msg_iov = &iov,
+ .msg_iovlen = 1,
+ .msg_control = &cmsg,
+ .msg_controllen = 0,
+ .msg_flags = 0
+ };
m.msg_controllen = cmsg_len;
iov.iov_len = cc;