summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/iputils/iputils.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core-testing/iputils/iputils.patch')
-rw-r--r--abs/core-testing/iputils/iputils.patch1170
1 files changed, 0 insertions, 1170 deletions
diff --git a/abs/core-testing/iputils/iputils.patch b/abs/core-testing/iputils/iputils.patch
deleted file mode 100644
index 4e99b75..0000000
--- a/abs/core-testing/iputils/iputils.patch
+++ /dev/null
@@ -1,1170 +0,0 @@
---- iputils/ping_common.c.old Thu Mar 14 16:58:47 2002
-+++ iputils/ping_common.c Thu Mar 14 17:10:54 2002
-@@ -775,10 +775,10 @@
- tmdev = llsqrt(tsum2 - tsum * tsum);
-
- printf("rtt min/avg/max/mdev = %ld.%03ld/%lu.%03ld/%ld.%03ld/%ld.%03ld ms",
-- tmin/1000, tmin%1000,
-+ (long)tmin/1000, (long)tmin%1000,
- (unsigned long)(tsum/1000), (long)(tsum%1000),
-- tmax/1000, tmax%1000,
-- tmdev/1000, tmdev%1000
-+ (long)tmax/1000, (long)tmax%1000,
-+ (long)tmdev/1000, (long)tmdev%1000
- );
- }
- if (pipesize > 1)
-@@ -809,10 +809,10 @@
- tavg = tsum / (nreceived + nrepeats);
-
- fprintf(stderr, ", min/avg/ewma/max = %ld.%03ld/%lu.%03ld/%d.%03d/%ld.%03ld ms",
-- tmin/1000, tmin%1000,
-+ (long)tmin/1000, (long)tmin%1000,
- tavg/1000, tavg%1000,
- rtt/8000, (rtt/8)%1000,
-- tmax/1000, tmax%1000
-+ (long)tmax/1000, (long)tmax%1000
- );
- }
- fprintf(stderr, "\n");
---- iputils/rdisc.c-org Wed May 1 00:27:34 2002
-+++ iputils/rdisc.c Wed May 1 00:32:40 2002
-@@ -63,6 +63,8 @@
-
- #include "SNAPSHOT.h"
-
-+#define RDISC_SERVER
-+
- struct interface
- {
- struct in_addr address; /* Used to identify the interface */
-@@ -163,11 +165,8 @@
- int debugfile;
-
- char usage[] =
--"Usage: rdisc [-b] [-d] [-s] [-v] [-f] [-a] [-V] [send_address] [receive_address]\n"
--#ifdef RDISC_SERVER
--" rdisc -r [-b] [-d] [-s] [-v] [-f] [-a] [-V] [-p <preference>] [-T <secs>] \n"
--" [send_address] [receive_address]\n"
--#endif
-+"Usage: rdisc -r [-b] [-d] [-s] [-v] [-f] [-a] [-V] [-p <preference>] [-T <secs>] \n"
-+" [send_address] [receive_address]\n"
- ;
-
-
-@@ -875,7 +874,9 @@
- ((max_adv_int - min_adv_int)
- * (random() % 1000)/1000);
- } else {
-- if (!is_directly_connected(ip->saddr)) {
-+ struct in_addr tmp;
-+ tmp.s_addr = ip->saddr;
-+ if (!is_directly_connected(tmp)) {
- if (verbose)
- logtrace("ICMP %s from %s: source not directly connected\n",
- pr_type((int)icp->type),
-@@ -945,7 +946,6 @@
- {
- #ifdef RDISC_SERVER
- if (responder) {
-- int i;
-
- /* Send out a packet with a preference so that all
- * hosts will know that we are dead.
---- iputils/ping_common.c.countermeasures Tue May 21 10:06:05 2002
-+++ iputils/ping_common.c Tue May 21 10:12:42 2002
-@@ -628,7 +628,8 @@
- tvsub(tv, &tmp_tv);
- triptime = tv->tv_sec * 1000000 + tv->tv_usec;
- if (triptime < 0) {
-- fprintf(stderr, "Warning: time of day goes back (%ldus), taking countermeasures.\n", triptime);
-+ if (options & F_VERBOSE)
-+ fprintf(stderr, "Warning: time of day goes back (%ldus), taking countermeasures.\n", triptime);
- triptime = 0;
- if (!(options & F_LATENCY)) {
- gettimeofday(tv, NULL);
---- iputils/ping.c.addrcache 2002-09-20 17:08:11.000000000 +0200
-+++ iputils/ping.c 2003-05-15 16:41:19.000000000 +0200
-@@ -1124,6 +1124,12 @@
- {
- struct hostent *hp;
- static char buf[4096];
-+ static __u32 addr_cache = 0;
-+
-+ if ( addr == addr_cache )
-+ return buf;
-+
-+ addr_cache = addr;
-
- if ((options & F_NUMERIC) ||
- !(hp = gethostbyaddr((char *)&addr, 4, AF_INET)))
---- iputils/ping6.c.addrcache 2002-09-20 17:08:11.000000000 +0200
-+++ iputils/ping6.c 2003-05-15 16:41:19.000000000 +0200
-@@ -893,7 +893,14 @@
- */
- char * pr_addr(struct in6_addr *addr)
- {
-- struct hostent *hp = NULL;
-+ static struct hostent *hp = NULL;
-+ static struct in6_addr addr_cache = {{{0,0,0,0}}};
-+
-+ if ( addr->s6_addr32[0] == addr_cache.s6_addr32[0] &&
-+ addr->s6_addr32[1] == addr_cache.s6_addr32[1] &&
-+ addr->s6_addr32[2] == addr_cache.s6_addr32[2] &&
-+ addr->s6_addr32[3] == addr_cache.s6_addr32[3] )
-+ return hp ? hp->h_name : pr_addr_n(addr);
-
- if (!(options&F_NUMERIC))
- hp = gethostbyaddr((__u8*)addr, sizeof(struct in6_addr), AF_INET6);
---- iputils-ss021109-vanilla/ping.c Thu Nov 7 23:53:21 2002
-+++ iputils/ping.c Sun Jan 12 03:39:24 2003
-@@ -285,6 +285,9 @@
- perror("ping: IP_MULTICAST_IF");
- exit(2);
- }
-+ } else if (icmp_sock >= 0) {
-+ /* We possible tried to SO_BINDTODEVICE() a subinterface like 'eth0:1' */
-+ perror("Warning: cannot bind to specified iface, falling back");
- }
- }
- }
---- iputils/ping.c.icmp_seq 2003-09-03 16:45:07.000000000 +0200
-+++ iputils/ping.c 2003-09-03 16:45:41.000000000 +0200
-@@ -610,7 +610,7 @@
- icp->type = ICMP_ECHO;
- icp->code = 0;
- icp->checksum = 0;
-- icp->un.echo.sequence = htons(ntransmitted+1);
-+ icp->un.echo.sequence = htons(ntransmitted);
- icp->un.echo.id = ident; /* ID */
-
- CLR((ntransmitted+1) % mx_dup_ck);
---- iputils/ping6.c.icmp_seq 2003-09-03 16:45:20.000000000 +0200
-+++ iputils/ping6.c 2003-09-03 16:45:34.000000000 +0200
-@@ -647,7 +647,7 @@
- icmph->icmp6_type = ICMPV6_ECHO_REQUEST;
- icmph->icmp6_code = 0;
- icmph->icmp6_cksum = 0;
-- icmph->icmp6_sequence = htons(ntransmitted+1);
-+ icmph->icmp6_sequence = htons(ntransmitted);
- icmph->icmp6_identifier = ident;
-
- CLR((ntransmitted+1) % mx_dup_ck);
-diff -ru iputils/include-glibc/netinet/in.h iputils-clean/include-glibc/netinet/in.h
---- iputils/include-glibc/netinet/in.h 2000-06-18 14:57:25.000000000 -0400
-+++ iputils-clean/include-glibc/netinet/in.h 2003-09-03 11:21:55.000000000 -0400
-@@ -8,4 +8,45 @@
-
- #define SOL_IP 0
-
--#endif /* netinet/in.h */
-+/* Functions to convert between host and network byte order.
-+
-+ Please note that these functions normally take `unsigned long int' or
-+ `unsigned short int' values as arguments and also return them. But
-+ this was a short-sighted decision since on different systems the types
-+ may have different representations but the values are always the same. */
-+
-+extern u_int32_t ntohl (u_int32_t __netlong) __THROW __attribute__ ((__const__));
-+extern u_int16_t ntohs (u_int16_t __netshort)
-+ __THROW __attribute__ ((__const__));
-+extern u_int32_t htonl (u_int32_t __hostlong)
-+ __THROW __attribute__ ((__const__));
-+extern u_int16_t htons (u_int16_t __hostshort)
-+ __THROW __attribute__ ((__const__));
-+
-+#include <endian.h>
-+
-+/* Get machine dependent optimized versions of byte swapping functions. */
-+#include <bits/byteswap.h>
-+
-+#ifdef __OPTIMIZE__
-+/* We can optimize calls to the conversion functions. Either nothing has
-+ to be done or we are using directly the byte-swapping functions which
-+ often can be inlined. */
-+# if __BYTE_ORDER == __BIG_ENDIAN
-+/* The host byte order is the same as network byte order,
-+ so these functions are all just identity. */
-+# define ntohl(x) (x)
-+# define ntohs(x) (x)
-+# define htonl(x) (x)
-+# define htons(x) (x)
-+# else
-+# if __BYTE_ORDER == __LITTLE_ENDIAN
-+# define ntohl(x) __bswap_32 (x)
-+# define ntohs(x) __bswap_16 (x)
-+# define htonl(x) __bswap_32 (x)
-+# define htons(x) __bswap_16 (x)
-+# endif
-+# endif
-+#endif
-+
-+#endif /* netinet/in.h */
-diff -ru iputils/ping6.c iputils-clean/ping6.c
---- iputils/ping6.c 2003-09-03 11:22:46.000000000 -0400
-+++ iputils-clean/ping6.c 2003-09-03 11:15:42.000000000 -0400
-@@ -879,7 +879,7 @@
- once = 1;
-
- /* Patch bpflet for current identifier. */
-- insns[1] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, __constant_htons(ident), 0, 1);
-+ insns[1] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, htons(ident), 0, 1);
-
- if (setsockopt(icmp_sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter)))
- perror("WARNING: failed to install socket filter\n");
-diff -ru iputils/ping.c iputils-clean/ping.c
---- iputils/ping.c 2003-09-03 11:22:46.000000000 -0400
-+++ iputils-clean/ping.c 2003-09-03 11:15:26.000000000 -0400
-@@ -1196,7 +1196,7 @@
- once = 1;
-
- /* Patch bpflet for current identifier. */
-- insns[2] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, __constant_htons(ident), 0, 1);
-+ insns[2] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, htons(ident), 0, 1);
-
- if (setsockopt(icmp_sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter)))
- perror("WARNING: failed to install socket filter\n");
-diff -urN iputils/clockdiff.c iputils.new/clockdiff.c
---- iputils/clockdiff.c 2002-02-22 19:10:59.000000000 -0500
-+++ iputils.new/clockdiff.c 2003-09-10 09:20:28.000000000 -0400
-@@ -2,6 +2,7 @@
- #include <sys/types.h>
- #include <sys/param.h>
- #include <stdio.h>
-+#include <linux/types.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <math.h>
-diff -urN iputils/ping6.c iputils.new/ping6.c
---- iputils/ping6.c 2003-09-10 17:27:48.000000000 -0400
-+++ iputils.new/ping6.c 2003-09-10 17:22:43.000000000 -0400
-@@ -68,8 +68,44 @@
- */
- #include "ping_common.h"
-
--#include <linux/in6.h>
--#include <linux/ipv6.h>
-+struct ipv6_rt_hdr {
-+ __u8 nexthdr;
-+ __u8 hdrlen;
-+ __u8 type;
-+ __u8 segments_left;
-+
-+ /*
-+ * type specific data
-+ * variable length field
-+ */
-+};
-+
-+struct rt0_hdr {
-+ struct ipv6_rt_hdr rt_hdr;
-+ __u32 bitmap; /* strict/loose bit map */
-+ struct in6_addr addr[0];
-+
-+#define rt0_type rt_hdr.type;
-+};
-+#define IPV6_SRCRT_TYPE_0 0 /* IPv6 type 0 Routing Header */
-+struct ipv6hdr {
-+#if defined(__LITTLE_ENDIAN)
-+ __u8 priority:4,
-+ version:4;
-+#elif defined(__BIG_ENDIAN)
-+ __u8 version:4,
-+ priority:4;
-+#endif
-+ __u8 flow_lbl[3];
-+
-+ __u16 payload_len;
-+ __u8 nexthdr;
-+ __u8 hop_limit;
-+
-+ struct in6_addr saddr;
-+ struct in6_addr daddr;
-+};
-+
- #include <linux/icmpv6.h>
-
- #define BIT_CLEAR(nr, addr) do { ((__u32 *)(addr))[(nr) >> 5] &= ~(1U << ((nr) & 31)); } while(0)
-diff -urN iputils/ping_common.h iputils.new/ping_common.h
---- iputils/ping_common.h 2002-09-20 11:08:11.000000000 -0400
-+++ iputils.new/ping_common.h 2003-09-10 17:16:16.000000000 -0400
-@@ -19,6 +19,7 @@
-
- #include <netinet/in.h>
- #include <arpa/inet.h>
-+#include <linux/types.h>
- #include <linux/errqueue.h>
-
- #include "SNAPSHOT.h"
-diff -urN iputils/tftpd.c iputils.new/tftpd.c
---- iputils/tftpd.c 2002-01-23 19:31:41.000000000 -0500
-+++ iputils.new/tftpd.c 2003-09-10 09:39:45.000000000 -0400
-@@ -57,7 +57,6 @@
-
- #include <sys/socket.h>
- #include <netinet/in.h>
--#include <linux/in6.h>
- #include <netdb.h>
-
- #include <setjmp.h>
-diff -urN iputils/tracepath6.c iputils.new/tracepath6.c
---- iputils/tracepath6.c 2001-09-01 22:03:46.000000000 -0400
-+++ iputils.new/tracepath6.c 2003-09-10 09:40:18.000000000 -0400
-@@ -14,8 +14,7 @@
- #include <unistd.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
--
--#include <linux/in6.h>
-+#include <linux/types.h>
- #include <linux/errqueue.h>
- #include <errno.h>
- #include <string.h>
-diff -urN iputils/tracepath.c iputils.new/tracepath.c
---- iputils/tracepath.c 2002-02-22 19:10:59.000000000 -0500
-+++ iputils.new/tracepath.c 2003-09-10 06:14:35.000000000 -0400
-@@ -13,6 +13,7 @@
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/socket.h>
-+#include <linux/types.h>
- #include <linux/errqueue.h>
- #include <errno.h>
- #include <string.h>
-diff -urN iputils/traceroute6.c iputils.new/traceroute6.c
---- iputils/traceroute6.c 2002-09-20 11:44:22.000000000 -0400
-+++ iputils.new/traceroute6.c 2003-09-10 10:12:47.000000000 -0400
-@@ -246,9 +246,24 @@
- #include <netinet/ip_icmp.h>
- #include <netinet/udp.h>
-
--#include <linux/ipv6.h>
--#include <linux/in6.h>
-+#include <linux/types.h>
-+struct ipv6hdr {
-+#if defined(__LITTLE_ENDIAN)
-+ __u8 priority:4,
-+ version:4;
-+#elif defined(__BIG_ENDIAN)
-+ __u8 version:4,
-+ priority:4;
-+#endif
-+ __u8 flow_lbl[3];
-+
-+ __u16 payload_len;
-+ __u8 nexthdr;
-+ __u8 hop_limit;
-
-+ struct in6_addr saddr;
-+ struct in6_addr daddr;
-+};
- #include <linux/icmpv6.h>
-
- #include <arpa/inet.h>
---- iputils/arping.c.unaligned 2001-10-06 00:42:47.000000000 +0200
-+++ iputils/arping.c 2003-10-02 15:14:42.000000000 +0200
-@@ -332,7 +332,7 @@
- timeout = atoi(optarg);
- break;
- case 'I':
-- device = optarg;
-+ device = strdup(optarg);
- break;
- case 'f':
- quit_on_reply=1;
---- iputils/traceroute6.c.inet_pton 2004-04-22 15:06:28.268797480 +0200
-+++ iputils/traceroute6.c 2004-04-22 15:06:35.727877941 +0200
-@@ -538,7 +538,7 @@
- } else {
- (void) bzero((char *)&saddr, sizeof(saddr));
- saddr.sin6_family = AF_INET6;
-- if (inet_pton(AF_INET6, source, &saddr.sin6_addr) < 0)
-+ if (inet_pton(AF_INET6, source, &saddr.sin6_addr) <= 0)
- {
- Printf("traceroute: unknown addr %s\n", source);
- exit(1);
---- iputils/traceroute6.c.old 2004-12-07 11:08:57.000000000 +0100
-+++ iputils/traceroute6.c 2004-12-07 11:14:09.397575536 +0100
-@@ -352,8 +352,11 @@
- icmp_sock = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
- socket_errno = errno;
-
-- setuid(getuid());
--
-+ if(setuid(getuid()) != 0)
-+ {
-+ perror("traceroute: setuid()");
-+ exit(-1);
-+ }
- on = 1;
- seq = tos = 0;
- to = (struct sockaddr_in6 *)&whereto;
---- iputils/ping6.c.old 2004-12-07 11:08:57.000000000 +0100
-+++ iputils/ping6.c 2004-12-07 11:13:40.707937024 +0100
-@@ -223,7 +223,11 @@
- socket_errno = errno;
-
- uid = getuid();
-- setuid(uid);
-+ if(setuid(uid) != 0)
-+ {
-+ perror("ping: setuid()");
-+ exit(-1);
-+ }
-
- source.sin6_family = AF_INET6;
- memset(&firsthop, 0, sizeof(firsthop));
---- iputils/ping.c.old 2004-12-07 11:08:57.000000000 +0100
-+++ iputils/ping.c 2004-12-07 11:13:27.523941296 +0100
-@@ -119,7 +119,11 @@
- socket_errno = errno;
-
- uid = getuid();
-- setuid(uid);
-+ if(setuid(uid) != 0)
-+ {
-+ perror("ping: setuid()");
-+ exit(-1);
-+ }
-
- source.sin_family = AF_INET;
-
---- iputils/doc/ping.8.old 2002-09-27 19:12:47.000000000 +0200
-+++ iputils/doc/ping.8 2004-12-07 11:09:42.434160144 +0100
-@@ -112,7 +112,7 @@
- when finished.
- .TP
- \fB-R\fR
--Record route.
-+Record route. (IPv4 only)
- Includes the RECORD_ROUTE option in the ECHO_REQUEST
- packet and displays the route buffer on returned packets.
- Note that the IP header is only large enough for nine such routes.
---- iputils/doc/ping.sgml.old 2002-09-20 14:55:50.000000000 +0200
-+++ iputils/doc/ping.sgml 2004-12-07 11:09:42.435159992 +0100
-@@ -190,7 +190,7 @@
- <varlistentry>
- <term><option/-R/</term>
- <listitem><para>
--Record route.
-+Record route. (IPv4 only)
- Includes the RECORD_ROUTE option in the ECHO_REQUEST
- packet and displays the route buffer on returned packets.
- Note that the IP header is only large enough for nine such routes.
---- iputils/ping.c 2005-05-18 01:37:05.621810488 -0400
-+++ iputils/ping.c.new 2005-05-18 01:41:27.113018222 -0400
-@@ -101,7 +101,7 @@ static struct {
- int cmsg_len;
-
- struct sockaddr_in source;
--char *device;
-+char *device=NULL;
- int pmtudisc = -1;
-
-
-@@ -177,7 +177,7 @@ main(int argc, char **argv)
- ptr[3] = i4;
- options |= F_STRICTSOURCE;
- } else {
-- device = optarg;
-+ device = strdup(optarg);
- }
- break;
- }
---- iputils/ping6.c 2005-05-18 01:37:05.620833925 -0400
-+++ iputils/ping6.c.new 2005-05-18 01:41:23.599346390 -0400
-@@ -155,7 +155,7 @@ static int pr_icmph(__u8 type, __u8 code
- static void usage(void) __attribute((noreturn));
-
- struct sockaddr_in6 source;
--char *device;
-+char *device=NULL;
- int pmtudisc=-1;
-
- static int icmp_sock;
-@@ -248,7 +248,7 @@ int main(int argc, char *argv[])
- }
- options |= F_STRICTSOURCE;
- } else {
-- device = optarg;
-+ device = strdup(optarg);
- }
- break;
- case 'M':
-diff -ur iputils/arping.c iputils.tom/arping.c
---- iputils/arping.c 2005-07-15 13:51:15.533632784 -0700
-+++ iputils.tom/arping.c 2005-07-15 13:50:47.967823000 -0700
-@@ -59,6 +59,8 @@
- #define MS_TDIFF(tv1,tv2) ( ((tv1).tv_sec-(tv2).tv_sec)*1000 + \
- ((tv1).tv_usec-(tv2).tv_usec)/1000 )
-
-+#define min(x,y) ((x)<(y) ? (x) : (y))
-+
- void usage(void)
- {
- fprintf(stderr,
-@@ -476,7 +478,7 @@
- }
-
- he = me;
-- memset(he.sll_addr, -1, he.sll_halen);
-+ memset(he.sll_addr, -1, min(he.sll_halen, sizeof he.sll_addr));
-
- if (!quiet) {
- printf("ARPING %s ", inet_ntoa(dst));
---- iputils/arping.c.orig 2001-10-05 18:42:47.000000000 -0400
-+++ iputils/arping.c 2005-07-13 13:07:45.406217716 -0400
-@@ -166,10 +166,12 @@ void catcher(void)
- if (start.tv_sec==0)
- start = tv;
-
-- if (count-- == 0 || (timeout && MS_TDIFF(tv,start) > timeout*1000 + 500))
-+ if ((timeout && MS_TDIFF(tv,start) > timeout*1000 + 500) ||
-+ ((count == 0) && (!timeout)))
- finish();
-
- if (last.tv_sec==0 || MS_TDIFF(tv,last) > 500) {
-+ count--;
- send_pack(s, src, dst, &me, &he);
- if (count == 0 && unsolicited)
- finish();
-@@ -510,6 +512,8 @@ main(int argc, char **argv)
- sigaddset(&sset, SIGINT);
- sigprocmask(SIG_BLOCK, &sset, &osset);
- recv_pack(packet, cc, &from);
-+ if(received == count)
-+ exit(0);
- sigprocmask(SIG_SETMASK, &osset, NULL);
- }
- }
---- iputils/tracepath6.c.getaddrinfo 2005-09-08 10:31:47.000000000 +0200
-+++ iputils/tracepath6.c 2005-09-08 10:31:47.000000000 +0200
-@@ -280,7 +280,7 @@
- struct sockaddr_in6 sin;
- int ttl;
- char *p;
-- struct hostent *he;
-+ struct addrinfo hints, *res;
- int ch;
-
- while ((ch = getopt(argc, argv, "nbh?")) != EOF) {
-@@ -308,20 +308,26 @@
- perror("socket");
- exit(1);
- }
-- sin.sin6_family = AF_INET6;
-
- p = strchr(argv[0], '/');
- if (p) {
- *p = 0;
-+ }
-+
-+ memset(&hints, '\0', sizeof(hints));
-+ hints.ai_family = AF_INET6;
-+ if (getaddrinfo(argv[0], NULL, &hints, &res)) {
-+ herror("getaddrinfo");
-+ exit(1);
-+ }
-+
-+ memcpy(&sin, res->ai_addr, sizeof(struct sockaddr_in6));
-+ freeaddrinfo(res);
-+
-+ if (p) {
- sin.sin6_port = htons(atoi(p+1));
- } else
- sin.sin6_port = htons(0x8000 | getpid());
-- he = gethostbyname2(argv[0], AF_INET6);
-- if (he == NULL) {
-- herror("gethostbyname2");
-- exit(1);
-- }
-- memcpy(&sin.sin6_addr, he->h_addr, 16);
-
- if (connect(fd, (struct sockaddr*)&sin, sizeof(sin)) < 0) {
- perror("connect");
---- iputils/tracepath.c.getaddrinfo 2005-09-08 10:31:47.000000000 +0200
-+++ iputils/tracepath.c 2005-09-08 11:03:39.000000000 +0200
-@@ -272,12 +272,12 @@
- int
- main(int argc, char **argv)
- {
-- struct hostent *he;
- int fd;
- int on;
- int ttl;
- char *p;
- int ch;
-+ struct addrinfo hints, *res;
-
- while ((ch = getopt(argc, argv, "nh?")) != EOF) {
- switch(ch) {
-@@ -300,20 +300,26 @@
- perror("socket");
- exit(1);
- }
-- target.sin_family = AF_INET;
-
- p = strchr(argv[0], '/');
- if (p) {
- *p = 0;
-+ }
-+
-+ memset(&hints, '\0', sizeof(hints));
-+ hints.ai_family = AF_INET;
-+ if (getaddrinfo(argv[0], NULL, &hints, &res)) {
-+ herror("getaddrinfo");
-+ exit(1);
-+ }
-+
-+ memcpy(&target, res->ai_addr, sizeof(struct sockaddr_in));
-+ freeaddrinfo(res);
-+
-+ if (p)
- base_port = atoi(p+1);
-- } else
-+ else
- base_port = 44444;
-- he = gethostbyname(argv[0]);
-- if (he == NULL) {
-- herror("gethostbyname");
-- exit(1);
-- }
-- memcpy(&target.sin_addr, he->h_addr, 4);
-
- on = IP_PMTUDISC_DO;
- if (setsockopt(fd, SOL_IP, IP_MTU_DISCOVER, &on, sizeof(on))) {
---- iputils/ping.c.flood 2005-09-26 09:26:49.000000000 +0200
-+++ iputils/ping.c 2005-09-26 13:07:39.000000000 +0200
-@@ -614,7 +608,7 @@
- icp->type = ICMP_ECHO;
- icp->code = 0;
- icp->checksum = 0;
-- icp->un.echo.sequence = htons(ntransmitted);
-+ icp->un.echo.sequence = htons(ntransmitted+1);
- icp->un.echo.id = ident; /* ID */
-
- CLR((ntransmitted+1) % mx_dup_ck);
-diff -ru iputils/ping_common.c iputils-foo/ping_common.c
---- iputils/ping_common.c 2005-09-22 15:22:57.000000000 -0400
-+++ iputils-foo/ping_common.c 2005-09-22 15:24:42.000000000 -0400
-@@ -584,6 +584,7 @@
- * destined to other running pings. */
-
- iov.iov_len = packlen;
-+ memset(&msg,'\0',sizeof(msg));
- msg.msg_name = addrbuf;
- msg.msg_namelen = sizeof(addrbuf);
- msg.msg_iov = &iov;
---- iputils/tracepath6.c.hoplimit 2005-12-13 13:32:56.000000000 +0100
-+++ iputils/tracepath6.c 2005-12-13 13:35:01.000000000 +0100
-@@ -359,8 +359,8 @@
- perror("IP_RECVERR");
- exit(1);
- }
-- if (setsockopt(fd, SOL_IPV6, IPV6_HOPLIMIT, &on, sizeof(on))) {
-- perror("IPV6_HOPLIMIT");
-+ if (setsockopt(fd, SOL_IPV6, IPV6_RECVHOPLIMIT, &on, sizeof(on))) {
-+ perror("IPV6_RECVHOPLIMIT");
- exit(1);
- }
- if (mapped && setsockopt(fd, SOL_IP, IP_RECVTTL, &on, sizeof(on))) {
---- iputils/ping6.c.hoplimit 2005-12-13 13:32:56.000000000 +0100
-+++ iputils/ping6.c 2005-12-13 13:34:04.000000000 +0100
-@@ -521,13 +521,10 @@
- }
- }
-
-- if (1) {
-- int on = 1;
-- if (setsockopt(icmp_sock, IPPROTO_IPV6, IPV6_HOPLIMIT,
-- &on, sizeof(on)) == -1) {
-- perror ("can't receive hop limit");
-- exit(2);
-- }
-+ int on = 1;
-+ if (setsockopt(icmp_sock, IPPROTO_IPV6, IPV6_RECVHOPLIMIT, &on, sizeof(on))) {
-+ perror("setsockopt(IPV6_RECVHOPLIMIT)");
-+ exit(2);
- }
-
- if (options&F_FLOWINFO) {
---- iputils/ping6.c.gcc41 2006-01-25 16:21:47.000000000 +0100
-+++ iputils/ping6.c 2006-01-25 16:21:47.000000000 +0100
-@@ -383,7 +383,7 @@
- exit(2);
- }
- alen = sizeof(source);
-- if (getsockname(probe_fd, (struct sockaddr*)&source, &alen) == -1) {
-+ if (getsockname(probe_fd, (struct sockaddr*)&source, (socklen_t*)&alen) == -1) {
- perror("getsockname");
- exit(2);
- }
-@@ -599,6 +599,7 @@
- int net_errors = 0;
- int local_errors = 0;
- int saved_errno = errno;
-+ ssize_t wr_ret;
-
- iov.iov_base = &icmph;
- iov.iov_len = sizeof(icmph);
-@@ -629,7 +630,7 @@
- if (options & F_QUIET)
- goto out;
- if (options & F_FLOOD)
-- write(STDOUT_FILENO, "E", 1);
-+ wr_ret = write(STDOUT_FILENO, "E", 1);
- else if (e->ee_errno != EMSGSIZE)
- fprintf(stderr, "ping: local error: %s\n", strerror(e->ee_errno));
- else
-@@ -652,7 +653,7 @@
- if (options & F_QUIET)
- goto out;
- if (options & F_FLOOD) {
-- write(STDOUT_FILENO, "\bE", 2);
-+ wr_ret = write(STDOUT_FILENO, "\bE", 2);
- } else {
- printf("From %s icmp_seq=%u ", pr_addr(&sin6->sin6_addr), ntohs(icmph.icmp6_sequence));
- pr_icmph(e->ee_type, e->ee_code, e->ee_info);
-@@ -795,7 +796,8 @@
- return 0;
- nerrors++;
- if (options & F_FLOOD) {
-- write(STDOUT_FILENO, "\bE", 2);
-+ ssize_t wr_ret;
-+ wr_ret = write(STDOUT_FILENO, "\bE", 2);
- return 0;
- }
- printf("From %s: icmp_seq=%u ", pr_addr(&from->sin6_addr), ntohs(icmph1->icmp6_sequence));
---- iputils/arping.c.gcc41 2006-01-25 16:21:47.000000000 +0100
-+++ iputils/arping.c 2006-01-25 16:21:47.000000000 +0100
-@@ -449,7 +449,7 @@
- perror("connect");
- exit(2);
- }
-- if (getsockname(probe_fd, (struct sockaddr*)&saddr, &alen) == -1) {
-+ if (getsockname(probe_fd, (struct sockaddr*)&saddr, (socklen_t*)&alen) == -1) {
- perror("getsockname");
- exit(2);
- }
-@@ -468,7 +468,7 @@
-
- if (1) {
- int alen = sizeof(me);
-- if (getsockname(s, (struct sockaddr*)&me, &alen) == -1) {
-+ if (getsockname(s, (struct sockaddr*)&me, (socklen_t*)&alen) == -1) {
- perror("getsockname");
- exit(2);
- }
-@@ -499,13 +499,13 @@
-
- while(1) {
- sigset_t sset, osset;
-- char packet[4096];
-+ unsigned char packet[4096];
- struct sockaddr_ll from;
- int alen = sizeof(from);
- int cc;
-
- if ((cc = recvfrom(s, packet, sizeof(packet), 0,
-- (struct sockaddr *)&from, &alen)) < 0) {
-+ (struct sockaddr *)&from, (socklen_t*)&alen)) < 0) {
- perror("arping: recvfrom");
- continue;
- }
---- iputils/traceroute6.c.gcc41 2006-01-25 16:21:47.000000000 +0100
-+++ iputils/traceroute6.c 2006-01-25 16:21:47.000000000 +0100
-@@ -529,7 +529,7 @@
- exit(1);
- }
- alen = sizeof(saddr);
-- if (getsockname(probe_fd, (struct sockaddr*)&saddr, &alen) == -1) {
-+ if (getsockname(probe_fd, (struct sockaddr*)&saddr, (socklen_t*)&alen) == -1) {
- perror("getsockname");
- exit(1);
- }
-@@ -656,7 +656,7 @@
-
- if (select(sock+1, &fds, (fd_set *)0, (fd_set *)0, &wait) > 0) {
- cc=recvfrom(icmp_sock, (char *)packet, sizeof(packet), 0,
-- (struct sockaddr *)from, &fromlen);
-+ (struct sockaddr *)from, (socklen_t*)&fromlen);
- }
-
- return(cc);
---- iputils/tftpd.c.gcc41 2006-01-25 16:21:47.000000000 +0100
-+++ iputils/tftpd.c 2006-01-25 16:21:47.000000000 +0100
-@@ -126,7 +126,7 @@
- }
- fromlen = sizeof (from);
- n = recvfrom(0, buf, sizeof (buf), 0,
-- (struct sockaddr *)&from, &fromlen);
-+ (struct sockaddr *)&from, (socklen_t*)&fromlen);
- if (n < 0) {
- if (errno != EAGAIN)
- syslog(LOG_ERR, "recvfrom: %m\n");
-@@ -164,9 +164,9 @@
- * than one tftpd being started up to service
- * a single request from a single client.
- */
-- j = sizeof from;
-+ j = sizeof (from);
- i = recvfrom(0, buf, sizeof (buf), 0,
-- (struct sockaddr *)&from, &j);
-+ (struct sockaddr *)&from, (socklen_t*)&j);
- if (i > 0) {
- n = i;
- fromlen = j;
---- iputils/clockdiff.c.gcc41 2006-01-25 16:21:47.000000000 +0100
-+++ iputils/clockdiff.c 2006-01-25 16:21:47.000000000 +0100
-@@ -148,7 +148,7 @@
- if (select(FD_SETSIZE, &ready, (fd_set *)0, (fd_set *)0, &tout)) {
- length = sizeof(struct sockaddr_in);
- cc = recvfrom(sock_raw, (char *)packet, PACKET_IN, 0,
-- (struct sockaddr *)NULL, &length);
-+ (struct sockaddr *)NULL, (socklen_t*)&length);
- if (cc < 0)
- return -1;
- goto empty;
-@@ -214,7 +214,7 @@
-
- (void)gettimeofday(&tv1, (struct timezone *)0);
- cc = recvfrom(sock_raw, (char *)packet, PACKET_IN, 0,
-- (struct sockaddr *)NULL, &length);
-+ (struct sockaddr *)NULL, (socklen_t*)&length);
-
- if (cc < 0)
- return(-1);
-@@ -326,7 +326,7 @@
- if (select(FD_SETSIZE, &ready, (fd_set *)0, (fd_set *)0, &tout)) {
- length = sizeof(struct sockaddr_in);
- cc = recvfrom(sock_raw, (char *)packet, PACKET_IN, 0,
-- (struct sockaddr *)NULL, &length);
-+ (struct sockaddr *)NULL, (socklen_t*)&length);
- if (cc < 0)
- return -1;
- goto empty;
-@@ -396,7 +396,7 @@
-
- (void)gettimeofday(&tv1, (struct timezone *)0);
- cc = recvfrom(sock_raw, (char *)packet, PACKET_IN, 0,
-- (struct sockaddr *)NULL, &length);
-+ (struct sockaddr *)NULL, (socklen_t*)&length);
-
- if (cc < 0)
- return(-1);
-@@ -539,6 +539,7 @@
- struct hostent * hp;
- char hostname[MAXHOSTNAMELEN];
- int s_errno = 0;
-+ int nice_ret;
-
- if (argc < 2) {
- setuid(getuid());
-@@ -606,7 +607,7 @@
- rspace[1] = ip_opt_len;
- rspace[2] = 5;
- rspace[3] = IPOPT_TS_PRESPEC;
-- if (getsockname(sock_raw, (struct sockaddr*)&myaddr, &addrlen) == -1) {
-+ if (getsockname(sock_raw, (struct sockaddr*)&myaddr, (socklen_t*)&addrlen) == -1) {
- perror("getsockname");
- exit(1);
- }
-@@ -623,8 +624,13 @@
- ip_opt_len = 0;
- }
- }
--
-- nice(-16);
-+ nice_ret = nice(-16);
-+ if (nice_ret < 0) {
-+ if (errno)
-+ perror("nice");
-+ else
-+ fprintf(stderr, "nice: unknown failure\n");
-+ }
-
- if ((measure_status = (ip_opt_len ? measure_opt : measure)(&server)) < 0) {
- if (errno)
---- iputils/rdisc.c.gcc41 2006-01-25 16:21:47.000000000 +0100
-+++ iputils/rdisc.c 2006-01-25 16:21:47.000000000 +0100
-@@ -454,7 +454,7 @@
- int cc;
-
- cc=recvfrom(s, (char *)packet, len, 0,
-- (struct sockaddr *)&from, &fromlen);
-+ (struct sockaddr *)&from, (socklen_t*)&fromlen);
- if (cc<0) {
- if (errno == EINTR)
- continue;
---- iputils/rarpd.c.gcc41 2001-12-02 19:45:06.000000000 +0100
-+++ iputils/rarpd.c 2006-01-25 16:21:47.000000000 +0100
-@@ -154,8 +154,8 @@
- ifl->index = index;
- ifl->hatype = ifrp->ifr_hwaddr.sa_family;
- memcpy(ifl->lladdr, ifrp->ifr_hwaddr.sa_data, 14);
-- strncpy(ifl->name, ifrp->ifr_name, IFNAMSIZ);
-- p = strchr(ifl->name, ':');
-+ strncpy((char*)ifl->name, ifrp->ifr_name, IFNAMSIZ);
-+ p = strchr((char*)ifl->name, ':');
- if (p)
- *p = 0;
- if (verbose)
-@@ -423,7 +423,7 @@
- unsigned char *ptr;
- int n;
-
-- n = recvfrom(fd, buf, sizeof(buf), MSG_DONTWAIT, (struct sockaddr*)&sll, &sll_len);
-+ n = recvfrom(fd, buf, sizeof(buf), MSG_DONTWAIT, (struct sockaddr*)&sll, (socklen_t*)&sll_len);
- if (n<0) {
- if (errno != EINTR && errno != EAGAIN)
- syslog(LOG_ERR, "recvfrom: %m");
-@@ -531,7 +531,7 @@
- /* Update our ARP cache. Probably, this guy
- will not able to make ARP (if it is broken)
- */
-- arp_advise(sll.sll_ifindex, rmap->lladdr, rmap->lladdr_len, rmap->ipaddr);
-+ arp_advise(sll.sll_ifindex,(unsigned char *)rmap->lladdr, rmap->lladdr_len, rmap->ipaddr);
-
- /* Sendto is blocking, but with 5sec timeout */
- alarm(5);
-@@ -673,8 +673,15 @@
- perror("rarpd: fork");
- exit(1);
- }
-+ int chdir_ret = chdir("/");
-+ if (chdir_ret != 0) {
-+ if (errno)
-+ perror("chdir");
-+ else
-+ fprintf(stderr, "chdir: Uknown error\n");
-+ }
-
-- chdir("/");
-+
- fd = open("/dev/null", O_RDWR);
- if (fd >= 0) {
- dup2(fd, 0);
---- iputils/ping_common.c.gcc41 2006-01-25 16:21:47.000000000 +0100
-+++ iputils/ping_common.c 2006-01-25 16:21:47.000000000 +0100
-@@ -284,6 +284,7 @@
- static int oom_count;
- static int tokens;
- int i;
-+ ssize_t wr_ret;
-
- /* Have we already sent enough? If we have, return an arbitrary positive value. */
- if (exiting || (npackets && ntransmitted >= npackets && !deadline))
-@@ -327,7 +328,7 @@
- * high preload or pipe size is very confusing. */
- if ((preload < screen_width && pipesize < screen_width) ||
- in_flight() < screen_width)
-- write(STDOUT_FILENO, ".", 1);
-+ wr_ret = write(STDOUT_FILENO, ".", 1);
- }
- return interval - tokens;
- }
-@@ -380,7 +381,7 @@
-
- if (i == 0 && !(options & F_QUIET)) {
- if (options & F_FLOOD)
-- write(STDOUT_FILENO, "E", 1);
-+ wr_ret = write(STDOUT_FILENO, "E", 1);
- else
- perror("ping: sendmsg");
- }
-@@ -402,8 +403,8 @@
- rcvbuf = hold = alloc * preload;
- if (hold < 65536)
- hold = 65536;
-- setsockopt(icmp_sock, SOL_SOCKET, SO_RCVBUF, (char *)&hold, sizeof(hold));
-- if (getsockopt(icmp_sock, SOL_SOCKET, SO_RCVBUF, (char *)&hold, &tmplen) == 0) {
-+ setsockopt(icmp_sock, SOL_SOCKET, SO_RCVBUF, (char *)&hold, (socklen_t)sizeof(hold));
-+ if (getsockopt(icmp_sock, SOL_SOCKET, SO_RCVBUF, (char *)&hold, (socklen_t*)&tmplen) == 0) {
- if (hold < rcvbuf)
- fprintf(stderr, "WARNING: probably, rcvbuf is not enough to hold preload.\n");
- }
-@@ -650,7 +651,8 @@
- {
- int dupflag = 0;
- long triptime = 0;
--
-+ ssize_t wr_ret;
-+
- ++nreceived;
- if (!csfailed)
- acknowledge(seq);
-@@ -706,9 +708,9 @@
-
- if (options & F_FLOOD) {
- if (!csfailed)
-- write(STDOUT_FILENO, "\b \b", 3);
-+ wr_ret = write(STDOUT_FILENO, "\b \b", 3);
- else
-- write(STDOUT_FILENO, "\bC", 1);
-+ wr_ret = write(STDOUT_FILENO, "\bC", 1);
- } else {
- int i;
- __u8 *cp, *dp;
---- iputils/ping.c.gcc41 2006-01-25 16:21:47.000000000 +0100
-+++ iputils/ping.c 2006-01-25 16:21:47.000000000 +0100
-@@ -314,7 +314,7 @@
- }
- }
- alen = sizeof(source);
-- if (getsockname(probe_fd, (struct sockaddr*)&source, &alen) == -1) {
-+ if (getsockname(probe_fd, (struct sockaddr*)&source, (socklen_t*)&alen) == -1) {
- perror("getsockname");
- exit(2);
- }
-@@ -517,6 +517,7 @@
- int net_errors = 0;
- int local_errors = 0;
- int saved_errno = errno;
-+ ssize_t wr_ret;
-
- iov.iov_base = &icmph;
- iov.iov_len = sizeof(icmph);
-@@ -547,7 +548,7 @@
- if (options & F_QUIET)
- goto out;
- if (options & F_FLOOD)
-- write(STDOUT_FILENO, "E", 1);
-+ wr_ret = write(STDOUT_FILENO, "E", 1);
- else if (e->ee_errno != EMSGSIZE)
- fprintf(stderr, "ping: local error: %s\n", strerror(e->ee_errno));
- else
-@@ -583,7 +584,7 @@
- if (options & F_QUIET)
- goto out;
- if (options & F_FLOOD) {
-- write(STDOUT_FILENO, "\bE", 2);
-+ wr_ret = write(STDOUT_FILENO, "\bE", 2);
- } else {
- printf("From %s icmp_seq=%u ", pr_addr(sin->sin_addr.s_addr), ntohs(icmph.un.echo.sequence));
- pr_icmph(e->ee_type, e->ee_code, e->ee_info, NULL);
-@@ -677,6 +678,7 @@
- struct iphdr *ip;
- int hlen;
- int csfailed;
-+ ssize_t wr_ret;
-
- /* Check the IP header */
- ip = (struct iphdr *)buf;
-@@ -748,7 +750,7 @@
- return !error_pkt;
- if (options & F_FLOOD) {
- if (error_pkt)
-- write(STDOUT_FILENO, "\bE", 2);
-+ wr_ret = write(STDOUT_FILENO, "\bE", 2);
- return !error_pkt;
- }
- printf("From %s: icmp_seq=%u ",
-@@ -765,9 +767,9 @@
- }
- if ((options & F_FLOOD) && !(options & (F_VERBOSE|F_QUIET))) {
- if (!csfailed)
-- write(STDOUT_FILENO, "!E", 2);
-+ wr_ret = write(STDOUT_FILENO, "!E", 2);
- else
-- write(STDOUT_FILENO, "!EC", 3);
-+ wr_ret = write(STDOUT_FILENO, "!EC", 3);
- return 0;
- }
- if (!(options & F_VERBOSE) || uid)
---- iputils/ping6.c.OLD 2006-02-06 10:34:35.000000000 +0100
-+++ iputils/ping6.c 2006-02-06 10:35:38.000000000 +0100
-@@ -353,7 +353,7 @@
- hostname = target;
-
- if (ipv6_addr_any(&source.sin6_addr)) {
-- int alen;
-+ socklen_t alen;
- int probe_fd = socket(AF_INET6, SOCK_DGRAM, 0);
-
- if (probe_fd < 0) {
---- iputils/ping.c.OLD 2006-02-06 10:34:35.000000000 +0100
-+++ iputils/ping.c 2006-02-06 10:34:35.000000000 +0100
-@@ -253,7 +253,7 @@
- }
-
- if (source.sin_addr.s_addr == 0) {
-- int alen;
-+ socklen_t alen;
- struct sockaddr_in dst = whereto;
- int probe_fd = socket(AF_INET, SOCK_DGRAM, 0);
-
-@@ -855,9 +855,36 @@
- case ICMP_SR_FAILED:
- printf("Source Route Failed\n");
- break;
-+ case ICMP_NET_UNKNOWN:
-+ printf("Destination Net Unknown\n");
-+ break;
-+ case ICMP_HOST_UNKNOWN:
-+ printf("Destination Host Unknown\n");
-+ break;
-+ case ICMP_HOST_ISOLATED:
-+ printf("Source Host Isolated\n");
-+ break;
-+ case ICMP_NET_ANO:
-+ printf("Destination Net Prohibited\n");
-+ break;
-+ case ICMP_HOST_ANO:
-+ printf("Destination Host Prohibited\n");
-+ break;
-+ case ICMP_NET_UNR_TOS:
-+ printf("Destination Net Unreachable for Type of Service\n");
-+ break;
-+ case ICMP_HOST_UNR_TOS:
-+ printf("Destination Host Unreachable for Type of Service\n");
-+ break;
- case ICMP_PKT_FILTERED:
- printf("Packet filtered\n");
- break;
-+ case ICMP_PREC_VIOLATION:
-+ printf("Precedence Violation\n");
-+ break;
-+ case ICMP_PREC_CUTOFF:
-+ printf("Precedence Cutoff\n");
-+ break;
- default:
- printf("Dest Unreachable, Bad Code: %d\n", code);
- break;
---- iputils/ping_common.c.OLD 2006-02-06 10:34:35.000000000 +0100
-+++ iputils/ping_common.c 2006-02-06 10:34:35.000000000 +0100
-@@ -67,7 +67,7 @@
- int ii, jj, kk;
- int pat[16];
- char *cp;
-- char *bp = outpack+8;
-+ unsigned char *bp = outpack+8;
-
- for (cp = patp; *cp; cp++) {
- if (!isxdigit(*cp)) {
-@@ -393,7 +393,7 @@
- void sock_setbufs(int icmp_sock, int alloc)
- {
- int rcvbuf, hold;
-- int tmplen = sizeof(hold);
-+ socklen_t tmplen = sizeof(hold);
-
- if (!sndbuf)
- sndbuf = alloc;
-@@ -464,7 +464,7 @@
-
- if (!(options & F_PINGFILLED)) {
- int i;
-- char *p = outpack+8;
-+ unsigned char *p = outpack+8;
-
- /* Do not forget about case of small datalen,
- * fill timestamp area too!
-@@ -819,7 +819,7 @@
- }
- if (pipesize > 1)
- printf(", pipe %d", pipesize);
-- if (ntransmitted > 1 && (!interval || (options&(F_FLOOD|F_ADAPTIVE)))) {
-+ if (ntransmitted > 1 && nreceived && (!interval || (options&(F_FLOOD|F_ADAPTIVE)))) {
- int ipg = (1000000*(long long)tv.tv_sec+tv.tv_usec)/(ntransmitted-1);
- printf(", ipg/ewma %d.%03d/%d.%03d ms",
- ipg/1000, ipg%1000, rtt/8000, (rtt/8)%1000); \ No newline at end of file