diff options
author | zeising <zeising@FreeBSD.org> | 2012-09-24 17:15:59 +0800 |
---|---|---|
committer | zeising <zeising@FreeBSD.org> | 2012-09-24 17:15:59 +0800 |
commit | 6a574e80ae39c83691a11c8386dd1132df7d91aa (patch) | |
tree | df4a726c972c59e77f62e4d8f40a9b9080246aeb /net/fping | |
parent | 26f8606af4a35d93a0288f86f87225a5f6c7962d (diff) | |
download | freebsd-ports-gnome-6a574e80ae39c83691a11c8386dd1132df7d91aa.tar.gz freebsd-ports-gnome-6a574e80ae39c83691a11c8386dd1132df7d91aa.tar.zst freebsd-ports-gnome-6a574e80ae39c83691a11c8386dd1132df7d91aa.zip |
Update net/fping to version 3.4 and point to the new home.
Merge IPv4 and IPv6 support into net/fping, selectable via options.
Remove the now un-needed net/fping+ipv6
Add common description for IPV4 option, analogous to the IPV6 option
PR: ports/169949 [1], ports/169950 [2]
Submitted by: Rodrigo OSORIO <rodrigo@bebik.net> [1]
Jason Harris <jharris@widomaker.com> [2]
zeising (final patch version)
Approved by: maintainer, kwm (mentor)
Diffstat (limited to 'net/fping')
-rw-r--r-- | net/fping/Makefile | 39 | ||||
-rw-r--r-- | net/fping/distinfo | 4 | ||||
-rw-r--r-- | net/fping/files/patch-02 | 146 | ||||
-rw-r--r-- | net/fping/files/patch-03 | 32 | ||||
-rw-r--r-- | net/fping/files/patch-sourceaddr | 88 | ||||
-rw-r--r-- | net/fping/pkg-descr | 2 |
6 files changed, 29 insertions, 282 deletions
diff --git a/net/fping/Makefile b/net/fping/Makefile index 54702803d03a..0064e925ff80 100644 --- a/net/fping/Makefile +++ b/net/fping/Makefile @@ -7,33 +7,46 @@ # PORTNAME= fping -PORTVERSION= 2.4b2 -PORTREVISION= 1 +PORTVERSION= 3.4 CATEGORIES= net ipv6 -MASTER_SITES= http://keyserver.kjsl.com/~jharris/distfiles/ -#MASTER_SITES= http://www.fping.com/download/ -DISTNAME= ${PORTNAME}-${PORTVERSION}_to-ipv6 +MASTER_SITES= http://fping.org/dist/ MAINTAINER= jharris@widomaker.com COMMENT= Quickly ping N hosts w/o flooding the network -PLIST_FILES= sbin/fping +OPTIONS_MULTI= NET +OPTIONS_MULTI_NET= IPV4 IPV6 +OPTIONS_DEFAULT= IPV4 GNU_CONFIGURE= yes CONFIGURE_ARGS= --bindir="${PREFIX}/sbin" -MAN8= fping.8 -.if defined(WITH_IPV6) -# IPv6 not enabled by default, as it does not work together with IPv4. -CFLAGS+= -DIPV6 +.include <bsd.port.options.mk> + +.if ${PORT_OPTIONS:MIPV4} +CONFIGURE_ARGS+=--enable-ipv4 +PLIST_FILES+=sbin/fping +MAN8+= fping.8 +.else +CONFIGURE_ARGS+=--disable-ipv4 .endif -post-patch: - @${REINPLACE_CMD} -e 's/fping@/${MAINTAINER:S/@/\\@/g} or fping@/g' \ - ${WRKSRC}/fping.c +.if ${PORT_OPTIONS:MIPV6} +CONFIGURE_ARGS+=--enable-ipv6 +PLIST_FILES+=sbin/fping6 +MAN8+= fping6.8 +.else +CONFIGURE_ARGS+=--disable-ipv6 +.endif post-install: +.if ${PORT_OPTIONS:MIPV4} @${STRIP_CMD} ${PREFIX}/sbin/fping @${CHMOD} 4555 ${PREFIX}/sbin/fping +.endif +.if ${PORT_OPTIONS:MIPV6} + @${STRIP_CMD} ${PREFIX}/sbin/fping6 + @${CHMOD} 4555 ${PREFIX}/sbin/fping6 +.endif .include <bsd.port.mk> diff --git a/net/fping/distinfo b/net/fping/distinfo index ded7005f2b00..12b2477c32ed 100644 --- a/net/fping/distinfo +++ b/net/fping/distinfo @@ -1,2 +1,2 @@ -SHA256 (fping-2.4b2_to-ipv6.tar.gz) = 77e1a90af4fff4a5ffc4b70542c6ff44130558357e7d549f99a9eff23108d172 -SIZE (fping-2.4b2_to-ipv6.tar.gz) = 63333 +SHA256 (fping-3.4.tar.gz) = d42528af4931f16a8e3438bd4a45cfdd72163ad8835a3c95351c336a26e56afe +SIZE (fping-3.4.tar.gz) = 142986 diff --git a/net/fping/files/patch-02 b/net/fping/files/patch-02 deleted file mode 100644 index d9df3f7af3de..000000000000 --- a/net/fping/files/patch-02 +++ /dev/null @@ -1,146 +0,0 @@ ---- fping.c.orig Mon Jan 21 02:06:30 2002 -+++ fping.c Tue Jul 12 18:11:30 2005 -@@ -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 ) \ -@@ -67,7 +66,7 @@ - - /*** autoconf includes ***/ - -- -+#include <sys/types.h> - #include <stdio.h> - #include <errno.h> - #include <time.h> -@@ -88,7 +87,6 @@ - #include <string.h> - #include <stddef.h> - --#include <sys/types.h> - #include <sys/time.h> - #include <sys/socket.h> - -@@ -112,6 +110,10 @@ - #include <arpa/inet.h> - #include <netdb.h> - -+#if (defined(__unix__) || defined(unix)) && !defined(USG) -+#include <sys/param.h> -+#endif -+ - /* RS6000 has sys/select.h */ - #ifdef HAVE_SYS_SELECT_H - #include <sys/select.h> -@@ -246,13 +248,13 @@ - struct timeval last_send_time; /* time of last packet sent */ - int num_sent; /* number of ping packets sent */ - int num_recv; /* number of pings received */ -- int max_reply; /* longest response time */ -- int min_reply; /* shortest response time */ -+ long max_reply; /* longest response time */ -+ long min_reply; /* shortest response time */ - int total_time; /* sum of response times */ - int num_sent_i; /* number of ping packets sent */ - int num_recv_i; /* number of pings received */ -- int max_reply_i; /* longest response time */ -- int min_reply_i; /* shortest response time */ -+ long max_reply_i; /* longest response time */ -+ long min_reply_i; /* shortest response time */ - int total_time_i; /* sum of response times */ - int *resp_times; /* individual response times */ - #if defined( DEBUG ) || defined( _DEBUG ) -@@ -482,7 +484,7 @@ - - }/* IF */ - -- prog = argv[0]; -+ prog = (prog = strrchr(argv[0], '/')) ? prog + 1 : argv[0]; - ident = getpid() & 0xFFFF; - - verbose_flag = 1; -@@ -502,8 +504,8 @@ - break; - - case 'r': -- if( !( retry = ( u_int )atoi( optarg ) ) ) -- usage(); -+ retry = ( u_int )atoi( optarg ); -+ - - break; - -@@ -823,6 +825,7 @@ - - while( fgets( line, 132, ping_file ) ) - { -+ line[132-1] = '\0'; - if( sscanf( line, "%s", host ) != 1 ) - continue; - -@@ -1503,7 +1506,6 @@ - memset( buffer, 0, ping_pkt_size * sizeof( char ) ); - icp = ( FPING_ICMPHDR* )buffer; - -- gettimeofday( &h->last_send_time, &tz ); - #ifndef IPV6 - icp->icmp_type = ICMP_ECHO; - icp->icmp_code = 0; -@@ -1512,6 +1514,8 @@ - icp->icmp_id = ident; - - pdp = ( PING_DATA* )( buffer + SIZE_ICMP_HDR ); -+ /* set the time at the very last possible point */ -+ gettimeofday(&h->last_send_time,&tz); - pdp->ping_ts = h->last_send_time; - pdp->ping_count = h->num_sent; - -@@ -1523,6 +1527,8 @@ - icp->icmp6_id = ident; - - pdp = ( PING_DATA* )( buffer + SIZE_ICMP_HDR ); -+ /* set the time at the very last possible point */ -+ gettimeofday(&h->last_send_time,&tz); - pdp->ping_ts = h->last_send_time; - pdp->ping_count = h->num_sent; - -@@ -1611,6 +1617,9 @@ - - result = recvfrom_wto( s, buffer, sizeof(buffer), &response_addr, select_time ); - -+ /* get time of receipt as close to the real time as possible */ -+ gettimeofday(¤t_time,&tz); -+ - if( result < 0 ) - return 0; /* timeout */ - -@@ -1625,7 +1634,7 @@ - - ip = ( struct ip* )buffer; - #ifndef IPV6 --#if defined( __alpha__ ) && __STDC__ && !defined( __GLIBC__ ) -+#if defined( __alpha__ ) && defined(__osf1__) && __STDC__ && !defined( __GLIBC__ ) - /* The alpha headers are decidedly broken. - * Using an ANSI compiler, it provides ip_vhl instead of ip_hl and - * ip_v. So, to get ip_hl, we mask off the bottom four bits. -@@ -1633,7 +1642,7 @@ - hlen = ( ip->ip_vhl & 0x0F ) << 2; - #else - hlen = ip->ip_hl << 2; --#endif /* defined(__alpha__) && __STDC__ */ -+#endif /* defined(__alpha__) && defined(__osf1__) && __STDC__ */ - if( result < hlen + ICMP_MINLEN ) - #else - if( result < sizeof(FPING_ICMPHDR) ) -@@ -1690,7 +1699,6 @@ - h = table[n]; - - /* received ping is cool, so process it */ -- gettimeofday( ¤t_time, &tz ); - h->waiting = 0; - h->timeout = timeout; - h->num_recv++; diff --git a/net/fping/files/patch-03 b/net/fping/files/patch-03 deleted file mode 100644 index 40c318f1abdd..000000000000 --- a/net/fping/files/patch-03 +++ /dev/null @@ -1,32 +0,0 @@ ---- fping.8.orig Mon Jan 21 01:05:48 2002 -+++ fping.8 Sun Jul 7 22:03:43 2002 -@@ -1,4 +1,4 @@ --.TH fping l
-+.TH fping 8
- .SH NAME
- fping \- send ICMP ECHO_REQUEST packets to network hosts
- .SH SYNOPSIS
-@@ -152,12 +152,12 @@ - example none the less.
- .nf
-
--#!/usr/local/bin/perl
-+#!/usr/bin/perl
- require 'open2.pl';
-
- $MAILTO = "root";
-
--$pid = &open2("OUTPUT","INPUT","/usr/local/bin/fping -u");
-+$pid = &open2("OUTPUT","INPUT","/usr/local/sbin/fping -u");
-
- @check=("slapshot","foo","foobar");
-
-@@ -178,7 +178,7 @@ - that are currently reachable.
- .nf
-
--#!/usr/local/bin/perl
-+#!/usr/bin/perl
-
- $hosts_to_backup = `cat /etc/hosts.backup | fping -a`;
-
diff --git a/net/fping/files/patch-sourceaddr b/net/fping/files/patch-sourceaddr deleted file mode 100644 index 543c8ef24ec5..000000000000 --- a/net/fping/files/patch-sourceaddr +++ /dev/null @@ -1,88 +0,0 @@ -diff -ru ../fping-2.4b2_to-ipv6-orig/fping.c ./fping.c ---- ../fping-2.4b2_to-ipv6-orig/fping.c Sun Jan 20 19:06:30 2002 -+++ ./fping.c Fri Apr 13 14:36:02 2007 -@@ -283,6 +283,12 @@ - u_int count = 1; - u_int trials; - u_int report_interval = 0; -+int src_addr_present = 0; -+#ifndef IPV6 -+struct in_addr src_addr; -+#else -+struct in6_addr src_addr; -+#endif - - /* global stats */ - long max_reply = 0; -@@ -408,6 +414,11 @@ - struct protoent *proto; - char *buf; - uid_t uid; -+#ifndef IPV6 -+ struct sockaddr_in sa; -+#else -+ struct sockaddr_in6 sa; -+#endif - /* check if we are root */ - - if( geteuid() ) -@@ -491,7 +502,7 @@ - - /* get command line options */ - -- while( ( c = getopt( argc, argv, "gedhlmnqusaAvz:t:i:p:f:r:c:b:C:Q:B:" ) ) != EOF ) -+ while( ( c = getopt( argc, argv, "gedhlmnqusaAvz:t:i:p:f:r:c:b:C:Q:B:S:" ) ) != EOF ) - { - switch( c ) - { -@@ -639,6 +650,16 @@ - generate_flag = 1; - break; - -+ case 'S': -+#ifndef IPV6 -+ if( ! inet_pton( AF_INET, optarg, &src_addr ) ) -+#else -+ if( ! inet_pton( AF_INET6, optarg, &src_addr ) ) -+#endif -+ usage(); -+ src_addr_present = 1; -+ break; -+ - default: - usage(); - break; -@@ -962,6 +983,22 @@ - if( !num_hosts ) - exit( 2 ); - -+ /* set the source address */ -+ -+ if( src_addr_present ) -+ { -+ memset( &sa, 0, sizeof( sa ) ); -+#ifndef IPV6 -+ sa.sin_family = AF_INET; -+ sa.sin_addr = src_addr; -+#else -+ sa.sin6_family = AF_INET6; -+ sa.sin6_addr = src_addr; -+#endif -+ if ( bind( s, (struct sockaddr *)&sa, sizeof( sa ) ) < 0 ) -+ errno_crash_and_burn( "cannot bind source address" ); -+ } -+ - /* allocate array to hold outstanding ping requests */ - - table = ( HOST_ENTRY** )malloc( sizeof( HOST_ENTRY* ) * num_hosts ); -@@ -2732,6 +2769,7 @@ - fprintf( stderr, " -Q n same as -q, but show summary every n seconds\n" ); - fprintf( stderr, " -r n number of retries (default %d)\n", retry ); - fprintf( stderr, " -s print final stats\n" ); -+ fprintf( stderr, " -S addr set source address\n" ); - fprintf( stderr, " -t n individual target initial timeout (in millisec) (default %d)\n", timeout / 100 ); - fprintf( stderr, " -u show targets that are unreachable\n" ); - fprintf( stderr, " -v show version\n" ); - - - diff --git a/net/fping/pkg-descr b/net/fping/pkg-descr index 124b0f28a8e2..212a474f625c 100644 --- a/net/fping/pkg-descr +++ b/net/fping/pkg-descr @@ -13,4 +13,4 @@ without flooding the network. Unlike ping, fping is meant to be used in scripts and its output is easy to parse. -WWW: http://www.fping.com/ +WWW: http://www.fping.org/ |