Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Jan 2005 19:18:11 +0100
From:      Radim Kolar <hsn@netmag.cz>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        hsn@netmag.cz
Subject:   ports/76239: [NEW PORT] net/brutecopy: Transferring files over Internet via UDP
Message-ID:  <E1CoQap-000Fej-14@sanatana.dharma>
Resent-Message-ID: <200501140830.j0E8UWkY046652@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         76239
>Category:       ports
>Synopsis:       [NEW PORT] net/brutecopy: Transferring files over Internet via UDP
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jan 14 08:30:31 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Radim Kolar
>Release:        FreeBSD 5.3-STABLE i386
>Organization:
>Environment:
System: FreeBSD sanatana.dharma 5.3-STABLE FreeBSD 5.3-STABLE #0: Fri Dec 31 17:42:48 CET 2004
>Description:
It's an application that pushes data using UDP protocol through rotten,
overloaded and otherwise disgusting lines. It should work well even on lines
on which TCP completely chokes. The transmission is performed at
user-preprogrammed fixed data rate with no flow control, only with lost-packet
retransmits. Brutalcopy always transfers the file without error, even on
erroneous lines. It uses a CRC-32 checksum algorithm together with the checksum
in the UDP packets.

Warning: using this utility can cause total line congestion. Don't use it on
with high transfer rates unless you know what you do. On some routers, the
UDP is artificially throttled in order to prevent such practices. Use
FSP for more user and bandwidth friendly file transfers.

WWW: http://atrey.karlin.mff.cuni.cz/~clock/twibright/bcp/

Generated with FreeBSD Port Tools 0.63
>How-To-Repeat:
>Fix:

