From owner-freebsd-ports Sun Sep 16 11:50:17 2001 Delivered-To: freebsd-ports@hub.freebsd.org Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 4F9A537B408 for ; Sun, 16 Sep 2001 11:50:04 -0700 (PDT) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.4/8.11.4) id f8GIo4h96704; Sun, 16 Sep 2001 11:50:04 -0700 (PDT) (envelope-from gnats) Received: from midten.fast.no (midten.fast.no [213.188.8.11]) by hub.freebsd.org (Postfix) with ESMTP id D02E337B40A; Sun, 16 Sep 2001 11:44:27 -0700 (PDT) Received: from innenfor.trondheim.fast.no (dmz-gw.trd.fast.no [213.188.8.9]) by midten.fast.no (8.9.3/8.9.3) with ESMTP id UAA01001; Sun, 16 Sep 2001 20:44:26 +0200 (CEST) Received: from guinness.trondheim.fast.no (guinness.trondheim.fast.no [192.168.8.119]) by innenfor.trondheim.fast.no (8.9.3/8.9.3) with ESMTP id CAA24996; Sun, 16 Sep 2001 02:04:37 +0200 (CEST) (envelope-from arnej@trondheim.fast.no) Received: (from arnej@localhost) by guinness.trondheim.fast.no (8.11.3/8.9.3) id f8G04eK30226; Sun, 16 Sep 2001 02:04:40 +0200 (CEST) (envelope-from arnej@trondheim.fast.no) Message-Id: <200109160004.f8G04eK30226@guinness.trondheim.fast.no> Date: Sun, 16 Sep 2001 02:04:40 +0200 (CEST) From: Arne.Juul@fast.no Reply-To: Arne.Juul@fast.no To: FreeBSD-gnats-submit@FreeBSD.org Cc: Tor.Egge@fast.no, mharo@FreeBSD.org, arnej@pvv.ntnu.no X-Send-Pr-Version: 3.113 Subject: ports/30613: ttcp should print statistics on stderr Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Number: 30613 >Category: ports >Synopsis: ttcp should print statistics on stderr >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Sep 16 11:50:04 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Arne H Juul >Release: FreeBSD 4.3-RELEASE i386 >Organization: Fast Search & Transfer >Environment: System: FreeBSD guinness.trondheim.fast.no 4.3-RELEASE FreeBSD 4.3-RELEASE #0: Mon Apr 23 17:05:17 CEST 2001 arnej@guinness.trondheim.fast.no:/usr/obj/usr/src/sys/GUINNESS_PXE i386 >Description: ttcp is a nice tool in the default mode for transferring data between machines in an efficient way. However, ttcp has the annoying habit of printing some of its statistics on stdout. Here are some patches I've been using for a long time (see also ftp://ftp.ntnu.no/pub/unix/utils/ttcp-1.13.tar.Z) that fix this annoyance, as an extra bonus there's a portability fix and a patch that avoids some odd corner cases of signed modulo arithmetic. Please add these to the ttcp package! >How-To-Repeat: $ ttcp -r > foo & $ ttcp -t localhost < /dev/null $ ls -l foo notice that foo isn't zero bytes as it should be. >Fix: add these patches: --- ttcp.c.orig Sun Sep 16 00:31:43 2001 +++ ttcp.c Sun Sep 16 00:35:02 2001 @@ -253,6 +253,7 @@ #endif /* cray */ } sinhim.sin_port = htons(port); + sinme.sin_family = AF_INET; /* Solaris needs this */ sinme.sin_port = 0; /* free choice */ } else { /* rcvr */ --- ttcp.c.orig Sun Sep 16 00:36:49 2001 +++ ttcp.c Sun Sep 16 00:37:34 2001 @@ -271,26 +271,26 @@ buf +=(bufalign - ((int)buf % bufalign) + bufoffset) % bufalign; if (trans) { - fprintf(stdout, + fprintf(stderr, "ttcp-t: buflen=%d, nbuf=%d, align=%d/%d, port=%d", buflen, nbuf, bufalign, bufoffset, port); if (sockbufsize) - fprintf(stdout, ", sockbufsize=%d", sockbufsize); - fprintf(stdout, " %s -> %s\n", udp?"udp":"tcp", host); + fprintf(stderr, ", sockbufsize=%d", sockbufsize); + fprintf(stderr, " %s -> %s\n", udp?"udp":"tcp", host); } else { - fprintf(stdout, + fprintf(stderr, "ttcp-r: buflen=%d, nbuf=%d, align=%d/%d, port=%d", buflen, nbuf, bufalign, bufoffset, port); if (sockbufsize) - fprintf(stdout, ", sockbufsize=%d", sockbufsize); - fprintf(stdout, " %s\n", udp?"udp":"tcp"); + fprintf(stderr, ", sockbufsize=%d", sockbufsize); + fprintf(stderr, " %s\n", udp?"udp":"tcp"); } if ((fd = socket(AF_INET, udp?SOCK_DGRAM:SOCK_STREAM, 0)) < 0) err("socket"); mes("socket"); - if (bind(fd, (struct sockaddr*)&sinme, sizeof(sinme)) < 0) + if (bind(fd, (struct sockaddr *) &sinme, sizeof(sinme)) < 0) err("bind"); #if defined(SO_SNDBUF) || defined(SO_RCVBUF) @@ -417,25 +417,25 @@ } if( cput <= 0.0 ) cput = 0.001; if( realt <= 0.0 ) realt = 0.001; - fprintf(stdout, + fprintf(stderr, "ttcp%s: %.0f bytes in %.2f real seconds = %s/sec +++\n", trans?"-t":"-r", nbytes, realt, outfmt(nbytes/realt)); if (verbose) { - fprintf(stdout, + fprintf(stderr, "ttcp%s: %.0f bytes in %.2f CPU seconds = %s/cpu sec\n", trans?"-t":"-r", nbytes, cput, outfmt(nbytes/cput)); } - fprintf(stdout, + fprintf(stderr, "ttcp%s: %d I/O calls, msec/call = %.2f, calls/sec = %.2f\n", trans?"-t":"-r", numCalls, 1024.0 * realt/((double)numCalls), ((double)numCalls)/realt); - fprintf(stdout,"ttcp%s: %s\n", trans?"-t":"-r", stats); + fprintf(stderr,"ttcp%s: %s\n", trans?"-t":"-r", stats); if (verbose) { - fprintf(stdout, + fprintf(stderr, "ttcp%s: buffer address %#x\n", trans?"-t":"-r", buf); --- ttcp.c.orig Sun Sep 16 00:38:12 2001 +++ ttcp.c Sun Sep 16 00:39:44 2001 @@ -268,7 +268,9 @@ if ( (buf = (char *)malloc(buflen+bufalign)) == (char *)NULL) err("malloc"); if (bufalign != 0) - buf +=(bufalign - ((int)buf % bufalign) + bufoffset) % bufalign; + buf += (bufalign + -((unsigned long)buf % bufalign) + + bufoffset) % bufalign; if (trans) { fprintf(stderr, >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message