components/fping/patches/fping.patch
changeset 205 777251fa3676
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/fping/patches/fping.patch	Tue Apr 26 14:16:51 2011 -0700
@@ -0,0 +1,74 @@
+--- fping-2.4b2_to/fping.c.orig	Tue Apr 26 10:51:44 2011
++++ fping-2.4b2_to/fping.c	Tue Apr 26 10:52:56 2011
+@@ -110,6 +110,13 @@
+ #include <sys/select.h>
+ #endif /* HAVE_SYS_SELECT_H */
+ 
++/* Solaris authentication support */
++#define _SOLARIS 1
++#ifdef _SOLARIS
++#undef ENABLE_F_OPTION
++#define ENABLE_F_OPTION	0
++#endif /* _SOLARIS */
++
+ #endif /* WIN32 */
+ 
+ #include "options.h"
+@@ -356,6 +363,7 @@
+ int handle_random_icmp( struct icmp *p, int psize, struct sockaddr_in *addr );
+ char *sprint_tm( int t );
+ 
++
+ #endif /* _NO_PROTO */
+ 
+ /*** function definitions ***/
+@@ -387,9 +395,14 @@
+ 	struct protoent *proto;
+ 	char *buf;
+ 	uid_t uid;
++	boolean_t raw_req;
+ 
+-	/* check if we are root */
++#ifdef _SOLARIS
++	verbose_flag = 1;
++	prog = argv[0];
+ 
++#else
++	/* check if we are root */
+ 	if( geteuid() )
+ 	{
+ 		fprintf( stderr,
+@@ -398,6 +411,7 @@
+ 		exit( 3 );
+ 
+ 	}/* IF */
++#endif /* _SOLARIS */
+ 
+ 	/* confirm that ICMP is available on this machine */
+ 	if( ( proto = getprotobyname( "icmp" ) ) == NULL ) 
+@@ -409,11 +423,13 @@
+ 	if( s < 0 )
+ 		errno_crash_and_burn( "can't create raw socket" );
+ 
++#ifndef _SOLARIS
+ 	if( ( uid = getuid() ) )
+ 	{
+ 		seteuid( getuid() );
+ 
+ 	}/* IF */
++#endif
+ 
+ 	prog = argv[0];
+ 	ident = getpid() & 0xFFFF;
+@@ -599,7 +615,11 @@
+ 			perhost_interval < MIN_PERHOST_INTERVAL * 100 || 
+ 			retry > MAX_RETRY || 
+ 			timeout < MIN_TIMEOUT * 100 ) 
++#ifndef _SOLARIS
+ 		&& getuid() )
++#else
++	    )
++#endif /* _SOLARIS */
+ 	{
+ 		fprintf( stderr, "%s: these options are too risky for mere mortals.\n", prog );
+ 		fprintf( stderr, "%s: You need i >= %u, p >= %u, r < %u, and t >= %u\n",