aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorzeising <zeising@FreeBSD.org>2012-09-24 17:15:59 +0800
committerzeising <zeising@FreeBSD.org>2012-09-24 17:15:59 +0800
commit6a574e80ae39c83691a11c8386dd1132df7d91aa (patch)
treedf4a726c972c59e77f62e4d8f40a9b9080246aeb /net
parent26f8606af4a35d93a0288f86f87225a5f6c7962d (diff)
downloadfreebsd-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')
-rw-r--r--net/Makefile1
-rw-r--r--net/fping+ipv6/Makefile39
-rw-r--r--net/fping+ipv6/distinfo2
-rw-r--r--net/fping+ipv6/files/patch-02146
-rw-r--r--net/fping+ipv6/files/patch-0332
-rw-r--r--net/fping+ipv6/pkg-descr17
-rw-r--r--net/fping/Makefile39
-rw-r--r--net/fping/distinfo4
-rw-r--r--net/fping/files/patch-02146
-rw-r--r--net/fping/files/patch-0332
-rw-r--r--net/fping/files/patch-sourceaddr88
-rw-r--r--net/fping/pkg-descr2
12 files changed, 29 insertions, 519 deletions
diff --git a/net/Makefile b/net/Makefile
index c80fa4d6ee74..da38e5598405 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -140,7 +140,6 @@
SUBDIR += fpc-ldap
SUBDIR += fpc-pcap
SUBDIR += fping
- SUBDIR += fping+ipv6
SUBDIR += freebsd-tftp
SUBDIR += freebsd-uucp
SUBDIR += freedbd
diff --git a/net/fping+ipv6/Makefile b/net/fping+ipv6/Makefile
deleted file mode 100644
index 7fade8432c35..000000000000
--- a/net/fping+ipv6/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# ex:ts=8
-# Ports collection makefile for: fping
-# Date created: Tue Mar 25, 1997
-# Whom: David O'Brien (obrien@NUXI.com)
-#
-# $FreeBSD$
-#
-
-PORTNAME= fping
-PORTVERSION= 2.4b2
-CATEGORIES= net ipv6
-MASTER_SITES= http://keyserver.kjsl.com/~jharris/distfiles/
-#MASTER_SITES= http://www.fping.com/download/
-PKGNAMESUFFIX= +ipv6
-DISTNAME= ${PORTNAME}-${PORTVERSION}_to-ipv6
-
-MAINTAINER= jharris@widomaker.com
-COMMENT= Quickly ping N hosts w/o flooding the network - IPv6 version
-
-PLIST_FILES= sbin/fping6
-
-GNU_CONFIGURE= yes
-CONFIGURE_ARGS= --bindir="${PREFIX}/sbin"
-MAN8= fping.8
-USE_DOS2UNIX= fping.8
-
-# IPv6 enabled since it is a IPv6 only version
-CFLAGS+= -DIPV6
-
-post-patch:
- @${REINPLACE_CMD} -e 's/fping@/${MAINTAINER:S/@/\\@/g} or fping@/g' \
- ${WRKSRC}/fping.c
-
-do-install:
- ${INSTALL_PROGRAM} ${WRKSRC}/fping ${PREFIX}/sbin/fping6
- @${CHMOD} 4555 ${PREFIX}/sbin/fping6
- ${INSTALL_MAN} ${WRKSRC}/fping.8 ${PREFIX}/man/man8
-
-.include <bsd.port.mk>
diff --git a/net/fping+ipv6/distinfo b/net/fping+ipv6/distinfo
deleted file mode 100644
index ded7005f2b00..000000000000
--- a/net/fping+ipv6/distinfo
+++ /dev/null
@@ -1,2 +0,0 @@
-SHA256 (fping-2.4b2_to-ipv6.tar.gz) = 77e1a90af4fff4a5ffc4b70542c6ff44130558357e7d549f99a9eff23108d172
-SIZE (fping-2.4b2_to-ipv6.tar.gz) = 63333
diff --git a/net/fping+ipv6/files/patch-02 b/net/fping+ipv6/files/patch-02
deleted file mode 100644
index d9df3f7af3de..000000000000
--- a/net/fping+ipv6/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(&current_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( &current_time, &tz );
- h->waiting = 0;
- h->timeout = timeout;
- h->num_recv++;
diff --git a/net/fping+ipv6/files/patch-03 b/net/fping+ipv6/files/patch-03
deleted file mode 100644
index 6ecae9706248..000000000000
--- a/net/fping+ipv6/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+ipv6/pkg-descr b/net/fping+ipv6/pkg-descr
deleted file mode 100644
index 60865f94abfd..000000000000
--- a/net/fping+ipv6/pkg-descr
+++ /dev/null
@@ -1,17 +0,0 @@
-A tool to quickly ping N number of hosts to determine their reachability
-without flooding the network.
-
- fping is different from ping in that you can specify any number of
- hosts on the command line, or specify a file containing the lists
- of hosts to ping. Instead of trying one host until it timeouts or
- replies, fping will send out a ping packet and move on to the next
- host in a round-robin fashion. If a host replies, it is noted and
- removed from the list of hosts to check. If a host does not respond
- within a certain time limit and/or retry limit it will be considered
- unreachable.
-
- Unlike ping, fping is meant to be used in scripts and its
- output is easy to parse.
- This is an IPv6 only version.
-
-WWW: http://www.fping.com/
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(&current_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( &current_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/