summaryrefslogtreecommitdiffstats
path: root/abs/core/iputils/iputils.patch
diff options
context:
space:
mode:
authorJames Meyer <james.meyer@operamail.com>2013-02-19 21:10:18 (GMT)
committerJames Meyer <james.meyer@operamail.com>2013-02-19 21:10:18 (GMT)
commit2648e999d277eac5c3d331a3609bcc73fafbea71 (patch)
tree40951fb8e7fdbe28a0baa324ae615055203f1e2e /abs/core/iputils/iputils.patch
parentc759b5e0c4aa6fc37412b4dee2cf9ad993fd376d (diff)
parent7e6f7ca174e1af67178dc5293a312a4a733eb095 (diff)
downloadlinhes_pkgbuild-2648e999d277eac5c3d331a3609bcc73fafbea71.zip
linhes_pkgbuild-2648e999d277eac5c3d331a3609bcc73fafbea71.tar.gz
linhes_pkgbuild-2648e999d277eac5c3d331a3609bcc73fafbea71.tar.bz2
Merge branch 'testing'
# By James Meyer (1091) and others # Via James Meyer (5) and others * testing: (1148 commits) LinHES-config: during install don't kill off lirc. This keeps the remote active all the way to the finish Change version numbers to 8.0 to match the release number. LinHES-conifg LinHES-system mythdb-initial runit-scripts supplemental-web LinHES-conifig: mv_install.py for the last partition don't go all the way to the end. Gotta leave room for gpt tables. xf86-video-ati: xorg ati driver. LinHES-config: timezip.py add syncing up of parental lvl passwords and starting level with MBE. LinHES-system: correct the logic for breaking out of the wmctrl loop. As written it would break out of the inner loop..but not the 60 iteration loop. e16_theme_settings: remove slide-in prop for new windows. For whatever reason this was preventing mplayer from being positioned correctly for appletrailers. LinHES-config, mythinstall: change case of hd_pvr and serial to all lower refs #902 zilog-firmware: firmware for TX support of the hdpvr and pvr-150 In general I can't recommend anybody using these transmitters but including the firmware just in case someone really wants to linhes-udev-rules: added hdprv_lirc rule. All of these lirc rules are limited to exactly one device. If more then one device is present then only the last device in init will get the symlink runit-scripts: fix logging for igdeamon, add support to remote init script so that the blaster is always the first device in the chain. added support specificly for hd_pvr LinHES-system: add lh_system_restore and lh_system_backup. These scripts are called from the mythmenu. refs #900 iguanair: rebuild with python 2.7 LinHES-system: msg_daemon.py fix init and nasty bug related to timeout. In a nutshell timeout wouldn't work unless a msg without a timeout was called first. linhes-udev-rules: add rules for mce,streamzap,serial lirc devices. mythinstall: recompile for matching libs mythtv: latest .25-fixes and change mythbackup/restore call lh_system_$op to replace mythbackup/mythrestore. mythbackup no longer works correctly with the new windowmanager linhes-scripts: myth2mp3, myth2x264, myth2xvid: use mythutil to get cutlist LinHES-config, supplimental-web: Fix proxy numbering for Ceton infiniTV linhes-system: add additional stuff to the system backup and also introduced an exclude file. The exclude/include files are locate in /home/mythtv/backup_config/ ...
Diffstat (limited to 'abs/core/iputils/iputils.patch')
-rw-r--r--abs/core/iputils/iputils.patch1170
1 files changed, 0 insertions, 1170 deletions
diff --git a/abs/core/iputils/iputils.patch b/abs/core/iputils/iputils.patch
deleted file mode 100644
index 4e99b75..0000000
--- a/abs/core/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