From 946f0c9fe48dfb648a8a0be065e92f237ce210fd Mon Sep 17 00:00:00 2001 From: root Date: Tue, 29 Nov 2011 23:14:46 +0000 Subject: Tue Nov 29 23:14:46 UTC 2011 --- extra/fping/PKGBUILD | 23 +- extra/fping/fping-2.4b2_p161-min-time.patch | 47 ++ extra/fping/fping_2.4b2-to-ipv6-16.1.diff | 838 ++++++++++++++++++++++++++++ 3 files changed, 900 insertions(+), 8 deletions(-) create mode 100644 extra/fping/fping-2.4b2_p161-min-time.patch create mode 100644 extra/fping/fping_2.4b2-to-ipv6-16.1.diff (limited to 'extra/fping') diff --git a/extra/fping/PKGBUILD b/extra/fping/PKGBUILD index e28a03f4c..d24dddfcc 100644 --- a/extra/fping/PKGBUILD +++ b/extra/fping/PKGBUILD @@ -1,20 +1,27 @@ -# $Id: PKGBUILD 130929 2011-07-09 05:53:00Z giovanni $ +# $Id: PKGBUILD 143741 2011-11-28 19:17:54Z giovanni $ # Maintainer: Giovanni Scafora # Contributor: Tom Newsom pkgname=fping pkgver=2.4b2 -pkgrel=4 +pkgrel=5 pkgdesc="A utility to ping multiple hosts at once" arch=('i686' 'x86_64') -url="http://www.fping.com/" +url="http://packages.qa.debian.org/" license=('custom') depends=('glibc') -source=("http://fping.sourceforge.net/download/${pkgname}.tar.gz") -md5sums=('d5e8be59e307cef76bc479e1684df705') +source=("http://ftp.de.debian.org/debian/pool/main/f/fping/fping_2.4b2-to-ipv6.orig.tar.gz" + 'fping_2.4b2-to-ipv6-16.1.diff' + 'fping-2.4b2_p161-min-time.patch') +md5sums=('3ad516765514249a40d3c5b6caab812a' + '4881e981971379a0948b31719e4505f5' + '36753d9556eba1a6159c20c8db3e2232') build() { - cd $srcdir/$pkgname-$pkgver\_to + cd $srcdir/$pkgname-2.4b2_to-ipv6 + + patch -Np1 -i ${srcdir}/fping_2.4b2-to-ipv6-16.1.diff + patch -Np1 -i ${srcdir}/fping-2.4b2_p161-min-time.patch ./configure --prefix=/usr \ --mandir=/usr/share/man @@ -22,11 +29,11 @@ build() { } package() { - cd $srcdir/$pkgname-$pkgver\_to + cd $srcdir/$pkgname-2.4b2_to-ipv6 make DESTDIR="${pkgdir}" install # install license install -D -m644 COPYING "${pkgdir}/usr/share/licenses/$pkgname/LICENSE" - chmod 4755 ${pkgdir}/usr/sbin/fping + chmod 4555 ${pkgdir}/usr/sbin/fping } diff --git a/extra/fping/fping-2.4b2_p161-min-time.patch b/extra/fping/fping-2.4b2_p161-min-time.patch new file mode 100644 index 000000000..5e5ccd40f --- /dev/null +++ b/extra/fping/fping-2.4b2_p161-min-time.patch @@ -0,0 +1,47 @@ +--- old/fping.c 2010-08-24 16:59:38.947000447 +0100 ++++ new/fping.c 2010-08-24 16:55:52.101000443 +0100 +@@ -25,6 +25,7 @@ + * Original author: Roland Schemers + * IPv6 Support: Jeroen Massar + * Bugfixes, byte order & senseful seq.-numbers: Stephan Fuhrmann (stephan.fuhrmann AT 1und1.de) ++ * Fixes: min_reply_i in splits and compiler warning. Alex Ghoth (alex AT ghoth.net) + * + * + * RCS header information no longer used. It has been moved to the +@@ -743,7 +744,7 @@ + + if( ( ping_data_size > MAX_PING_DATA ) || ( ping_data_size < MIN_PING_DATA ) ) + { +- fprintf( stderr, "%s: data size %u not valid, must be between %u and %u\n", ++ fprintf( stderr, "%s: data size %u not valid, must be between %lu and %u\n", + prog, ping_data_size, MIN_PING_DATA, MAX_PING_DATA ); + usage(); + +@@ -1112,7 +1113,7 @@ + ht = timeval_diff( ¤t_time, &cursor->last_send_time ); + + if( report_interval && ( loop_flag || count_flag ) && +- ( timeval_diff ( ¤t_time, &last_report_time ) > report_interval ) ) ++ ( timeval_diff ( ¤t_time, &last_report_time ) >= report_interval ) ) + { + print_per_system_splits(); + gettimeofday( ¤t_time, &tz ); +@@ -1487,8 +1488,8 @@ + }/* IF */ + + fprintf( stderr, "\n" ); +- h->num_sent_i = h->num_recv_i = h->max_reply_i = +- h->min_reply_i = h->total_time_i = 0; ++ h->num_sent_i = h->num_recv_i = h->max_reply_i = h->total_time_i = 0; ++ h->min_reply_i = 10000000; + + }/* FOR */ + +@@ -2377,6 +2378,7 @@ + p->timeout = timeout; + p->running = 1; + p->min_reply = 10000000; ++ p->min_reply_i = 10000000; + + if( strlen( p->host ) > max_hostname_len ) + max_hostname_len = strlen( p->host ); diff --git a/extra/fping/fping_2.4b2-to-ipv6-16.1.diff b/extra/fping/fping_2.4b2-to-ipv6-16.1.diff new file mode 100644 index 000000000..435723832 --- /dev/null +++ b/extra/fping/fping_2.4b2-to-ipv6-16.1.diff @@ -0,0 +1,838 @@ +--- fping-2.4b2-to-ipv6.orig/fping.8 ++++ fping-2.4b2-to-ipv6/fping.8 +@@ -1,4 +1,4 @@ +-.TH fping l ++.TH fping 8 + .SH NAME + fping \- send ICMP ECHO_REQUEST packets to network hosts + .SH SYNOPSIS +@@ -12,9 +12,9 @@ + + + .B fping +-is a +-.MS ping 8 +-like program which uses the Internet Control ++is a program like ++.B ping(8) ++which uses the Internet Control + Message Protocol (ICMP) echo request to determine if a target host is + responding. + .B fping +@@ -37,8 +37,7 @@ + ). + .PP + Unlike +-.B ping +-, ++.B ping, + .B fping + is meant to be used in scripts, so its output is designed to be + easy to parse. +@@ -130,12 +129,16 @@ + a target will be made, not including the first try. + .IP \fB-s\fR 5 + Print cumulative statistics upon exit. ++.IP \fB-S\fIaddr\fR 5 ++Set source address. + .IP \fB-t\fIn\fR 5 + Initial target timeout in milliseconds (default 500). In the default + mode, this is the amount of time that + .B fping + waits for a response to its first request. Successive timeouts are + multiplied by the backoff factor. ++.IP \fB-T\fIn\fR 5 ++Select timeout in seconds (default 10). + .IP \fB-u\fR 5 + Show targets that are unreachable. + .IP \fB-v\fR 5 +@@ -152,7 +155,7 @@ + example none the less. + .nf + +-#!/usr/local/bin/perl ++#!/usr/bin/perl + require 'open2.pl'; + + $MAILTO = "root"; +@@ -178,7 +181,7 @@ + that are currently reachable. + .nf + +-#!/usr/local/bin/perl ++#!/usr/bin/perl + + $hosts_to_backup = `cat /etc/hosts.backup | fping -a`; + +--- fping-2.4b2-to-ipv6.orig/fping.c ++++ fping-2.4b2-to-ipv6/fping.c +@@ -24,7 +24,7 @@ + * + * Original author: Roland Schemers + * IPv6 Support: Jeroen Massar +- * ++ * Bugfixes, byte order & senseful seq.-numbers: Stephan Fuhrmann (stephan.fuhrmann AT 1und1.de) + * + * + * RCS header information no longer used. It has been moved to the +@@ -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 ) \ +@@ -101,13 +100,8 @@ + #endif + #include + +-/* Linux has bizarre ip.h and ip_icmp.h */ +-#if defined( __linux__ ) +-#include "linux.h" +-#else + #include + #include +-#endif /* defined(__linux__) */ + + #include + #include +@@ -150,7 +144,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 */ +@@ -192,7 +190,7 @@ + "", + "", + "ICMP Time Exceeded", /* 11 */ +- "ICMP Paramter Problem", /* 12 */ ++ "ICMP Parameter Problem", /* 12 */ + "ICMP Timestamp Request", /* 13 */ + "ICMP Timestamp Reply", /* 14 */ + "ICMP Information Request", /* 15 */ +@@ -283,6 +281,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; +@@ -292,6 +296,7 @@ + int max_hostname_len = 0; + int num_jobs = 0; /* number of hosts still to do */ + int num_hosts; /* total number of hosts */ ++int max_seq_sent = 0; /* maximum sequence number sent so far */ + int num_alive = 0, /* total number alive */ + num_unreachable = 0, /* total number unreachable */ + num_noaddress = 0; /* total number of addresses not found */ +@@ -408,6 +413,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() ) +@@ -439,7 +449,7 @@ + + #ifdef IPV6 + /* +- * let the kerel pass extension headers of incoming packets, ++ * let the kernel pass extension headers of incoming packets, + * for privileged socket options + */ + #ifdef IPV6_RECVHOPOPTS +@@ -474,6 +484,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() ) ) +@@ -491,7 +530,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:I:T:" ) ) != EOF ) + { + switch( c ) + { +@@ -502,7 +541,7 @@ + break; + + case 'r': +- if( !( retry = ( u_int )atoi( optarg ) ) ) ++ if( ( retry = ( u_int )atoi( optarg ) ) < 0 ) + usage(); + + break; +@@ -639,6 +678,33 @@ + 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; ++ ++ case 'I': ++#ifdef SO_BINDTODEVICE ++ if (setsockopt(s, SOL_SOCKET, SO_BINDTODEVICE, optarg, ++ strlen(optarg))) ++ err(1, "setsockopt(AF_INET, SO_BINDTODEVICE)"); ++#else ++ fprintf( stderr, ++ "Warning: SO_BINDTODEVICE not supported, argument -I %s ignored\n", ++ optarg ); ++#endif ++ break; ++ ++ case 'T': ++ if ( ! ( select_time = ( u_int )atoi( optarg ) * 100 ) ) ++ usage(); ++ break; ++ + default: + usage(); + break; +@@ -821,7 +887,7 @@ + errno_crash_and_burn( "fopen" ); + + +- while( fgets( line, 132, ping_file ) ) ++ while( fgets( line, sizeof(line), ping_file ) ) + { + if( sscanf( line, "%s", host ) != 1 ) + continue; +@@ -962,6 +1028,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 ); +@@ -1112,7 +1194,7 @@ + /* but allow time for the last one to come in */ + if( count_flag ) + { +- if( ( cursor->num_sent >= count ) && ( ht > cursor->timeout ) ) ++ if( ( cursor->num_sent >= count ) && ( cursor->num_recv >= count || ht > cursor->timeout ) ) + { + remove_job( cursor ); + continue; +@@ -1153,6 +1235,7 @@ + + finish(); + ++ return 0; + } /* main() */ + + +@@ -1382,15 +1465,15 @@ + 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 + { + fprintf( stderr, " xmt/rcv/%%return = %d/%d/%d%%", +- h->num_sent_i, h->num_recv_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_recv_i * 100 ) / h->num_sent_i ) : 0 ); + + }/* ELSE */ + +@@ -1504,12 +1587,15 @@ + icp = ( FPING_ICMPHDR* )buffer; + + gettimeofday( &h->last_send_time, &tz ); ++ int myseq = h->num_sent * num_hosts + h->i; ++ max_seq_sent = myseq > max_seq_sent ? myseq : max_seq_sent; ++ + #ifndef IPV6 + icp->icmp_type = ICMP_ECHO; + icp->icmp_code = 0; + icp->icmp_cksum = 0; +- icp->icmp_seq = h->i; +- icp->icmp_id = ident; ++ icp->icmp_seq = htons(myseq); ++ icp->icmp_id = htons(ident); + + pdp = ( PING_DATA* )( buffer + SIZE_ICMP_HDR ); + pdp->ping_ts = h->last_send_time; +@@ -1519,8 +1605,8 @@ + #else + icp->icmp6_type = ICMP6_ECHO_REQUEST; + icp->icmp6_code = 0; +- icp->icmp6_seq = h->i; +- icp->icmp6_id = ident; ++ icp->icmp6_seq = htons(myseq); ++ icp->icmp6_id = htons(ident); + + pdp = ( PING_DATA* )( buffer + SIZE_ICMP_HDR ); + pdp->ping_ts = h->last_send_time; +@@ -1667,25 +1753,25 @@ + }/* IF */ + + #ifndef IPV6 +- if( icp->icmp_id != ident ) ++ if( ntohs(icp->icmp_id) != ident ) + #else +- if( icp->icmp6_id != ident ) ++ if( ntohs(icp->icmp6_id) != ident ) + #endif + return 1; /* packet received, but not the one we are looking for! */ + + num_pingreceived++; + + #ifndef IPV6 +- if( icp->icmp_seq >= ( n_short )num_hosts ) ++ if( ntohs(icp->icmp_seq) > max_seq_sent ) + #else +- if( icp->icmp6_seq >= ( n_short )num_hosts ) ++ if( ntohs(icp->icmp6_seq) > max_seq_sent ) + #endif + return( 1 ); /* packet received, don't worry about it anymore */ + + #ifndef IPV6 +- n = icp->icmp_seq; ++ n = ntohs(icp->icmp_seq) % num_hosts; + #else +- n = icp->icmp6_seq; ++ n = ntohs(icp->icmp6_seq) % num_hosts; + #endif + h = table[n]; + +@@ -1824,6 +1910,7 @@ + + }/* IF */ + ++ fflush( stdout ); + return num_jobs; + + } /* wait_for_reply() */ +@@ -1875,11 +1962,11 @@ + sent_icmp = ( struct icmp* )( c + 28 ); + + if( ( sent_icmp->icmp_type == ICMP_ECHO ) && +- ( sent_icmp->icmp_id == ident ) && +- ( sent_icmp->icmp_seq < ( n_short )num_hosts ) ) ++ ( ntohs(sent_icmp->icmp_id) == ident ) && ++ ( ntohs(sent_icmp->icmp_seq) <= ( n_short )max_seq_sent ) ) + { + /* this is a response to a ping we sent */ +- h = table[sent_icmp->icmp_seq]; ++ h = table[ntohs(sent_icmp->icmp_seq) % num_hosts]; + + if( p->icmp_code > ICMP_UNREACH_MAXTYPE ) + { +@@ -1888,11 +1975,11 @@ + + #else + if( ( sent_icmp->icmp6_type == ICMP_ECHO ) && +- ( sent_icmp->icmp6_id == ident ) && +- ( sent_icmp->icmp6_seq < ( n_short )num_hosts ) ) ++ ( ntohs(sent_icmp->icmp6_id) == ident ) && ++ ( ntohs(sent_icmp->icmp6_seq) <= ( n_short )max_seq_sent ) ) + { + /* this is a response to a ping we sent */ +- h = table[sent_icmp->icmp6_seq]; ++ h = table[ntohs(sent_icmp->icmp6_seq) % num_hosts]; + + if( p->icmp6_code > ICMP_UNREACH_MAXTYPE ) + { +@@ -1930,24 +2017,24 @@ + case ICMP_PARAMPROB: + sent_icmp = ( FPING_ICMPHDR* )( c + 28 ); + #ifndef IPV6 +- if( ( sent_icmp->icmp_type = ICMP_ECHO ) && +- ( sent_icmp->icmp_id = ident ) && +- ( sent_icmp->icmp_seq < ( n_short )num_hosts ) ) ++ if( ( sent_icmp->icmp_type == ICMP_ECHO ) && ++ ( ntohs(sent_icmp->icmp_id) == ident ) && ++ ( ntohs(sent_icmp->icmp_seq) <= ( n_short )max_seq_sent ) ) + { + /* this is a response to a ping we sent */ +- h = table[sent_icmp->icmp_seq]; ++ h = table[ntohs(sent_icmp->icmp_seq) % num_hosts]; + fprintf( stderr, "%s from %s for ICMP Echo sent to %s", + icmp_type_str[p->icmp_type], inet_ntoa( addr->sin_addr ), h->host ); + + if( inet_addr( h->host ) == -1 ) + fprintf( stderr, " (%s)", inet_ntoa( h->saddr.sin_addr ) ); + #else +- if( ( sent_icmp->icmp6_type = ICMP_ECHO ) && +- ( sent_icmp->icmp6_id = ident ) && +- ( sent_icmp->icmp6_seq < ( n_short )num_hosts ) ) ++ if( ( sent_icmp->icmp6_type == ICMP_ECHO ) && ++ ( ntohs(sent_icmp->icmp6_id) == ident ) && ++ ( ntohs(sent_icmp->icmp6_seq) <= ( n_short )max_seq_sent ) ) + { + /* this is a response to a ping we sent */ +- h = table[sent_icmp->icmp6_seq]; ++ h = table[ntohs(sent_icmp->icmp6_seq) % num_hosts]; + fprintf( stderr, "%s from %s for ICMP Echo sent to %s", + icmp_type_str[p->icmp6_type], addr_ascii, h->host ); + +@@ -2165,20 +2252,33 @@ + struct addrinfo *res, hints; + int ret_ga; + char *hostname; ++ size_t len; + + /* getaddrinfo */ + bzero(&hints, sizeof(struct addrinfo)); +- hints.ai_flags = AI_CANONNAME; ++ hints.ai_flags = name_flag ? AI_CANONNAME : 0; + hints.ai_family = AF_INET6; + hints.ai_socktype = SOCK_RAW; + hints.ai_protocol = IPPROTO_ICMPV6; + + ret_ga = getaddrinfo(name, NULL, &hints, &res); +- if (ret_ga) errx(1, "%s", gai_strerror(ret_ga)); ++ if (ret_ga) { ++ if(!quiet_flag) ++ warnx("%s", gai_strerror(ret_ga)); ++ num_noaddress++; ++ return; ++ } + 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);*/ ++ if (!res->ai_addr) { ++ if(!quiet_flag) ++ warnx("getaddrinfo failed"); ++ num_noaddress++; ++ return; ++ } ++ 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() */ +@@ -2730,9 +2830,11 @@ + fprintf( stderr, " (in looping and counting modes, default %d)\n", perhost_interval / 100 ); + fprintf( stderr, " -q quiet (don't show per-target/per-ping results)\n" ); + 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, " -r n number of retries (default %d)\n", DEFAULT_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, " -T n set select timeout (default %d)\n", select_time / 100 ); + fprintf( stderr, " -u show targets that are unreachable\n" ); + fprintf( stderr, " -v show version\n" ); + fprintf( stderr, " targets list of targets to check (if no -f specified)\n" ); +--- fping-2.4b2-to-ipv6.orig/debian/fping.docs ++++ fping-2.4b2-to-ipv6/debian/fping.docs +@@ -0,0 +1 @@ ++README +--- fping-2.4b2-to-ipv6.orig/debian/lintian.overrides ++++ fping-2.4b2-to-ipv6/debian/lintian.overrides +@@ -0,0 +1 @@ ++fping: setuid-binary +--- fping-2.4b2-to-ipv6.orig/debian/fping.dirs ++++ fping-2.4b2-to-ipv6/debian/fping.dirs +@@ -0,0 +1,4 @@ ++usr/bin ++usr/sbin ++usr/share/man/man8 ++usr/share/lintian/overrides +--- fping-2.4b2-to-ipv6.orig/debian/copyright ++++ fping-2.4b2-to-ipv6/debian/copyright +@@ -0,0 +1,33 @@ ++This package was split from netstd by Herbert Xu herbert@debian.org on ++Sat, 30 Oct 1999 16:39:06 +1000. ++ ++It is maintained by Anibal Monsalve Salazar . ++ ++netstd was created by Peter Tobias tobias@et-inf.fho-emden.de on ++Wed, 20 Jul 1994 17:23:21 +0200. ++ ++It was downloaded from http://www.fping.com/. ++ ++Copyright: ++ ++Upstream maintainer: David Papp ++Original author: Roland Schemers ++IPv6 Support: Jeroen Massar ++ ++ ++Copyright (c) 1992, 1994, 1997 ++Board of Trustees ++Leland Stanford Jr. University ++ ++Redistribution and use in source and binary forms are permitted provided ++that the above copyright notice and this paragraph are duplicated in all ++such forms and that any documentation, advertising materials, and other ++materials related to such distribution and use acknowledge that the software ++was developed by Stanford University. The name of the University may not ++be used to endorse or promote products derived from this software without ++specific prior written permission. ++ ++THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ++WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ++MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. ++ +--- fping-2.4b2-to-ipv6.orig/debian/control ++++ fping-2.4b2-to-ipv6/debian/control +@@ -0,0 +1,20 @@ ++Source: fping ++Section: net ++Priority: optional ++Maintainer: Anibal Monsalve Salazar ++Standards-Version: 3.8.0 ++Build-Depends: debhelper (>= 5) ++Homepage: http://fping.sourceforge.net/ ++ ++Package: fping ++Architecture: any ++Depends: ${shlibs:Depends}, ${misc:Depends} ++Conflicts: suidmanager (<< 0.50) ++Replaces: netstd ++Description: sends ICMP ECHO_REQUEST packets to network hosts ++ fping is a ping like program which uses the Internet Control Message Protocol ++ (ICMP) echo request to determine if a target host is responding. fping ++ differs from ping in that you can specify any number of targets on the command ++ line, or specify a file containing the lists of targets to ping. Instead of ++ sending to one target until it times out or replies, fping will send out a ++ ping packet and move on to the next target in a round-robin fashion. +--- fping-2.4b2-to-ipv6.orig/debian/rules ++++ fping-2.4b2-to-ipv6/debian/rules +@@ -0,0 +1,78 @@ ++#!/usr/bin/make -f ++# GNU copyright 1997 to 1999 by Joey Hess. ++# Copyright (c) 1999 Herbert Xu ++# Copyright (c) 2004-2005 Anibal Monsalve Salazar ++ ++# Uncomment this to turn on verbose mode. ++export DH_VERBOSE=1 ++ ++configure: configure-stamp ++configure-stamp: ++ dh_testdir ++ ++ mkdir build build/ipv4 build/ipv6 ++ cp -a $$(find * -maxdepth 0 ! -name build) build ++ cd build/ipv4; ../configure ++ cd build/ipv6; ../configure ++ ++ touch configure-stamp ++ ++build: build-stamp ++build-stamp: configure-stamp ++ dh_testdir ++ ++ $(MAKE) -C build/ipv4 ++ $(MAKE) -C build/ipv6 CFLAGS='-g -O2 -DIPV6=1' ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ ++ rm -rf build build-stamp configure-stamp ++ ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ install build/ipv4/fping debian/fping/usr/bin ++ install build/ipv6/fping debian/fping/usr/bin/fping6 ++ cp fping.8 debian/fping/usr/share/man/man8 ++ ln -s fping.8 debian/fping/usr/share/man/man8/fping6.8 ++ ++ install -g 0 -o 0 -m 644 -p debian/lintian.overrides debian/fping/usr/share/lintian/overrides/fping ++ ++ touch install-stamp ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++ dh_installcron ++ dh_installinfo ++ dh_installchangelogs ChangeLog ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++ chmod 4755 debian/fping/usr/bin/fping* ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean configure binary-indep binary-arch binary install +--- fping-2.4b2-to-ipv6.orig/debian/compat ++++ fping-2.4b2-to-ipv6/debian/compat +@@ -0,0 +1 @@ ++5 +--- fping-2.4b2-to-ipv6.orig/debian/changelog ++++ fping-2.4b2-to-ipv6/debian/changelog +@@ -0,0 +1,174 @@ ++fping (2.4b2-to-ipv6-16.1) unstable; urgency=low ++ ++ * NMU during Moenchengladbach BSP ++ * Fixes FTBFS on kfreebsd (Closes: #555398) ++ * Fixes typo "Paramter" in binary ++ ++ -- Axel Beckert Sat, 23 Jan 2010 16:22:02 +0100 ++ ++fping (2.4b2-to-ipv6-16) unstable; urgency=low ++ ++ * Fix the following bugs ++ - Network byte order sensitivity was missing completely. ++ Added hopefully all missing calls. ++ - The sequence numbering scheme used led to packet drops. ++ Changed it to a more senseful numbering scheme. ++ - Some minor C programming mistakes ('=' instead of '=='). ++ Patch by Stephan Fuhrmann; closes: #502569 ++ * Add support for command line select timeout setting ++ Patch by Marton Balint; closes: #502575 ++ * Remove symlinks in /usr/sbin; closes: #377732 ++ * Standards-Version is 3.8.0 ++ ++ -- Anibal Monsalve Salazar Sat, 18 Oct 2008 12:04:52 +1100 ++ ++fping (2.4b2-to-ipv6-15) unstable; urgency=low ++ ++ * Added interface binding (-I) for fping ++ Patch by Peter Naulls ++ Closes: #439014 ++ * Fixed a couple of typos in fping.8. Closes: #423180 ++ * Added homepage control header ++ * Bumped Standards-Version to 3.7.3 ++ * Fixed the following lintian issue: ++ - debian-rules-sets-DH_COMPAT ++ ++ -- Anibal Monsalve Salazar Mon, 03 Mar 2008 17:46:17 +1100 ++ ++fping (2.4b2-to-ipv6-14) unstable; urgency=low ++ ++ * Set Standards-Version to 3.7.2. ++ * Set DH_COMPAT to 5. ++ ++ -- Anibal Monsalve Salazar Fri, 23 Jun 2006 20:56:39 +1000 ++ ++fping (2.4b2-to-ipv6-13) unstable; urgency=low ++ ++ * Fixed stdout flush problem, closes: #340146. ++ Patch by Bart Martens . ++ ++ -- Anibal Monsalve Salazar Fri, 30 Dec 2005 08:30:09 +1100 ++ ++fping (2.4b2-to-ipv6-12) unstable; urgency=low ++ ++ * Fixed "problem with option -r (retry limit)", closes: #318402. ++ Patch by Qingning Huo . ++ * Set Standards-Version to 3.6.2 in debian/control and DH_COMPAT ++ to 4 in debian/rules.. ++ ++ -- Anibal Monsalve Salazar Sat, 08 Oct 2005 21:26:35 +1000 ++ ++fping (2.4b2-to-ipv6-11) unstable; urgency=low ++ ++ * Fixed "would be useful to specify 'source address' like ping for multi ++ homed machines", closes: #198486. ++ Patch by Marc Haber . ++ ++ -- Anibal Monsalve Salazar Thu, 02 Jun 2005 08:14:54 +1000 ++ ++fping (2.4b2-to-ipv6-10) unstable; urgency=low ++ ++ * Fixed "unnecessary delay with the -c option after the last packet" ++ (Closes: #293856). Patch by Niko Tyni ++ * New maintainer's email address. ++ ++ -- Anibal Monsalve Salazar Sun, 06 Feb 2005 23:25:57 +1100 ++ ++fping (2.4b2-to-ipv6-9) unstable; urgency=low ++ ++ * Fixed "fping6 always does reverse lookup" (Closes: #273647). ++ Patch by Jeroen Massar and forwarded by Bernhard Schmidt ++ ++ -- Anibal Monsalve Salazar Mon, 10 Jan 2005 00:01:32 +1100 ++ ++fping (2.4b2-to-ipv6-8) unstable; urgency=low ++ ++ * New maintainer. ++ ++ -- Anibal Monsalve Salazar Thu, 20 May 2004 09:42:08 +1000 ++ ++fping (2.4b2-to-ipv6-7) unstable; urgency=low ++ ++ * Build fping in build/ipv[46] instead of build and build-ipv6. ++ * Made DNS errors non-fatal for IPv6 (closes: #198056). ++ ++ -- Herbert Xu Fri, 20 Jun 2003 21:36:30 +1000 ++ ++fping (2.4b2-to-ipv6-6) unstable; urgency=low ++ ++ * Do not use incorrect linux.h file (closes: #85468). ++ ++ -- Herbert Xu Sat, 17 May 2003 14:13:11 +1000 ++ ++fping (2.4b2-to-ipv6-5) unstable; urgency=low ++ ++ * Fixed yet another divide by zero bug (closes: #148445). ++ ++ -- Herbert Xu Tue, 4 Jun 2002 12:18:03 +1000 ++ ++fping (2.4b2-to-ipv6-4) unstable; urgency=low ++ ++ * Made fping6 setuid (closes: #136386). ++ * Moved fping back into bin. ++ * Partially applied IPv6 patch to fix IPv6 checksums (closes: #136479). ++ ++ -- Herbert Xu Sun, 7 Apr 2002 20:36:56 +1000 ++ ++fping (2.4b2-to-ipv6-3) unstable; urgency=low ++ ++ * Added compatibility symlink for fping (closes: #135203). ++ ++ -- Herbert Xu Sat, 23 Feb 2002 08:34:11 +1100 ++ ++fping (2.4b2-to-ipv6-2) unstable; urgency=low ++ ++ * Turned setuid bit on again since the code before dropping privilegs is ++ minimal. ++ * Fixed another divide by zero error (closes: #132370). ++ ++ -- Herbert Xu Thu, 7 Feb 2002 20:10:48 +1100 ++ ++fping (2.4b2-to-ipv6-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Install fping into sbin as done by upstream. ++ * Turned setuid bit off. ++ ++ -- Herbert Xu Fri, 1 Feb 2002 22:11:59 +1100 ++ ++fping (2.2b2-3) unstable; urgency=low ++ ++ * Removed INSTALL file from package (closes: #84050). ++ * Fixed alignment bug. ++ ++ -- Herbert Xu Sat, 10 Feb 2001 19:25:18 +1100 ++ ++fping (2.2b2-2) unstable; urgency=low ++ ++ * Made changes for dpkg-statoverride (closes: #83838). ++ ++ -- Herbert Xu Sun, 28 Jan 2001 21:53:05 +1100 ++ ++fping (2.2b2-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Fixed typo that prevented -d from working (closes: #83255). ++ * Drop root privileges after opening the socket (closes: #81589). ++ * Fixed the options [tip], they were out by a factor of 10 ++ (Richard Kettlewell, closes: #83742). ++ ++ -- Herbert Xu Sun, 28 Jan 2001 00:09:41 +1100 ++ ++fping (2.2b1-2) unstable; urgency=low ++ ++ * Fixed typo in control file, spotted by William Ono (closes: #49909). ++ ++ -- Herbert Xu Mon, 15 May 2000 12:27:03 +1000 ++ ++fping (2.2b1-1) unstable; urgency=low ++ ++ * Initial release. ++ * Fixed divide by zero error (closes: #29902). ++ ++ -- Herbert Xu Sat, 30 Oct 1999 16:36:19 +1000 ++ -- cgit v1.2.3-54-g00ecf