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