--- brutecopy-20011229.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	brutecopy
#	brutecopy/Makefile
#	brutecopy/distinfo
#	brutecopy/files
#	brutecopy/files/patch-server
#	brutecopy/files/patch-client
#	brutecopy/files/patch-makefile
#	brutecopy/pkg-descr
#
echo c - brutecopy
mkdir -p brutecopy > /dev/null 2>&1
echo x - brutecopy/Makefile
sed 's/^X//' >brutecopy/Makefile << 'END-of-brutecopy/Makefile'
X# New ports collection makefile for:	brutecopy
X# Date created:		11 Jan 2005
X# Whom:			x
X#
X# $FreeBSD$
X#
X
XPORTNAME=	brutecopy
XPORTVERSION=	20011229
XCATEGORIES=	net
XMASTER_SITES=	ftp://atrey.karlin.mff.cuni.cz/pub/local/clock/bcp/
XDISTNAME=	bcp-${PORTVERSION}
XEXTRACT_SUFX=	.tgz
X
XMAINTAINER=	ports@FreeBSD.org
XCOMMENT=	Transferring files over Internet via UDP
X
XPLIST_FILES=	bin/bcpc	bin/bcps
XMAN1=		bcp.1
XMANCOMPRESSED=	yes
X
X.if defined(WITH_OPTIMIZED_CFLAGS)
XCFLAGS+=	-O3 -Wall -fomit-frame-pointer -falign-functions=0
X.endif
X
Xdo-install:
X	${MKDIR} ${PREFIX}/bin
X	${INSTALL_PROGRAM} ${WRKSRC}/bcps ${PREFIX}/bin
X	${INSTALL_PROGRAM} ${WRKSRC}/bcpc ${PREFIX}/bin
X	${MKDIR} ${MAN1PREFIX}/man/man1
X	${INSTALL_MAN} ${WRKSRC}/bcp.1.gz ${MAN1PREFIX}/man/man1
X
Xpre-everything::
X.ifndef WITH_OPTIMIZED_CFLAGS
X	@${ECHO} "Define WITH_OPTIMIZED_CFLAGS for compiling with -O3"
X.endif
X
X.include <bsd.port.mk>
END-of-brutecopy/Makefile
echo x - brutecopy/distinfo
sed 's/^X//' >brutecopy/distinfo << 'END-of-brutecopy/distinfo'
XMD5 (bcp-20011229.tgz) = 2ecd273d34455d43d23cdd03db40b9ab
XSIZE (bcp-20011229.tgz) = 21711
END-of-brutecopy/distinfo
echo c - brutecopy/files
mkdir -p brutecopy/files > /dev/null 2>&1
echo x - brutecopy/files/patch-server
sed 's/^X//' >brutecopy/files/patch-server << 'END-of-brutecopy/files/patch-server'
X--- bcps.c.orig	Sat Dec 29 15:03:13 2001
X+++ bcps.c	Tue Jan 11 18:44:43 2005
X@@ -99,28 +99,28 @@
X void
X print_help(void)
X {
X- fprintf(stderr,"bcps -- a Brutalcopy server half
X-Brutalcopy (c) 2000 Karel Kulhavy, Clocksoft
X-
X-Brutalcopy is a program for transferring rather large files by means of UDP
X-protocol in order to bypass TCP tendency to screw up on bad lines. Brutalcopy
X-is based on manual flow control.
X-
X-Usage: bcps -p <number_of_port_to_listen on> [-h] [-o
X-<filename>] [-s] [-e <number_of_eots>] [-r <eot_period>] [-1] [-2]
X-[-q <info_retransmit_timeout>]
X-
X--p <port>      Port must be some high number. Default is 1235.
X--h             Prints out help and ends.
X--o <filename>  File to dump the received data to. Default is bcp.dat.
X--s             Print tickers
X--e <n_eots>    Number of EOT packets sent at the end. Default is 3.
X--r <eot_p>     Time distance between consecutive EOT packets in microseconds.
X-               Default is 100,000.
X--q             Info packet retransmit timeout in usec.
X--1             Do not print tickers
X--2             Print nothing
X-");
X+ fprintf(stderr,"bcps -- a Brutalcopy server half\n"
X+"Brutalcopy (c) 2000 Karel Kulhavy, Clocksoft\n"
X+"\n"
X+"Brutalcopy is a program for transferring rather large files by means of UDP\n"
X+"protocol in order to bypass TCP tendency to screw up on bad lines. Brutalcopy\n"
X+"is based on manual flow control.\n"
X+"\n"
X+"Usage: bcps -p <number_of_port_to_listen on> [-h] [-o\n"
X+"<filename>] [-s] [-e <number_of_eots>] [-r <eot_period>] [-1] [-2]\n"
X+"[-q <info_retransmit_timeout>]\n"
X+"\n"
X+"-p <port>      Port must be some high number. Default is 1235.\n"
X+"-h             Prints out help and ends.\n"
X+"-o <filename>  File to dump the received data to. Default is bcp.dat.\n"
X+"-s             Print tickers\n"
X+"-e <n_eots>    Number of EOT packets sent at the end. Default is 3.\n"
X+"-r <eot_p>     Time distance between consecutive EOT packets in microseconds.\n"
X+"               Default is 100,000.\n"
X+"-q             Info packet retransmit timeout in usec.\n"
X+"-1             Do not print tickers\n"
X+"-2             Print nothing\n"
X+"\n");
X }
X 
X void
END-of-brutecopy/files/patch-server
echo x - brutecopy/files/patch-client
sed 's/^X//' >brutecopy/files/patch-client << 'END-of-brutecopy/files/patch-client'
X--- bcpc.c.orig	Sat Dec 29 15:03:13 2001
X+++ bcpc.c	Tue Jan 11 18:49:25 2005
X@@ -80,24 +80,23 @@
X void
X print_help(void)
X {
X- fprintf(stderr,"bcpc -- a Brutalcopy client half
X-Brutalcopy (c) 2000 Karel Kulhavy, Clocksoft
X-
X-Brutalcopy is a program for transferring rather large files by means of UDP
X-protocol in order to bypass TCP tendency to screw up on bad lines. Brutalcopy is
X-based on manual flow control.
X-
X-Usage: bcpc -l <server hostname> -p <server port> [-h] [-i
X-<filename>] [-s <payload_size>] [-r <sot_retransmit_time>] [-b <bytes_per_sec>]
X-
X--l <server>    DNS name or IP address (in dot notation) of the server.
X--p <dist_port> Port must be some high number (>=1024). Default is 1235.
X--h             Prints out help and ends.
X--i <filename>  File to dump the received data from. Default is bcp.dat.
X--s <payload>   Number of bytes as a data payload in a single packet.
X--r <srt>       Number of microsecond after which is SOT retransmitted.
X--b <Bps>      Bytes of payload per second
X-");
X+ fprintf(stderr,"bcpc -- a Brutalcopy client half\n"
X+"Brutalcopy (c) 2000 Karel Kulhavy, Clocksoft\n"
X+"\n"
X+"Brutalcopy is a program for transferring rather large files by means of UDP\n"
X+"protocol in order to bypass TCP tendency to screw up on bad lines. Brutalcopy is\n"
X+"based on manual flow control.\n"
X+"\n"
X+"Usage: bcpc -l <server hostname> -p <server port> [-h] [-i\n"
X+"<filename>] [-s <payload_size>] [-r <sot_retransmit_time>] [-b <bytes_per_sec>]\n"
X+"-l <server>    DNS name or IP address (in dot notation) of the server.\n"
X+"-p <dist_port> Port must be some high number (>=1024). Default is 1235.\n"
X+"-h             Prints out help and ends.\n"
X+"-i <filename>  File to dump the received data from. Default is bcp.dat.\n"
X+"-s <payload>   Number of bytes as a data payload in a single packet.\n"
X+"-r <srt>       Number of microsecond after which is SOT retransmitted.\n"
X+"-b <Bps>       Bytes of payload per second\n"
X+"\n");
X }
X 
X void
X@@ -289,8 +288,7 @@
X 
X  if (n>=n_packets)
X  {
X-  fprintf(stderr,"Invalid packet seq# of %u from %lu came! It means data are
X-corrupted. Quitting immediately.\n",n,n_packets);
X+  fprintf(stderr,"Invalid packet seq# of %u from %lu came! It means data are\ncorrupted. Quitting immediately.\n",n,n_packets);
X   die();
X  } 
X  if ((bitmap[byte]>>bit)&1) return;
END-of-brutecopy/files/patch-client
echo x - brutecopy/files/patch-makefile
sed 's/^X//' >brutecopy/files/patch-makefile << 'END-of-brutecopy/files/patch-makefile'
X--- Makefile.orig	Sat Dec 29 15:03:13 2001
X+++ Makefile	Tue Jan 11 18:55:19 2005
X@@ -1,5 +1,4 @@
X-CFLAGS= -O3 -Wall -fomit-frame-pointer -malign-functions=0
X-LDFLAGS= -s
X+CFLAGS?=-O3 -Wall -fomit-frame-pointer -falign-functions=0
X 
X all: bcps bcpc
X 
X@@ -7,18 +6,18 @@
X 	rm -f *.o bcps bcpc
X 
X bcps.o: bcps.c def.h crc32.c
X-	gcc -c $(CFLAGS) bcps.c -o bcps.o
X+	$(CC) -c $(CFLAGS) bcps.c -o bcps.o
X 
X bcpc.o: bcpc.c def.h crc32.c
X-	gcc -c $(CFLAGS) bcpc.c -o bcpc.o
X+	$(CC) -c $(CFLAGS) bcpc.c -o bcpc.o
X 
X crc32.o: crc32.c
X 
X bcps: bcps.o crc32.o
X-	gcc $(LDFLAGS) bcps.o crc32.o -o bcps
X+	$(CC) $(LDFLAGS) bcps.o crc32.o -o bcps
X 
X bcpc: bcpc.o crc32.o
X-	gcc $(LDFLAGS) bcpc.o crc32.o -o bcpc
X+	$(CC) $(LDFLAGS) bcpc.o crc32.o -o bcpc
X 
X install: all
X 	install -o root -g root -m 755 bcpc $(DESTDIR)/usr/bin
END-of-brutecopy/files/patch-makefile
echo x - brutecopy/pkg-descr
sed 's/^X//' >brutecopy/pkg-descr << 'END-of-brutecopy/pkg-descr'
XIt's an application that pushes data using UDP protocol through rotten,
Xoverloaded and otherwise disgusting lines. It should work well even on lines
Xon which TCP completely chokes. The transmission is performed at
Xuser-preprogrammed fixed data rate with no flow control, only with lost-packet
Xretransmits. Brutalcopy always transfers the file without error, even on
Xerroneous lines. It uses a CRC-32 checksum algorithm together with the checksum
Xin the UDP packets.
X
XWarning: using this utility can cause total line congestion. Don't use it on
Xwith high transfer rates unless you know what you do. On some routers, the
XUDP is artificially throttled in order to prevent such practices. Use
XFSP for more user and bandwidth friendly file transfers.
X
XWWW: http://atrey.karlin.mff.cuni.cz/~clock/twibright/bcp/
END-of-brutecopy/pkg-descr
exit
--- brutecopy-20011229.shar ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1CoQap-000Fej-14>