diff --git a/SOURCES/ifenslave.tar.gz b/SOURCES/ifenslave.tar.gz new file mode 100644 index 00000000..8a15341a Binary files /dev/null and b/SOURCES/ifenslave.tar.gz differ diff --git a/SOURCES/iputils-20121221-caps.patch b/SOURCES/iputils-20121221-caps.patch new file mode 100644 index 00000000..f46883b8 --- /dev/null +++ b/SOURCES/iputils-20121221-caps.patch @@ -0,0 +1,67 @@ +diff -rup iputils-s20121221/clockdiff.c iputils-s20121221-new/clockdiff.c +--- iputils-s20121221/clockdiff.c 2012-12-21 15:01:07.000000000 +0100 ++++ iputils-s20121221-new/clockdiff.c 2015-03-23 10:17:29.190895413 +0100 +@@ -21,6 +21,7 @@ + #include + #include + #ifdef CAPABILITIES ++#include + #include + #endif + +@@ -534,12 +535,51 @@ usage() { + + void drop_rights(void) { + #ifdef CAPABILITIES +- cap_t caps = cap_init(); +- if (cap_set_proc(caps)) { +- perror("clockdiff: cap_set_proc"); ++ cap_t cap_cur_p; ++ cap_t cap_p; ++ cap_value_t cap_raw = CAP_NET_RAW; ++ cap_flag_value_t cap_ok; ++ ++ cap_cur_p = cap_get_proc(); ++ if (!cap_cur_p) { ++ perror("ping: cap_get_proc"); + exit(-1); + } +- cap_free(caps); ++ ++ cap_p = cap_init(); ++ if (!cap_p) { ++ perror("ping: cap_init"); ++ exit(-1); ++ } ++ ++ cap_ok = CAP_CLEAR; ++ cap_get_flag(cap_cur_p, CAP_NET_RAW, CAP_PERMITTED, &cap_ok); ++ ++ if (cap_ok != CAP_CLEAR) ++ cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_raw, CAP_SET); ++ ++ if (cap_set_proc(cap_p) < 0) { ++ perror("ping: cap_set_proc"); ++ exit(-1); ++ } ++ ++ if (prctl(PR_SET_KEEPCAPS, 1) < 0) { ++ perror("ping: prctl"); ++ exit(-1); ++ } ++ ++ if (setuid(getuid()) < 0) { ++ perror("setuid"); ++ exit(-1); ++ } ++ ++ if (prctl(PR_SET_KEEPCAPS, 0) < 0) { ++ perror("ping: prctl"); ++ exit(-1); ++ } ++ ++ cap_free(cap_p); ++ cap_free(cap_cur_p); + #endif + if (setuid(getuid())) { + perror("clockdiff: setuid"); diff --git a/SOURCES/iputils-arping-doc.patch b/SOURCES/iputils-arping-doc.patch new file mode 100644 index 00000000..7e41a1f8 --- /dev/null +++ b/SOURCES/iputils-arping-doc.patch @@ -0,0 +1,24 @@ +The -I option is actually optional when a suitable device is found. + +--- iputils-s20160308/arping.c 2016-03-08 13:58:56.000000000 +0100 ++++ iputils-s20160308-new/arping.c 2016-09-05 12:59:22.746617891 +0200 +@@ -1086,7 +1086,7 @@ main(int argc, char **argv) + fprintf(stderr, "arping: Device %s not available.\n", device.name); + exit(2); + } +- fprintf(stderr, "arping: device (option -I) is required.\n"); ++ fprintf(stderr, "arping: Suitable device could not be determined. Please, use option -I.\n"); + usage(); + } + +--- iputils-s20160308/doc/arping.sgml 2016-03-08 13:58:56.000000000 +0100 ++++ iputils-s20160308-new/doc/arping.sgml 2016-09-05 12:58:03.425799308 +0200 +@@ -19,7 +19,7 @@ + -c + -w + -s +--I ++-I + + + diff --git a/SOURCES/iputils-arping-network-down.patch b/SOURCES/iputils-arping-network-down.patch new file mode 100644 index 00000000..7594e9b5 --- /dev/null +++ b/SOURCES/iputils-arping-network-down.patch @@ -0,0 +1,21 @@ +commit 66b793822d475bb40aa370c9ef7fc0499b22a5e2 +Author: Jan Synacek +Date: Thu Feb 23 12:59:46 2017 +0100 + + arping: exit if network disappears while running + + Originally reported at https://bugzilla.redhat.com/show_bug.cgi?id=1387542 + +diff --git a/arping.c b/arping.c +index 1a3f40b..dce8f7b 100644 +--- a/arping.c ++++ b/arping.c +@@ -1227,6 +1227,8 @@ main(int argc, char **argv) + if ((cc = recvfrom(s, packet, sizeof(packet), 0, + (struct sockaddr *)&from, &alen)) < 0) { + perror("arping: recvfrom"); ++ if (errno == ENETDOWN) ++ exit(2); + continue; + } + diff --git a/SOURCES/iputils-bind-I-interface.patch b/SOURCES/iputils-bind-I-interface.patch new file mode 100644 index 00000000..d35ce338 --- /dev/null +++ b/SOURCES/iputils-bind-I-interface.patch @@ -0,0 +1,36 @@ +commit fd79cc90c4af117e3fa41466151cdd289e460569 +Author: Jan Synacek +Date: Fri Sep 9 08:52:45 2016 +0200 + + ping: fix ping -6 -I + + ping passes the device variable to ping6_common.c, but it's not visible + there. + + Original patch by Xin Long . + +diff --git a/ping.c b/ping.c +index 34eb436..43acc2f 100644 +--- a/ping.c ++++ b/ping.c +@@ -106,7 +106,7 @@ static struct { + int cmsg_len; + + static struct sockaddr_in source = { .sin_family = AF_INET }; +-static char *device; ++char *device; + static int pmtudisc = -1; + + static void create_socket(socket_st *sock, int family, int socktype, int protocol, int requisite) +diff --git a/ping.h b/ping.h +index 6f5d64c..749f3ff 100644 +--- a/ping.h ++++ b/ping.h +@@ -167,6 +167,7 @@ extern volatile int exiting; + extern volatile int status_snapshot; + extern int confirm; + extern int confirm_flag; ++extern char *device; + + extern volatile int in_pr_addr; /* pr_addr() is executing */ + extern jmp_buf pr_addr_jmp; diff --git a/SOURCES/iputils-fix-I-setsockopt.patch b/SOURCES/iputils-fix-I-setsockopt.patch new file mode 100644 index 00000000..c2df236e --- /dev/null +++ b/SOURCES/iputils-fix-I-setsockopt.patch @@ -0,0 +1,25 @@ +Resolves: #1351540 + +--- a/ping.c ++++ b/ping.c +@@ -569,6 +569,7 @@ int ping4_run(int argc, char **argv, struct addrinfo *ai, socket_st *sock) + strncpy(ifr.ifr_name, device, IFNAMSIZ-1); + + enable_capability_raw(); ++ setsockopt(sock->fd, SOL_SOCKET, SO_BINDTODEVICE, device, strlen(device)+1); + rc = setsockopt(probe_fd, SOL_SOCKET, SO_BINDTODEVICE, device, strlen(device)+1); + disable_capability_raw(); + +--- a/ping6_common.c ++++ b/ping6_common.c +@@ -797,8 +797,10 @@ int ping6_run(int argc, char **argv, struct addrinfo *ai, struct socket_st *sock + enable_capability_raw(); + if ( + #ifdef IPV6_RECVPKTINFO ++ setsockopt(sock->fd, IPPROTO_IPV6, IPV6_PKTINFO, &ipi, sizeof ipi) == -1 && + setsockopt(probe_fd, IPPROTO_IPV6, IPV6_PKTINFO, &ipi, sizeof ipi) == -1 && + #endif ++ setsockopt(sock->fd, SOL_SOCKET, SO_BINDTODEVICE, device, strlen(device)+1) == -1 && + setsockopt(probe_fd, SOL_SOCKET, SO_BINDTODEVICE, device, strlen(device)+1) == -1) { + perror("setsockopt(SO_BINDTODEVICE)"); + exit(2); diff --git a/SOURCES/iputils-fix-ping-t-multicast.patch b/SOURCES/iputils-fix-ping-t-multicast.patch new file mode 100644 index 00000000..ca2fff4f --- /dev/null +++ b/SOURCES/iputils-fix-ping-t-multicast.patch @@ -0,0 +1,29 @@ +commit c5932dc918040504880258e777c9428331269291 +Author: Jan Synacek +Date: Wed Feb 22 10:29:33 2017 +0100 + + fix multicast setsockopt calls on big endian + + Originally reported at https://bugzilla.redhat.com/show_bug.cgi?id=1373333. + +diff --git a/ping.c b/ping.c +index 6f67d2d..45cca8d 100644 +--- a/ping.c ++++ b/ping.c +@@ -850,14 +850,14 @@ int ping4_run(int argc, char **argv, struct addrinfo *ai, socket_st *sock) + + if (options & F_NOLOOP) { + int loop = 0; +- if (setsockopt(sock->fd, IPPROTO_IP, IP_MULTICAST_LOOP, &loop, 1) == -1) { ++ if (setsockopt(sock->fd, IPPROTO_IP, IP_MULTICAST_LOOP, &loop, sizeof loop) == -1) { + perror ("ping: can't disable multicast loopback"); + exit(2); + } + } + if (options & F_TTL) { + int ittl = ttl; +- if (setsockopt(sock->fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, 1) == -1) { ++ if (setsockopt(sock->fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, sizeof ttl) == -1) { + perror ("ping: can't set multicast time-to-live"); + exit(2); + } diff --git a/SOURCES/iputils-fix-ping6-return-value.patch b/SOURCES/iputils-fix-ping6-return-value.patch new file mode 100644 index 00000000..5dbe7845 --- /dev/null +++ b/SOURCES/iputils-fix-ping6-return-value.patch @@ -0,0 +1,23 @@ +commit e25568f5e580d5631f533ae8474bcca40a011690 +Author: Jan Synacek +Date: Thu Aug 4 11:20:25 2016 +0200 + + correctly initialize first hop + + When the sin6_family was set to 0, the initial probe connect() + could have succeeded instead of failing. + + Fixes #57. + +diff --git a/ping6_common.c b/ping6_common.c +index fa01292..d6965dc 100644 +--- a/ping6_common.c ++++ b/ping6_common.c +@@ -805,6 +805,7 @@ int ping6_run(int argc, char **argv, struct addrinfo *ai, struct socket_st *sock + } + disable_capability_raw(); + } ++ firsthop.sin6_family = AF_INET6; + firsthop.sin6_port = htons(1025); + if (connect(probe_fd, (struct sockaddr*)&firsthop, sizeof(firsthop)) == -1) { + perror("connect"); diff --git a/SOURCES/iputils-fix-pmtu.patch b/SOURCES/iputils-fix-pmtu.patch new file mode 100644 index 00000000..1ebe5db6 --- /dev/null +++ b/SOURCES/iputils-fix-pmtu.patch @@ -0,0 +1,63 @@ +Resolves: #1444281 + +commit f3c189e26b3ba803b703d724e831e59390d0af13 +Author: Jan Synacek +Date: Mon May 15 12:07:59 2017 +0200 + + ping: fix pmtu discovery for ipv6 + + Fixes: #40 + +diff --git a/ping.c b/ping.c +index 45cca8d..fade2c9 100644 +--- a/ping.c ++++ b/ping.c +@@ -107,7 +107,7 @@ int cmsg_len; + + static struct sockaddr_in source = { .sin_family = AF_INET }; + char *device; +-static int pmtudisc = -1; ++int pmtudisc = -1; + + static void create_socket(socket_st *sock, int family, int socktype, int protocol, int requisite) + { +@@ -498,8 +498,14 @@ main(int argc, char **argv) + enable_capability_raw(); + if (hints.ai_family != AF_INET6) + create_socket(&sock4, AF_INET, hints.ai_socktype, IPPROTO_ICMP, hints.ai_family == AF_INET); +- if (hints.ai_family != AF_INET) ++ if (hints.ai_family != AF_INET) { + create_socket(&sock6, AF_INET6, hints.ai_socktype, IPPROTO_ICMPV6, sock4.fd == -1); ++ /* This may not be needed if both protocol versions always had the same value, but ++ * since I don't know that, it's better to be safe than sorry. */ ++ pmtudisc = pmtudisc == IP_PMTUDISC_DO ? IPV6_PMTUDISC_DO : ++ pmtudisc == IP_PMTUDISC_DONT ? IPV6_PMTUDISC_DONT : ++ pmtudisc == IP_PMTUDISC_WANT ? IPV6_PMTUDISC_WANT : pmtudisc; ++ } + disable_capability_raw(); + + /* Limit address family on single-protocol systems */ +diff --git a/ping.h b/ping.h +index 1253fa0..78e3853 100644 +--- a/ping.h ++++ b/ping.h +@@ -168,6 +168,7 @@ extern volatile int status_snapshot; + extern int confirm; + extern int confirm_flag; + extern char *device; ++extern int pmtudisc; + + extern volatile int in_pr_addr; /* pr_addr() is executing */ + extern jmp_buf pr_addr_jmp; +diff --git a/ping6_common.c b/ping6_common.c +index a5627ae..f5c81fd 100644 +--- a/ping6_common.c ++++ b/ping6_common.c +@@ -101,7 +101,6 @@ void ping6_usage(unsigned) __attribute((noreturn)); + + struct sockaddr_in6 source6 = { .sin6_family = AF_INET6 }; + char *device; +-int pmtudisc=-1; + + #if defined(USE_GCRYPT) || defined(USE_OPENSSL) || defined(USE_NETTLE) + #include "iputils_md5dig.h" diff --git a/SOURCES/iputils-fix-possible-double-free.patch b/SOURCES/iputils-fix-possible-double-free.patch new file mode 100644 index 00000000..11de2057 --- /dev/null +++ b/SOURCES/iputils-fix-possible-double-free.patch @@ -0,0 +1,20 @@ +commit df7d2d83345e2e547c2cb3a83d3a8a099339a742 +Author: Jan Synacek +Date: Fri Jan 6 13:28:04 2017 +0100 + + ping: prevent possible double free after cap_free() + + Original bugreport: https://bugzilla.redhat.com/show_bug.cgi?id=1410114 + +diff --git a/ping_common.c b/ping_common.c +index 0b32d6a..b0825e3 100644 +--- a/ping_common.c ++++ b/ping_common.c +@@ -159,6 +159,7 @@ int modify_capability(cap_value_t cap, cap_flag_value_t on) + } + + cap_free(cap_p); ++ cap_p = NULL; + + rc = 0; + out: diff --git a/SOURCES/iputils-ifenslave.patch b/SOURCES/iputils-ifenslave.patch new file mode 100644 index 00000000..662d69da --- /dev/null +++ b/SOURCES/iputils-ifenslave.patch @@ -0,0 +1,13 @@ +--- iputils/ifenslave.c.addr 2006-03-29 15:00:24.000000000 +0200 ++++ iputils/ifenslave.c 2006-03-29 15:02:01.000000000 +0200 +@@ -524,8 +524,8 @@ + if (ioctl(skfd, SIOCGIFADDR, &ifr) < 0) + return -1; + printf("The result of SIOCGIFADDR is %2.2x.%2.2x.%2.2x.%2.2x.\n", +- ifr.ifr_addr.sa_data[0], ifr.ifr_addr.sa_data[1], +- ifr.ifr_addr.sa_data[2], ifr.ifr_addr.sa_data[3]); ++ ifr.ifr_addr.sa_data[2], ifr.ifr_addr.sa_data[3], ++ ifr.ifr_addr.sa_data[4], ifr.ifr_addr.sa_data[5]); + + strcpy(ifr.ifr_name, ifname); + if (ioctl(skfd, SIOCGIFHWADDR, &ifr) < 0) diff --git a/SOURCES/iputils-oversized-packets.patch b/SOURCES/iputils-oversized-packets.patch new file mode 100644 index 00000000..464b8a04 --- /dev/null +++ b/SOURCES/iputils-oversized-packets.patch @@ -0,0 +1,46 @@ +From 61ed3913790901f2ad4973de60b373150fde01e0 Mon Sep 17 00:00:00 2001 +From: Jan Synacek +Date: Wed, 20 Apr 2016 09:51:12 +0200 +Subject: [PATCH] ping: do not allow oversized packets to root + +The code later fails anyways (as the original comment suggests), which +results in a weird recvmsg() loop that times out eventually. + +Reproducer: + +./ping -c 1 -s 65530 127.0.0.1 +--- + ping.c | 10 ++-------- + 1 file changed, 2 insertions(+), 8 deletions(-) + +diff --git a/ping.c b/ping.c +index f435fe2..ea37c4f 100644 +--- a/ping.c ++++ b/ping.c +@@ -80,8 +80,6 @@ ping_func_set_st ping4_func_set = { + #define NROUTES 9 /* number of record route slots */ + #define TOS_MAX 255 /* 8-bit TOS field */ + +-static const int max_ping4_packet = 0x10000; +- + static int ts_type; + static int nroute = 0; + static __u32 route[10]; +@@ -806,12 +804,8 @@ int ping4_run(int argc, char **argv, struct addrinfo *ai, socket_st *sock) + } + + if (datalen > 0xFFFF - 8 - optlen - 20) { +- if (uid || datalen > max_ping4_packet-8 || datalen > MAXPACKET-8) { +- fprintf(stderr, "Error: packet size %d is too large. Maximum is %d\n", datalen, 0xFFFF-8-20-optlen); +- exit(2); +- } +- /* Allow small oversize to root yet. It will cause EMSGSIZE. */ +- fprintf(stderr, "WARNING: packet size %d is too large. Maximum is %d\n", datalen, 0xFFFF-8-20-optlen); ++ fprintf(stderr, "Error: packet size %d is too large. Maximum is %d\n", datalen, 0xFFFF-8-20-optlen); ++ exit(2); + } + + if (datalen >= sizeof(struct timeval)) /* can we time transfer */ +-- +2.7.4 + diff --git a/SOURCES/iputils-ping-eacces.patch b/SOURCES/iputils-ping-eacces.patch new file mode 100644 index 00000000..5c1b0356 --- /dev/null +++ b/SOURCES/iputils-ping-eacces.patch @@ -0,0 +1,26 @@ +commit 6702a95f2ea1a6a5b7c94437a87c1be6d0677733 +Author: Jan Synacek +Date: Mon Sep 12 12:50:58 2016 +0200 + + ping: fix error message when getting EACCES from connect() + + According to man connect(2), EACCES can be set either when pinging a + broadcast address, or when a local firewall rule is in place. + + Easily reproduced by running "ip route add prohibit " and then + trying to ping the address. + +diff --git a/ping.c b/ping.c +index 34eb436..52b0f0e 100644 +--- a/ping.c ++++ b/ping.c +@@ -655,7 +655,8 @@ int ping4_run(int argc, char **argv, struct addrinfo *ai, socket_st *sock) + if (connect(probe_fd, (struct sockaddr*)&dst, sizeof(dst)) == -1) { + if (errno == EACCES) { + if (broadcast_pings == 0) { +- fprintf(stderr, "Do you want to ping broadcast? Then -b\n"); ++ fprintf(stderr, ++ "Do you want to ping broadcast? Then -b. If not, check your local firewall rules.\n"); + exit(2); + } + fprintf(stderr, "WARNING: pinging broadcast address\n"); diff --git a/SOURCES/iputils-ping-hang.patch b/SOURCES/iputils-ping-hang.patch new file mode 100644 index 00000000..dca82284 --- /dev/null +++ b/SOURCES/iputils-ping-hang.patch @@ -0,0 +1,48 @@ +commit 1c97ab2b9bf401d8c4db9f4f4a4e13e1002c2d64 +Author: Robert Schiele +Date: Mon Mar 14 08:59:56 2016 +0100 + + Revert "ping_common.c: fix message flood when EPERM is encountered in ping" + + This reverts commit a60ad56a18b660ea8158e6ce8d782fb0290329f8. + + The reason for this revert is that while the patch above fixed + https://bugzilla.redhat.com/show_bug.cgi?id=1061867 it had weird behavior + with other types of EPERM responses where it could end up in an endless + loop despite the fact that -c flag was specified. In addition to that the + mentioned bug is also fixed with + commit 8b75f100bbc84aa32a2c35b54c53f48071af6e95 + "ping: ICMP error replies while errno < 0 is a hard error" + by Jason A. Donenfeld + such that this one should no longer be needed anyway. + + Signed-off-by: Robert Schiele + +diff --git a/ping_common.c b/ping_common.c +index fe7d6e3..7ea1fb3 100644 +--- a/ping_common.c ++++ b/ping_common.c +@@ -373,11 +373,10 @@ resend: + if (i > 0) { + /* Apparently, it is some fatal bug. */ + abort(); +- } else if (errno == ENOBUFS || errno == ENOMEM || errno == EPERM) { ++ } else if (errno == ENOBUFS || errno == ENOMEM) { + int nores_interval; + +- /* Device queue overflow, OOM or operation not permitted. +- * Packet is not sent. */ ++ /* Device queue overflow or OOM. Packet is not sent. */ + tokens = 0; + /* Slowdown. This works only in adaptive mode (option -A) */ + rtt_addend += (rtt < 8*50000 ? rtt/8 : 50000); +@@ -386,8 +385,7 @@ resend: + nores_interval = SCHINT(interval/2); + if (nores_interval > 500) + nores_interval = 500; +- if (errno != EPERM) +- oom_count++; ++ oom_count++; + if (oom_count*nores_interval < lingertime) + return nores_interval; + i = 0; diff --git a/SOURCES/iputils-reorder-I-parsing.patch b/SOURCES/iputils-reorder-I-parsing.patch new file mode 100644 index 00000000..e6469557 --- /dev/null +++ b/SOURCES/iputils-reorder-I-parsing.patch @@ -0,0 +1,37 @@ +commit 1f6f39b84f81cfa6bc243557a68eebeeac7e8ea3 +Author: Robert Schiele +Date: Mon Mar 14 09:18:08 2016 +0100 + + reorder -I option parsing + + This changes -I option parsing in a way that device is only assigned + if neither an IPv4 nor an IPv6 address is detected. Otherwise those + addresses are misinterpreted as device names and as such will cause + error messages later in the code. + + Signed-off-by: Robert Schiele + +diff --git a/ping.c b/ping.c +index c42d6eb..498c0e8 100644 +--- a/ping.c ++++ b/ping.c +@@ -279,10 +279,6 @@ main(int argc, char **argv) + break; + } + case 'I': +- if (inet_pton(AF_INET, optarg, &source.sin_addr) > 0) +- options |= F_STRICTSOURCE; +- else +- device = optarg; + /* IPv6 */ + if (strchr(optarg, ':')) { + char *p, *addr = strdup(optarg); +@@ -306,6 +302,8 @@ main(int argc, char **argv) + options |= F_STRICTSOURCE; + + free(addr); ++ } else if (inet_pton(AF_INET, optarg, &source.sin_addr) > 0) { ++ options |= F_STRICTSOURCE; + } else { + device = optarg; + } diff --git a/SOURCES/iputils-rh-ping-ipv4-by-default.patch b/SOURCES/iputils-rh-ping-ipv4-by-default.patch new file mode 100644 index 00000000..1804cfed --- /dev/null +++ b/SOURCES/iputils-rh-ping-ipv4-by-default.patch @@ -0,0 +1,31 @@ +RHEL only. + +Resolves: #1317796 + +From b2cc1e501531d5d66988ce8b6ab3e8a7b359f040 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Pavel=20=C5=A0imerda?= +Date: Mon, 21 Mar 2016 14:13:56 +0100 +Subject: [PATCH] rhel-7.3: keep good old IPv4 ping + +--- + ping.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/ping.c b/ping.c +index 498c0e8..5474b9d 100644 +--- a/ping.c ++++ b/ping.c +@@ -443,6 +443,10 @@ main(int argc, char **argv) + + target = argv[argc-1]; + ++ /* RHEL-7.3 rebase: Disable the new dual-stack feature. */ ++ if (hints.ai_family == AF_UNSPEC) ++ hints.ai_family = AF_INET; ++ + /* Create sockets */ + enable_capability_raw(); + if (hints.ai_family != AF_INET6) +-- +2.7.2 + diff --git a/SOURCES/iputils-rh.patch b/SOURCES/iputils-rh.patch new file mode 100644 index 00000000..f66f8854 --- /dev/null +++ b/SOURCES/iputils-rh.patch @@ -0,0 +1,20 @@ +--- iputils-s20160308/Makefile 2016-03-08 13:58:56.000000000 +0100 ++++ iputils-s20160308-new/Makefile 2016-03-09 10:09:02.295409179 +0100 +@@ -36,7 +36,7 @@ WITHOUT_IFADDRS=no + ARPING_DEFAULT_DEVICE= + + # nettle library for ipv6 ping [yes|no|static] +-USE_NETTLE=yes ++USE_NETTLE=no + # libgcrypt library for ipv6 ping [no|yes|static] + USE_GCRYPT=no + # Crypto library for ping6 [shared|static|no] +@@ -53,7 +53,7 @@ ENABLE_RDISC_SERVER=no + # What a pity, all new gccs are buggy and -Werror does not work. Sigh. + # CFLAGS+=-fno-strict-aliasing -Wstrict-prototypes -Wall -Werror -g + CFLAGS?=-O3 -g +-CFLAGS+=-fno-strict-aliasing -Wstrict-prototypes -Wall ++CFLAGS+=$(RPM_OPT_FLAGS) -fno-strict-aliasing -Wstrict-prototypes -Wall + CPPFLAGS+=-D_GNU_SOURCE + LDLIB= + diff --git a/SOURCES/ninfod.service b/SOURCES/ninfod.service new file mode 100644 index 00000000..8c1df65c --- /dev/null +++ b/SOURCES/ninfod.service @@ -0,0 +1,10 @@ +[Unit] +Description=Node Information Query Daemon +After=syslog.target network.target + +[Service] +Type=forking +ExecStart=/usr/sbin/ninfod + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/rdisc.initd b/SOURCES/rdisc.initd new file mode 100644 index 00000000..a70e0da5 --- /dev/null +++ b/SOURCES/rdisc.initd @@ -0,0 +1,87 @@ +#!/bin/bash +# +# $Id: rdisc,v 1.5 2005/04/05 10:06:01 bastian Exp $ +# +### BEGIN INIT INFO +# Provides: rdisc +# Short-Description: This is a daemon which discovers routers on the local subnet. +# Description: This is a daemon which discovers routers on the local subnet. +### END INIT INFO + +# chkconfig: - 41 89 +# config: /etc/sysconfig/rdisc + +# Source function library. +. /etc/init.d/functions +. /etc/sysconfig/network + +LOCKFILE=/var/lock/subsys/rdisc + +# Set default options in /etc/sysconfig/rdisc +[ -f /etc/sysconfig/rdisc ] && . /etc/sysconfig/rdisc +RDISCOPTS=${RDISCOPTS:-"-s"} + +start() { + # Check that networking is configured. + [ ${NETWORKING} = "no" ] && exit 1 + + echo -n $"Starting router discovery: " + if [ $UID -ne 0 ]; then + RETVAL=4 + failure + else + daemon /sbin/rdisc $RDISCOPTS + RETVAL=$? + [ $RETVAL -eq 0 ] && touch $LOCKFILE + fi; + echo + return $RETVAL +} + +stop() { + echo -n $"Shutting down router discovery services: " + if [ $UID -ne 0 ]; then + RETVAL=4 + failure + else + killproc /sbin/rdisc + RETVAL=$? + [ $RETVAL -eq 0 ] && rm -f $LOCKFILE + fi; + echo + return $RETVAL +} + +restart() { + stop + start +} + +RETVAL=0 + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status rdisc + ;; + restart|reload) + restart + ;; + condrestart) + if status $prog > /dev/null; then + stop + start + fi + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|reload}" + exit 2 +esac + +exit $? diff --git a/SOURCES/rdisc.service b/SOURCES/rdisc.service new file mode 100644 index 00000000..47f741f8 --- /dev/null +++ b/SOURCES/rdisc.service @@ -0,0 +1,11 @@ +[Unit] +Description=rdisc daemon which discovers routers on the local subnet +After=syslog.target network.target + +[Service] +Type=forking +EnvironmentFile=/etc/sysconfig/rdisc +ExecStart=/sbin/rdisc $RDISCOPTS + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/rdisc.sysconfig b/SOURCES/rdisc.sysconfig new file mode 100644 index 00000000..bd11c2ad --- /dev/null +++ b/SOURCES/rdisc.sysconfig @@ -0,0 +1 @@ +RDISCOPTS="-s" diff --git a/SPECS/iputils.spec b/SPECS/iputils.spec new file mode 100644 index 00000000..354e5459 --- /dev/null +++ b/SPECS/iputils.spec @@ -0,0 +1,720 @@ +%global _hardened_build 1 + +Summary: Network monitoring tools including ping +Name: iputils +Version: 20160308 +Release: 10%{?dist} +# some parts are under the original BSD (ping.c) +# some are under GPLv2+ (tracepath.c) +License: BSD and GPLv2+ +URL: https://github.com/iputils/iputils +Group: System Environment/Daemons + +Source0: https://github.com/iputils/iputils/archive/s%{version}.tar.gz#/%{name}-s%{version}.tar.gz +Source1: ifenslave.tar.gz +Source3: rdisc.initd +Source4: rdisc.service +Source5: rdisc.sysconfig +Source6: ninfod.service + +Patch0: iputils-rh.patch +Patch1: iputils-ifenslave.patch +Patch2: iputils-20121221-caps.patch +Patch3: iputils-rh-ping-ipv4-by-default.patch +Patch4: iputils-oversized-packets.patch +Patch5: iputils-reorder-I-parsing.patch +Patch6: iputils-fix-I-setsockopt.patch +Patch7: iputils-ping-hang.patch +Patch8: iputils-arping-doc.patch +Patch9: iputils-fix-ping6-return-value.patch +Patch10: iputils-bind-I-interface.patch +Patch11: iputils-fix-possible-double-free.patch +Patch12: iputils-ping-eacces.patch +Patch13: iputils-fix-ping-t-multicast.patch +Patch14: iputils-arping-network-down.patch +Patch15: iputils-fix-pmtu.patch + +BuildRequires: docbook-utils perl-SGMLSpm +BuildRequires: glibc-kernheaders >= 2.4-8.19 +BuildRequires: libidn-devel +BuildRequires: openssl-devel +BuildRequires: libcap-devel +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/chkconfig +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +BuildRequires: systemd +Requires: filesystem >= 3 +Provides: /bin/ping +Provides: /bin/ping6 +Provides: /sbin/arping +Provides: /sbin/rdisc + +%description +The iputils package contains basic utilities for monitoring a network, +including ping. The ping command sends a series of ICMP protocol +ECHO_REQUEST packets to a specified network host to discover whether +the target machine is alive and receiving network traffic. + +%package sysvinit +Group: System Environment/Daemons +Summary: SysV initscript for rdisc daemon +Requires: %{name} = %{version}-%{release} +Requires(preun): /sbin/service +Requires(postun): /sbin/service + +%description sysvinit +The iputils-sysvinit contains SysV initscritps support. + +%package ninfod +Group: System Environment/Daemons +Summary: Node Information Query Daemon +Requires: %{name} = %{version}-%{release} +Provides: %{_sbindir}/ninfod + +%description ninfod +Node Information Query (RFC4620) daemon. Responds to IPv6 Node Information +Queries. + +%prep +%setup -q -a 1 -n %{name}-s%{version} + +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 +%patch15 -p1 + +%build +%ifarch s390 s390x + export CFLAGS="-fPIE" +%else + export CFLAGS="-fpie" +%endif +export LDFLAGS="-pie -Wl,-z,relro,-z,now" + +make %{?_smp_mflags} arping clockdiff ping rdisc tracepath tracepath6 \ + ninfod +gcc -Wall $RPM_OPT_FLAGS ifenslave.c -o ifenslave +make -C doc man + +%install +mkdir -p ${RPM_BUILD_ROOT}%{_sbindir} +mkdir -p ${RPM_BUILD_ROOT}%{_bindir} +mkdir -p $RPM_BUILD_ROOT/%{_unitdir} +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig + +install -c clockdiff ${RPM_BUILD_ROOT}%{_sbindir}/ +install -cp arping ${RPM_BUILD_ROOT}%{_sbindir}/ +install -cp ping ${RPM_BUILD_ROOT}%{_bindir}/ +install -cp ifenslave ${RPM_BUILD_ROOT}%{_sbindir}/ +install -cp rdisc ${RPM_BUILD_ROOT}%{_sbindir}/ +install -cp tracepath ${RPM_BUILD_ROOT}%{_bindir}/ +install -cp tracepath6 ${RPM_BUILD_ROOT}%{_bindir}/ +install -cp ninfod/ninfod ${RPM_BUILD_ROOT}%{_sbindir}/ + +mkdir -p ${RPM_BUILD_ROOT}%{_bindir} +ln -sf ping ${RPM_BUILD_ROOT}%{_bindir}/ping6 +ln -sf ../bin/ping ${RPM_BUILD_ROOT}%{_sbindir}/ping6 +ln -sf ../bin/tracepath ${RPM_BUILD_ROOT}%{_sbindir} +ln -sf ../bin/tracepath6 ${RPM_BUILD_ROOT}%{_sbindir} + +mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man8 +install -cp doc/clockdiff.8 ${RPM_BUILD_ROOT}%{_mandir}/man8/ +install -cp doc/arping.8 ${RPM_BUILD_ROOT}%{_mandir}/man8/ +install -cp doc/ping.8 ${RPM_BUILD_ROOT}%{_mandir}/man8/ +install -cp doc/rdisc.8 ${RPM_BUILD_ROOT}%{_mandir}/man8/ +install -cp doc/tracepath.8 ${RPM_BUILD_ROOT}%{_mandir}/man8/ +install -cp doc/ninfod.8 ${RPM_BUILD_ROOT}%{_mandir}/man8/ +install -cp ifenslave.8 ${RPM_BUILD_ROOT}%{_mandir}/man8/ +ln -s ping.8.gz ${RPM_BUILD_ROOT}%{_mandir}/man8/ping6.8.gz +ln -s tracepath.8.gz ${RPM_BUILD_ROOT}%{_mandir}/man8/tracepath6.8.gz + +install -dp ${RPM_BUILD_ROOT}%{_sysconfdir}/rc.d/init.d +install -m 755 -p %SOURCE3 ${RPM_BUILD_ROOT}%{_sysconfdir}/rc.d/init.d/rdisc +install -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/rdisc +install -m 644 %SOURCE4 ${RPM_BUILD_ROOT}/%{_unitdir} +install -m 644 %SOURCE6 ${RPM_BUILD_ROOT}/%{_unitdir} + +iconv -f ISO88591 -t UTF8 RELNOTES -o RELNOTES.tmp +touch -r RELNOTES RELNOTES.tmp +mv -f RELNOTES.tmp RELNOTES + +%post +%systemd_post rdisc.service + +%preun +%systemd_preun rdisc.service + +%postun +%systemd_postun_with_restart rdisc.service + +%post ninfod +%systemd_post ninfod.service + +%preun ninfod +%systemd_preun ninfod.service + +%postun ninfod +%systemd_postun_with_restart ninfod.service + +%files +%doc RELNOTES README.bonding +%{_unitdir}/rdisc.service +%attr(0755,root,root) %caps(cap_net_raw=p) %{_sbindir}/clockdiff +%attr(0755,root,root) %caps(cap_net_raw=p) %{_sbindir}/arping +%attr(0755,root,root) %caps(cap_net_raw=p cap_net_admin=p) %{_bindir}/ping +%{_sbindir}/ifenslave +%{_sbindir}/rdisc +%{_bindir}/tracepath +%{_bindir}/tracepath6 +%{_bindir}/ping6 +%{_sbindir}/ping6 +%{_sbindir}/tracepath +%{_sbindir}/tracepath6 +%attr(644,root,root) %{_mandir}/man8/clockdiff.8.gz +%attr(644,root,root) %{_mandir}/man8/arping.8.gz +%attr(644,root,root) %{_mandir}/man8/ping.8.gz +%attr(644,root,root) %{_mandir}/man8/ping6.8.gz +%attr(644,root,root) %{_mandir}/man8/rdisc.8.gz +%attr(644,root,root) %{_mandir}/man8/tracepath.8.gz +%attr(644,root,root) %{_mandir}/man8/tracepath6.8.gz +%attr(644,root,root) %{_mandir}/man8/ifenslave.8.gz +%config(noreplace) %attr(0644,root,root) %{_sysconfdir}/sysconfig/rdisc + +%files sysvinit +%{_sysconfdir}/rc.d/init.d/rdisc + +%files ninfod +%attr(0755,root,root) %caps(cap_net_raw=ep) %{_sbindir}/ninfod +%{_unitdir}/ninfod.service +%attr(644,root,root) %{_mandir}/man8/ninfod.8.gz + +%changelog +* Mon May 22 2017 Jan Synáček - 20160308-10 +- fix pmtu discovery for ipv6 (#1444281) + +* Tue Feb 21 2017 Jan Synáček - 20160308-9 +- IPv4 vs IPv6 inconsistency on return value of ping (#1362388) +- ping6 does not use device specified with -I parameter (#1371824, #1424965) +- double cap_free call in ping_common.c (#1410114) +- ping assumes EACCESS errors are due to broadcast addresses (#1387315) +- ping -t with multicast address without effect on ppc64 (#1373333) +- arping -c does not exit when the device is deleted (#1387542) + +* Mon Sep 5 2016 Jan Synáček - 20160308-8 +- arping documentation inconsistency (#1351704) + +* Mon Aug 29 2016 Jan Synáček - 20160308-7 +- ping hung when it cannot receive echo reply (#1362463) +- arping documentation inconsistency (#1351704) + +* Fri Jul 29 2016 Jan Synáček - 20160308-6 +- ping does not use device specified with -I parameter (#1351540) + +* Tue Jul 12 2016 Jan Synáček - 20160308-5 +- add missing /bin/ping6 (#1355674) + +* Fri Jun 3 2016 Jan Synáček - 20160308-4 +- reorder -I option parsing (#1337598) + +* Wed May 11 2016 Jan Synáček - 20160308-3 +- inconsistent ping behaviour and hang with too large packet size (#1172084) + +* Tue Mar 29 2016 Jan Synáček - 20160308-2 +- ping IPv4 addresses by default when given a name (#1317796) + +* Mon Mar 14 2016 Jan Synáček - 20160308-1 +- Update to iputils-s20160308 (#1273336) + +* Tue Mar 1 2016 Jan Synáček - 20150815-1 +- Update to iputils-s20150815 (#1273336) + +* Wed Apr 29 2015 Jan Synáček - 20121221-7 +- ping returns odd results with options inet6 in resolv.conf (#1210331) +- count of "back" is not correct in tracepath (#1208372) + +* Mon Mar 23 2015 Jan Synáček - 20121221-7 +- ping does not work in dkr images (#1142311) + +* Fri Jan 24 2014 Daniel Mach - 20121221-6 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 20121221-5 +- Mass rebuild 2013-12-27 + +* Thu Oct 31 2013 Jan Synáček - 20121221-4 +- Harden the package even more (full RELRO) (#983259) + +* Mon Jul 15 2013 Jan Synáček - 20121221-3 +- Harden the package + +* Fri Feb 01 2013 Jan Synáček - 20121221-2 +- Always use posix locale when reading -i (#905840) +- Set correct ninfod capabilities + +* Mon Jan 07 2013 Jan Synáček - 20121221-1 +- Update to iputils-s20121207 (#890397) and remove unnecessary patches + +* Fri Dec 07 2012 Jan Synáček - 20121207-1 +- Update to iputils-s20121207 (#884983) - fixes a ping segfault introduced + by the previous update +- Update ninfod-minor patch +- Renumber patches +- Fix -F switch (flowlabel patch) + +* Thu Dec 06 2012 Jan Synáček - 20121205-1 +- Update to iputils-s20121205 (#884436) and remove unnecessary patches + +* Thu Dec 06 2012 Jan Synáček - 20121125-3 +- Package ninfod (#877530) +- Update systemd requirements + +* Mon Nov 26 2012 Jan Synáček - 20121125-2 +- Comment patches and cleanup +- Update ifaddrs patch +- Call usage() before limiting capabilities +- Correct ifaddrs patch +- Drop corr_type patch (gcc 4.4 build hack) +- Fix missing end tags in sgml documentation + +* Mon Nov 26 2012 Jan Synáček - 20121125-1 +- Update to iputils-s20121125 (#879952) + +* Mon Nov 26 2012 Jan Synáček - 20121121-2 +- Re-fix arping's default device search logic (#879807) + +* Thu Nov 22 2012 Jan Synáček - 20121121-1 +- Update to iputils-s20121121, drop unnecessary patches +- Add capabilities to clockdiff and arping +- Renumber patches +- Fix arping's default device search logic + +* Mon Nov 19 2012 Jan Synáček - 20121112-2 +- Update License field + +* Tue Nov 13 2012 Jan Synáček - 20121112-1 +- Update to iputils-s20121112 (#875767) + + drop unnecessary patches + + update patches + + wrap SO_BINDTODEVICE with the correct capability + + fix incorrect free (hits when -lidn is used) + +* Thu Nov 08 2012 Jan Synáček - 20121106-2 +- Update ifenslave tarball (#859182) + +* Tue Nov 06 2012 Jan Synáček - 20121106-1 +- Update to iputils-s20121106 (#873571) and update patches + +* Mon Oct 15 2012 Jan Synáček - 20121011-1 +- Update to iputils-s20121011 + + drop unnecessary patches + + update patches + + improve spec + +* Wed Aug 22 2012 Jan Synáček - 20101006-18 +- Improve spec for fedora +- Add systemd-rpm macros (#850167) + +* Mon Jul 23 2012 Jan Synáček 20101006-17 +- Minor update: capabilities patch + +* Fri Jul 20 2012 Jan Synáček 20101006-16 +- Make fedora-review friendly + +* Thu Jul 19 2012 Fedora Release Engineering - 20101006-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jun 25 2012 Jan Synáček 20101006-15 +- Ping fixes: + + enable marking packets when the correct capabilities are set (#802197) + + integer overflow (#834661) + + Fallback to numeric addresses while exiting (#834661) + +* Wed Jan 25 2012 Harald Hoyer 20101006-14 +- install everything in /usr + https://fedoraproject.org/wiki/Features/UsrMove + +* Fri Jan 13 2012 Fedora Release Engineering - 20101006-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Nov 24 2011 Jiri Skala - 20101006-12 +- fixes #756439 - ping Record Route report incorrect (same route) + +* Thu Nov 10 2011 Jiri Skala - 20101006-11 +- fixes #752397 - arping uses eth0 as default interface + +* Mon Aug 01 2011 Jiri Skala - 20101006-10 +- rebuild for libcap + +* Mon Jun 27 2011 Jiri Skala - 20101006-9 +- fixes #697532 - The SysV initscript should be packaged into subpackage + +* Tue Mar 29 2011 Jiri Skala - 20101006-8 +- fixes #663734 - ping/ping6 man page fixes +- fixes #673831 - tracepath/tracepath6 manpage fixes + +* Wed Feb 09 2011 Jiri Skala - 20101006-7 +- fixes build errors due to unused variables + +* Wed Feb 09 2011 Fedora Release Engineering - 20101006-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Jan 19 2011 Jiri Skala - 20101006-5 +- fixes #670380 - added /etc/sysconfig/rdisc, modified initscript +- initscript moved to git + +* Wed Dec 15 2010 Jiri Skala - 20101006-4 +- fixes #662720 - Providing native systemd file +- freeing memory when capabilities are dropped + +* Mon Nov 08 2010 Jiri Skala - 20101006-3 +- applied patch dropping capabilities of Ludwig Nussel +- fixes building ping, pinpg6 with -pie option +- moves most CFLAGS options from spec to Makefile + +* Wed Oct 27 2010 Jiri Skala - 20101006-2 +- fixes #646444 - Replace SETUID in spec file with the correct file capabilities + +* Mon Oct 11 2010 Jiri Skala - 20101006-1 +- update to latest upstream + +* Tue Jul 13 2010 Jiri Skala - 20100418-3 +- applied patch preventing ping against dos attack + +* Wed May 19 2010 Jiri Skala - 20100418-2 +- fixes #593641 - update bonding files (updated ifenslave tarball) + +* Tue Apr 20 2010 Jiri Skala - 20100418-1 +- update to latest upstream +- enables flowlabel feature (-F option) + +* Fri Mar 05 2010 Jiri Skala - 20071127-10 +- fixes #557308 - arping ignores the deadline option + +* Fri Jul 24 2009 Fedora Release Engineering - 20071127-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Jiri Skala - 20071127-8 +- remake type conversions to gcc4.4 requirements + +* Wed Feb 25 2009 Fedora Release Engineering - 20071127-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Sep 26 2008 Jiri Skala - 20071127-6 +- #455713 not accepted - suid is back + +* Fri Aug 15 2008 Jiri Skala - 20071127-5 +- removed a dependency on libsysfs library in arping + +* Wed Aug 06 2008 Jiri Skala - 20071127-4 +- Resolves: #455713 remove suid from ping +- corrected typing error in man + +* Tue Jun 03 2008 Martin Nagy - 20071127-3 +- major patch cleanup so it will be easier to get patches upstream +- fix for #68212, previous fix actually didn't work for ping6 +- renewed the ia64 align patches +- update README.bonding +- clear up the code from warnings +- spec file cleanup + +* Tue Mar 25 2008 Martin Nagy - 20071127-2 +- fix inconsistent behaviour of ping (#360881) + +* Mon Feb 25 2008 Martin Nagy - 20071127-1 +- update to new upstream version + +* Mon Feb 18 2008 Martin Nagy - 20070202-9 +- rebuild + +* Mon Feb 18 2008 Martin Nagy - 20070202-8 +- correctly fix the -w option and return code of arping (#387881) + +* Fri Feb 01 2008 Martin Nagy - 20070202-7 +- fix -Q option of ping6 (#213544) + +* Mon Jan 14 2008 Martin Nagy - 20070202-6 +- fix absolute symlinks and character encoding for RELNOTES (#225909) +- preserve file timestamps (#225909) +- use %%{?_smp_mflags} (#225909) +- fix service rdisc stop removing of lock file + +* Fri Sep 14 2007 Martin Bacovsky - 20070202-5 +- rebuild + +* Fri Aug 3 2007 Martin Bacovsky - 20070202-4 +- resolves: #236725: ping does not work for subsecond intervals for ordinary user +- resolves: #243197: RFE: Please sync ifenslave with current kernel +- resolves: #246954: Initscript Review +- resolves: #251124: can't build rdisc - OPEN_MAX undeclared + +* Fri Apr 6 2007 Martin Bacovsky - 20070202-3 +- resolves: #235374: Update of iputils starts rdisc, breaking connectivity + +* Tue Mar 27 2007 Martin Bacovsky - 20070202-2 +- Resolves: #234060: [PATCH] IDN (umlaut domains) support for ping and ping6 + patch provided by Robert Scheck + +* Thu Mar 15 2007 Martin Bacovsky - 20070202-1 +- upgarde to new upstream iputils-s20070202 +- Resolves: #229995 +- Resolves: #225909 - Merge Review: iputils +- patches revision + +* Thu Feb 22 2007 Martin Bacovsky - 20020927-42 +- Resolves: #218706 - now defines the destination address along RFC3484 +- Resolves: #229630 - ifenslave(8) man page added +- Resolves: #213716 - arping doesn't work on InfiniBand ipoib interfaces + +* Wed Sep 13 2006 Radek Vokal - 20020927-41 +- new ifenslave/bonding documentation + +* Mon Aug 21 2006 Martin Bacovsky - 20020927-40 +- tracepath doesn't continue past destination host (#174032) + previous patch replaced by new one provided by + option -c added + +* Mon Jul 17 2006 Radek Vokal - 20020927-39 +- rebuilt + +* Mon Jul 10 2006 Radek Vokal - 20020927-38 +- tracepath doesn't continue past destination host (#174032) + +* Wed Mar 29 2006 Radek Vokál - 20020927-37 +- fix ifenslave, shows interface addresses +- add RPM_OPT_FLAGS to ifenslave + +* Sun Mar 12 2006 Radek Vokál - 20020927-36 +- fix ifenslave man page (#185223) + +* Fri Feb 24 2006 Radek Vokál - 20020927-35 +- add PreReq: chkconfig (#182799,#182798) + +* Fri Feb 10 2006 Jesse Keating - 20020927-34.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 20020927-34.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Mon Feb 06 2006 Radek Vokál 20020927-34 +- ping clean-up, added new ICMP warning messages + +* Wed Jan 25 2006 Radek Vokál 20020927-33 +- gcc patch, warnings cleaned-up + +* Tue Dec 13 2005 Radek Vokal 20020927-32 +- fix HOPLIMIT option for setsockopt() (#175471) + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Mon Dec 05 2005 Radek Vokal 20020927-31 +- ifenslave.8 from debian.org +- separate ifenslave to its own tarball + +* Tue Nov 08 2005 Radek Vokal 20020927-30 +- don't ship traceroute6, now part of traceroute package + +* Wed Oct 05 2005 Radek Vokal 20020927-29 +- add ping6 and tracepath6 manpages, fix attributes. + +* Fri Sep 30 2005 Radek Vokal 20020927-28 +- memset structure before using it (#168166) + +* Mon Sep 26 2005 Radek Vokal 20020927-27 +- fixed ping -f, flooding works again (#134859,#169141) + +* Thu Sep 08 2005 Radek Vokal 20020927-26 +- tracepath6 and tracepath fix, use getaddrinfo instead of gethostbyname(2) + (#100778,#167735) + +* Fri Aug 12 2005 Radek Vokal 20020927-25 +- fixed arping timeout (#165715) + +* Mon Jul 18 2005 Radek Vokal 20020927-24 +- fixed arping buffer overflow (#163383) + +* Fri May 27 2005 Radek Vokal 20020927-23 +- fixed un-initialized "device" (#158914) + +* Thu Apr 07 2005 Radek Vokal 20020927-22 +- don't start rdisc as default (#154075) + +* Tue Apr 05 2005 Radek Vokal 20020927-21 +- rdisc init script added (#151614) + +* Fri Mar 04 2005 Radek Vokal 20020927-20 +- arping fix for infiniband (#150156) + +* Tue Dec 07 2004 Radek Vokal 20020927-19 +- return values fixed - patch from suse.de + +* Mon Oct 18 2004 Radek Vokal +- ifenslave.c and README.bonding updated from kernel-2.6.8-1.521 (#136059) + +* Mon Oct 11 2004 Radek Vokal +- spec file updated, source fixed (#135193) + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Wed May 12 2004 Phil Knirsch 20020927-15 +- Updated rh patch to enable PIE build of binaries. + +* Thu Apr 22 2004 Phil Knirsch 20020927-14 +- Fixed bug with wrong return code check of inet_pton() in traceroute6 (#100684) + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Thu Oct 02 2003 Phil Knirsch 20020927-12 +- Fixed unaligned access problem on ia64 (#101417) + +* Wed Sep 10 2003 Phil Knirsch 20020927-11 +- Don't use own headers, use glibc and kernheaders. + +* Thu Sep 04 2003 Bill Nottingham 20020927-10 +- fix build with new glibc-kernheaders + +* Wed Sep 03 2003 Phil Knirsch 20020927-9.1 +- rebuilt + +* Wed Sep 03 2003 Phil Knirsch 20020927-9 +- Start icmp_seq from 0 instead of 1 (Conform with debian and Solaris #100609). + +* Thu Jul 31 2003 Phil Knirsch 20020927-8 +- One more update to ifenslave.c + +* Mon Jun 16 2003 Phil Knirsch 20020927-7 +- Updated ifenslave.c and README.bonding to latest version. + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Thu May 15 2003 Phil Knirsch 20020927-5 +- Bumped release and rebuilt + +* Thu May 15 2003 Phil Knirsch 20020927-4 +- Fixed DNS lookup problems (#68212). +- Added warning if binding problem failed on subinterface (#81640). + +* Tue May 13 2003 Phil Knirsch 20020927-3 +- Removed bonding tarball and replaced it with ifenslave.c and README +- FHS compliance for all tools, now to be found in /bin with compat symlinks to + old places. + +* Wed Jan 22 2003 Tim Powers 20020927-2 +- rebuilt + +* Fri Nov 29 2002 Phil Knirsch 20020927-1 +- Updated to latest upstream version. + +* Fri Jun 21 2002 Tim Powers 20020124-8 +- automated rebuild + +* Tue Jun 18 2002 Phil Knirsch 20020124-7 +- Added new BuildPreReqs for docbook-utils and perl-SGMLSpm (#66661) +- Fixed ipv6 error printing problem (#66659). + +* Sun May 26 2002 Tim Powers +- automated rebuild + +* Tue May 21 2002 Phil Knirsch +- Added a patch to activate the rdisc server (#64270). +- Display the countermeasures warning only in verbose (#55236) + +* Thu Apr 18 2002 Bill Nottingham +- quit trying to build HTML versions of the man pages + +* Thu Mar 14 2002 Phil Knirsch +- Added fix by Tom "spot" Callaway to fix buffer overflow problems in stats. + +* Wed Feb 27 2002 Phil Knirsch +- Update to iputils-ss020124. + +* Wed Jan 09 2002 Tim Powers +- automated rebuild + +* Mon Aug 27 2001 Philipp Knirsch 20001110-6 +- Fixed buffer overflow problem in traceroute6.c (#51135) + +* Mon Jul 02 2001 Philipp Knirsch +- Made ping6 and traceroute6 setuid (safe as they drop it VERY early) (#46769) + +* Thu Jun 28 2001 Philipp Knirsch +- Fixed ping statistics overflow bug (#43801) + +* Tue Jun 26 2001 Philipp Knirsch +- Fixed a bunch of compiler warnings (#37131) +- Fixed wrong exit code for no packets and deadline (#40323) +- Moved arping to /sbin from /usr/sbin due to ifup call (#45785). Symlink from + /usr/sbin/ provided for backwards compatibility. + +* Mon Apr 30 2001 Preston Brown +- install in.rdisc.8c as rdisc.8 + +* Tue Jan 16 2001 Jeff Johnson +- update to ss001110 +- doco fixes (#23844). + +* Sun Oct 8 2000 Jeff Johnson +- update to ss001007. + +* Tue Aug 8 2000 Tim Waugh +- fix spelling mistake (#15714). + +* Tue Aug 8 2000 Tim Waugh +- turn on -U on machines without TSC (#15223). + +* Tue Aug 1 2000 Jeff Johnson +- better doco patch (#15050). + +* Tue Jul 25 2000 Jakub Jelinek +- fix include-glibc/ to work with new glibc 2.2 resolver headers + +* Thu Jul 13 2000 Prospector +- automatic rebuild + +* Sun Jun 18 2000 Jeff Johnson +- FHS packaging. +- update to ss000418. +- perform reverse DNS lookup only once for same input. + +* Sun Mar 5 2000 Jeff Johnson +- include README.ifenslave doco. +- "ping -i N" was broke for N >= 3 (#9929). +- update to ss000121: +-- clockdiff: preserve raw socket errno. +-- ping: change error exit code to 1 (used to be 92,93, ...) +-- ping,ping6: if -w specified, transmit until -c limit is reached. +-- ping,ping6: exit code non-zero if some packets not received within deadline. + +* Tue Feb 22 2000 Jeff Johnson +- man page corrections (#9690). + +* Wed Feb 9 2000 Jeff Johnson +- add ifenslave. + +* Thu Feb 3 2000 Elliot Lee +- List /usr/sbin/rdisc in %%files list. + +* Thu Jan 27 2000 Jeff Johnson +- add remaining binaries. +- casts to remove compilation warnings. +- terminate if -w deadline is reached exactly (#8724). + +* Fri Dec 24 1999 Jeff Johnson +- create (only ping for now, traceroute et al soon).