rpms/fping/devel fping-2.4b2_ipv6-fix.diff, NONE, 1.1 fping.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
Chris Ricker (kaboom)
fedora-extras-commits at redhat.com
Mon May 16 21:49:08 UTC 2005
Author: kaboom
Update of /cvs/extras/rpms/fping/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv19334/devel
Modified Files:
.cvsignore sources
Added Files:
fping-2.4b2_ipv6-fix.diff fping.spec
Log Message:
auto-import fping-2.4b2-3 on branch devel from fping-2.4b2-3.src.rpm
fping-2.4b2_ipv6-fix.diff:
--- NEW FILE fping-2.4b2_ipv6-fix.diff ---
--- 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() */
--- NEW FILE fping.spec ---
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 at 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 at oobleck.net> 2.4b2-2
- Fix URL and Source locations
* Wed Mar 23 2005 Chris Ricker <kaboom at oobleck.net> 2.4b2-1
- Initial package for Fedora
- IPv6 patches from Herbert Xu (Debian)
Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/fping/devel/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore 16 May 2005 21:48:45 -0000 1.1
+++ .cvsignore 16 May 2005 21:49:06 -0000 1.2
@@ -0,0 +1 @@
+fping-2.4b2_to-ipv6.tar.gz
Index: sources
===================================================================
RCS file: /cvs/extras/rpms/fping/devel/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources 16 May 2005 21:48:45 -0000 1.1
+++ sources 16 May 2005 21:49:06 -0000 1.2
@@ -0,0 +1 @@
+3ad516765514249a40d3c5b6caab812a fping-2.4b2_to-ipv6.tar.gz
More information about the fedora-extras-commits
mailing list