forked from Lainports/freebsd-ports
Add netselect 0.3, ultrafast implementation of ping.
PR: ports/100338 Submitted by: Timothy Redaelli <drizzt at gufi.org>
This commit is contained in:
parent
35d4715fc9
commit
b5be3c084e
5 changed files with 111 additions and 0 deletions
|
|
@ -329,6 +329,7 @@
|
|||
SUBDIR += netpipes
|
||||
SUBDIR += netscript
|
||||
SUBDIR += netsed
|
||||
SUBDIR += netselect
|
||||
SUBDIR += netspeed_applet
|
||||
SUBDIR += netstrain
|
||||
SUBDIR += nettest
|
||||
|
|
|
|||
38
net/netselect/Makefile
Normal file
38
net/netselect/Makefile
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
# New ports collection makefile for: netselect
|
||||
# Date created: 15 July 2006
|
||||
# Whom: Timothy Redaelli <drizzt@gufi.org>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= netselect
|
||||
PORTVERSION= 0.3
|
||||
CATEGORIES= net
|
||||
MASTER_SITES= ${MASTER_SITE_GENTOO} \
|
||||
http://www.worldvisions.ca/~apenwarr/netselect/
|
||||
MASTER_SITE_SUBDIR= distfiles
|
||||
|
||||
MAINTAINER= drizzt@gufi.org
|
||||
COMMENT= Ultrafast implementation of ping
|
||||
|
||||
PLIST_FILES= bin/${PORTNAME}
|
||||
|
||||
WRKSRC= ${WRKDIR}/${PORTNAME}
|
||||
|
||||
OPTIONS= SUID "Install with the sticky bit (mode 4110)" off
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if defined(WITH_SUID)
|
||||
BINMODE= 4110
|
||||
.else
|
||||
BINMODE= 0100
|
||||
.endif
|
||||
|
||||
do-build:
|
||||
${CC} ${CFLAGS} -o ${WRKSRC}/${PORTNAME} ${WRKSRC}/${PORTNAME}.c
|
||||
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${PREFIX}/bin
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
3
net/netselect/distinfo
Normal file
3
net/netselect/distinfo
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
MD5 (netselect-0.3.tar.gz) = 3a3714946db2458e5db3d55373057ef2
|
||||
SHA256 (netselect-0.3.tar.gz) = fe81942589d5219d030e5cecfb12787fb6d3613416cb326dea4952bf53f9c978
|
||||
SIZE (netselect-0.3.tar.gz) = 22047
|
||||
55
net/netselect/files/patch-netselect.c
Normal file
55
net/netselect/files/patch-netselect.c
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
--- netselect.c.orig 2006-07-14 22:59:18.000000000 +0200
|
||||
+++ netselect.c 2006-07-14 22:57:22.000000000 +0200
|
||||
@@ -39,14 +39,13 @@
|
||||
* hey, great! Let me know. -- apenwarr
|
||||
*/
|
||||
|
||||
-#ifdef __EMX__
|
||||
-# include <io.h>
|
||||
-# include <fcntl.h>
|
||||
-# include <sys/types.h>
|
||||
-# include <sys/select.h>
|
||||
-# include <machine/endian.h>
|
||||
-#else
|
||||
-# include <endian.h>
|
||||
+#ifdef __linux__
|
||||
+#include <endian.h>
|
||||
+#elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__)
|
||||
+#if defined(__OpenBSD__)
|
||||
+#include <machine/types.h>
|
||||
+#endif
|
||||
+#include <machine/endian.h>
|
||||
#endif
|
||||
|
||||
#include <sys/param.h>
|
||||
@@ -152,6 +151,7 @@
|
||||
extern int optind;
|
||||
int hostcount, startcount, endcount = 0, sent_one, lag, min_lag = 100;
|
||||
int ch, seq, ttl, max_ttl = 30, min_tries = 10, num_score = 1;
|
||||
+ int on = 1;
|
||||
struct timeval now;
|
||||
struct timezone tz;
|
||||
OPacket outpacket; /* last output (udp) packet */
|
||||
@@ -234,7 +234,12 @@
|
||||
if (verbose >= 1)
|
||||
fprintf(stderr, "Running netselect to choose %d out of %d address%s.\n",
|
||||
num_score, numhosts, numhosts==1 ? "" : "es");
|
||||
-
|
||||
+
|
||||
+ if (setsockopt(sndsock, IPPROTO_IP, IP_HDRINCL, &on, sizeof(on)) < 0) {
|
||||
+ perror("IP_HDRINCL");
|
||||
+ _exit(EXIT_FAILURE);
|
||||
+ }
|
||||
+
|
||||
/* keep going until most of the hosts have been finished */
|
||||
must_continue = numhosts;
|
||||
while (must_continue && must_continue >= numhosts/2)
|
||||
@@ -712,7 +717,7 @@
|
||||
ip->ip_off = 0;
|
||||
ip->ip_hl = sizeof(*ip) >> 2;
|
||||
ip->ip_p = IPPROTO_UDP;
|
||||
- ip->ip_len = 0; /* kernel fills this in */
|
||||
+ ip->ip_len = sizeof(OPacket);
|
||||
ip->ip_ttl = ttl;
|
||||
ip->ip_v = IPVERSION;
|
||||
ip->ip_id = htons(ident + seq);
|
||||
14
net/netselect/pkg-descr
Normal file
14
net/netselect/pkg-descr
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
netselect is an ultrafast intelligent parallelizing binary-search
|
||||
implementation of "ping."
|
||||
|
||||
netselect determines several facts about all of the hosts given on the command
|
||||
line, much faster than you would if you tried to use ping and traceroute.
|
||||
For example, if I type:
|
||||
|
||||
netselect -v ftp.fceia.unr.edu.ar \
|
||||
ftp.kulnet.kuleuven.ac.be \
|
||||
ftp.cdrom.com ftp.debian.org \
|
||||
ftp.de.debian.org
|
||||
|
||||
It tells me statistics about each of the hostnames I provided,
|
||||
in much less time than doing a whole bunch of traceroutes.
|
||||
Loading…
Add table
Reference in a new issue