auto-import fping-2.4b2-3 on branch devel from fping-2.4b2-3.src.rpm

epel9
Chris Ricker 20 years ago
parent 3ffd86db5f
commit 647353796d

@ -0,0 +1 @@
fping-2.4b2_to-ipv6.tar.gz

@ -0,0 +1,88 @@
--- fping-2.4b2-to-ipv6.orig/fping.c
+++ fping-2.4b2-to-ipv6/fping.c
@@ -42,7 +42,6 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
-#define IPV6 1 /* This should be a compiler option, or even better be done from the Makefile... ;) */
#ifndef _NO_PROTO
#if !__STDC__ && !defined( __cplusplus ) && !defined( FUNCPROTO ) \
@@ -150,7 +149,11 @@
#define MIN_PING_DATA sizeof( PING_DATA )
#define MAX_IP_PACKET 65536 /* (theoretical) max IP packet size */
#define SIZE_IP_HDR 20
+#ifndef IPV6
#define SIZE_ICMP_HDR ICMP_MINLEN /* from ip_icmp.h */
+#else
+#define SIZE_ICMP_HDR sizeof(FPING_ICMPHDR)
+#endif
#define MAX_PING_DATA ( MAX_IP_PACKET - SIZE_IP_HDR - SIZE_ICMP_HDR )
/* sized so as to be like traditional ping */
@@ -474,6 +477,35 @@
sizeof(opton)))
err(1, "setsockopt(IPV6_RTHDR)");
#endif
+#ifndef USE_SIN6_SCOPE_ID
+#ifdef IPV6_RECVPKTINFO
+ if (setsockopt(s, IPPROTO_IPV6, IPV6_RECVPKTINFO, &opton,
+ sizeof(opton)))
+ err(1, "setsockopt(IPV6_RECVPKTINFO)");
+#else /* old adv. API */
+ if (setsockopt(s, IPPROTO_IPV6, IPV6_PKTINFO, &opton,
+ sizeof(opton)))
+ err(1, "setsockopt(IPV6_PKTINFO)");
+#endif
+#endif /* USE_SIN6_SCOPE_ID */
+#ifdef IPV6_RECVHOPLIMIT
+ if (setsockopt(s, IPPROTO_IPV6, IPV6_RECVHOPLIMIT, &opton,
+ sizeof(opton)))
+ err(1, "setsockopt(IPV6_RECVHOPLIMIT)");
+#else /* old adv. API */
+ if (setsockopt(s, IPPROTO_IPV6, IPV6_HOPLIMIT, &opton,
+ sizeof(opton)))
+ err(1, "setsockopt(IPV6_HOPLIMIT)");
+#endif
+#ifdef IPV6_CHECKSUM
+#ifndef SOL_RAW
+#define SOL_RAW IPPROTO_IPV6
+#endif
+ opton = 2;
+ if (setsockopt(s, SOL_RAW, IPV6_CHECKSUM, &opton,
+ sizeof(opton)))
+ err(1, "setsockopt(SOL_RAW,IPV6_CHECKSUM)");
+#endif
#endif
if( ( uid = getuid() ) )
@@ -1382,8 +1414,8 @@
if( h->num_recv_i <= h->num_sent_i )
{
fprintf( stderr, " xmt/rcv/%%loss = %d/%d/%d%%",
- h->num_sent_i, h->num_recv_i,
- ( ( h->num_sent_i - h->num_recv_i ) * 100 ) / h->num_sent_i );
+ h->num_sent_i, h->num_recv_i, h->num_sent_i > 0 ?
+ ( ( h->num_sent_i - h->num_recv_i ) * 100 ) / h->num_sent_i : 0 );
}/* IF */
else
@@ -2165,6 +2197,7 @@
struct addrinfo *res, hints;
int ret_ga;
char *hostname;
+ size_t len;
/* getaddrinfo */
bzero(&hints, sizeof(struct addrinfo));
@@ -2178,7 +2211,9 @@
if (res->ai_canonname) hostname = res->ai_canonname;
else hostname = name;
if (!res->ai_addr) errx(1, "getaddrinfo failed");
- (void)memcpy(&dst, res->ai_addr, sizeof(FPING_SOCKADDR)); /*res->ai_addrlen);*/
+ len = res->ai_addrlen;
+ if (len > sizeof(FPING_SOCKADDR)) len = sizeof(FPING_SOCKADDR);
+ (void)memcpy(&dst, res->ai_addr, len);
add_addr(name, name, &dst);
#endif
} /* add_name() */

@ -0,0 +1,57 @@
Name: fping
Version: 2.4b2
Release: 3
Summary: Scriptable, parallelized ping-like utility
Group: Applications/Internet
License: BSD
URL: http://www.fping.com/
Source0: http://www.fping.com/download/%{name}-%{version}_to-ipv6.tar.gz
Patch0: fping-2.4b2_ipv6-fix.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
fping is a ping-like program which can determine the accessibility of
multiple hosts using ICMP echo requests. fping is designed for parallelized
monitoring of large numbers of systems, and is developed with ease of
use in scripting in mind.
%prep
%setup -q -n %{name}-%{version}_to-ipv6
%patch0 -p1 -b .ipv6
%build
%configure
make CFLAGS="-DIPV6 $RPM_OPT_FLAGS"
mv fping fping6
make clean
make CFLAGS="$RPM_OPT_FLAGS"
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR="$RPM_BUILD_ROOT" install
install -p -m 4755 fping6 "$RPM_BUILD_ROOT"/%{_sbindir}
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%doc ChangeLog COPYING README
%attr(4755,root,root) %{_sbindir}/fping
%attr(4755,root,root) %{_sbindir}/fping6
%{_mandir}/man8/*
%changelog
* Mon May 16 2005 Chris Ricker <kaboom@oobleck.net> 2.4b2-3
- Simplify doc packaging (Matthias Saou)
- Simplify clean (Matthias Saou)
- Don't strip fping6 binary (Matthias Saou)
- Preserve timestamps
* Wed May 11 2005 Chris Ricker <kaboom@oobleck.net> 2.4b2-2
- Fix URL and Source locations
* Wed Mar 23 2005 Chris Ricker <kaboom@oobleck.net> 2.4b2-1
- Initial package for Fedora
- IPv6 patches from Herbert Xu (Debian)

@ -0,0 +1 @@
3ad516765514249a40d3c5b6caab812a fping-2.4b2_to-ipv6.tar.gz
Loading…
Cancel
Save