net/pload: Fix command-line args and unit display.
This patch updates the port to fix the fact that the code calls XtAppInitialize() which eats the command-line args and so causes ps(1) to not display them. The command-line args are now saved before and restored after the call to XtAppInitialize(). Also, correct the display of the units of total byte counts to show as "B", "kB", "GB" etc, rather than the imprecise/incorrect "b", "k", "G" etc. PR: 267710 Approved by: J.R. Oldroyd (maintainer)
This commit is contained in:
parent
204e87d05e
commit
82f3677256
@ -1,6 +1,6 @@
|
||||
PORTNAME= pload
|
||||
PORTVERSION= 0.9.5
|
||||
PORTREVISION= 4
|
||||
PORTREVISION= 5
|
||||
CATEGORIES= net sysutils
|
||||
MASTER_SITES= http://opal.com/src/pload/ LOCAL/pav
|
||||
|
||||
|
@ -1,20 +1,11 @@
|
||||
diff -c Imakefile.orig Imakefile
|
||||
*** Imakefile.orig Tue Feb 1 02:11:24 2000
|
||||
--- Imakefile Tue Aug 3 10:02:12 2004
|
||||
***************
|
||||
*** 15,21 ****
|
||||
|
||||
ComplexProgramTarget(pload)
|
||||
|
||||
! distclean: clean
|
||||
$(RM) Makefile osdefs.mk core \
|
||||
pload-$(VER).tar.gz \
|
||||
pload-$(VER)-1.i386.rpm \
|
||||
--- 15,21 ----
|
||||
|
||||
ComplexProgramTarget(pload)
|
||||
|
||||
! distclean:: clean
|
||||
$(RM) Makefile osdefs.mk core \
|
||||
pload-$(VER).tar.gz \
|
||||
pload-$(VER)-1.i386.rpm \
|
||||
--- Imakefile.orig 2000-02-01 07:11:24 UTC
|
||||
+++ Imakefile
|
||||
@@ -15,7 +15,7 @@ DEFINES = -DVERSION="\"Pload version $(VER)\"" $(OSDEF
|
||||
|
||||
ComplexProgramTarget(pload)
|
||||
|
||||
-distclean: clean
|
||||
+distclean:: clean
|
||||
$(RM) Makefile osdefs.mk core \
|
||||
pload-$(VER).tar.gz \
|
||||
pload-$(VER)-1.i386.rpm \
|
||||
|
@ -1,5 +1,5 @@
|
||||
--- ioctl_stat.c.orig 2000-02-01 02:11:24.000000000 -0500
|
||||
+++ ioctl_stat.c 2009-06-15 15:30:03.000000000 -0400
|
||||
--- ioctl_stat.c.orig 2000-02-01 07:11:24 UTC
|
||||
+++ ioctl_stat.c
|
||||
@@ -30,6 +30,12 @@
|
||||
#include <fcntl.h> /* open */
|
||||
#include <sys/ioctl.h> /* ioctl */
|
||||
@ -26,7 +26,7 @@
|
||||
# endif /* linux && __GLIBC__ < 2 */
|
||||
#else /* STREAMS */ /* Solaris, SunOS, OSF/1, SVR4 */
|
||||
# include <net/ppp_defs.h>
|
||||
@@ -61,8 +69,18 @@
|
||||
@@ -61,8 +69,18 @@ void getsocket(if_data *ifd)
|
||||
void ioctl_stat(if_data *ifd)
|
||||
{
|
||||
struct ifreq ifr;
|
||||
@ -46,7 +46,7 @@
|
||||
if (!ifd->s) getsocket(ifd);
|
||||
|
||||
memset(&ifr, 0, sizeof(ifr));
|
||||
@@ -76,7 +94,9 @@
|
||||
@@ -76,7 +94,9 @@ void ioctl_stat(if_data *ifd)
|
||||
return;
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@
|
||||
|
||||
#ifdef linux
|
||||
req.stats_ptr = (caddr_t) &req.stats;
|
||||
@@ -84,18 +104,36 @@
|
||||
@@ -84,18 +104,36 @@ void ioctl_stat(if_data *ifd)
|
||||
#define ifr_name ifr__name
|
||||
#endif
|
||||
|
@ -1,73 +1,74 @@
|
||||
diff -c pload.c.orig pload.c
|
||||
*** pload.c.orig Tue Feb 1 02:11:24 2000
|
||||
--- pload.c Wed Sep 22 13:13:46 2004
|
||||
***************
|
||||
*** 596,608 ****
|
||||
void do_total(char *b, double total)
|
||||
{
|
||||
if (total < 1024.0)
|
||||
! sprintf(b, "%s%0.0f b", b, total);
|
||||
else if (total < (1024.0*1024.0))
|
||||
! sprintf(b, "%s%0.2f k", b, total/1024.0);
|
||||
else if (total < (1024.0*1024.0*1024.0))
|
||||
! sprintf(b, "%s%0.2f M", b, total/1024.0/1024.0);
|
||||
else
|
||||
! sprintf(b, "%s%0.2f G", b, total/1024.0/1024.0/1024.0);
|
||||
|
||||
return;
|
||||
}
|
||||
--- 596,608 ----
|
||||
void do_total(char *b, double total)
|
||||
{
|
||||
if (total < 1024.0)
|
||||
! sprintf(b, "%s%0.0f B", b, total);
|
||||
else if (total < (1024.0*1024.0))
|
||||
! sprintf(b, "%s%0.2f kB", b, total/1024.0);
|
||||
else if (total < (1024.0*1024.0*1024.0))
|
||||
! sprintf(b, "%s%0.2f MB", b, total/1024.0/1024.0);
|
||||
else
|
||||
! sprintf(b, "%s%0.2f GB", b, total/1024.0/1024.0/1024.0);
|
||||
|
||||
return;
|
||||
}
|
||||
***************
|
||||
*** 610,622 ****
|
||||
void do_rate(char *b, double rate)
|
||||
{
|
||||
if (rate < 1024.0)
|
||||
! sprintf(b, "%s%0.0f b/s",b, rate);
|
||||
else if (rate < (1024.0*1024.0))
|
||||
! sprintf(b, "%s%0.2f k/s",b, rate/1024.0);
|
||||
else if (rate < (1024.0*1024.0*1024.0))
|
||||
! sprintf(b, "%s%0.2f M/s",b, rate/1024.0/1024.0);
|
||||
else
|
||||
! sprintf(b, "%s%0.2f G/s", b, rate/1024.0/1024.0/1024.0);
|
||||
return;
|
||||
}
|
||||
|
||||
--- 610,622 ----
|
||||
void do_rate(char *b, double rate)
|
||||
{
|
||||
if (rate < 1024.0)
|
||||
! sprintf(b, "%s%0.0f B/s",b, rate);
|
||||
else if (rate < (1024.0*1024.0))
|
||||
! sprintf(b, "%s%0.2f kB/s",b, rate/1024.0);
|
||||
else if (rate < (1024.0*1024.0*1024.0))
|
||||
! sprintf(b, "%s%0.2f MB/s",b, rate/1024.0/1024.0);
|
||||
else
|
||||
! sprintf(b, "%s%0.2f GB/s", b, rate/1024.0/1024.0/1024.0);
|
||||
return;
|
||||
}
|
||||
|
||||
***************
|
||||
*** 643,648 ****
|
||||
--- 643,651 ----
|
||||
break;
|
||||
case 'M':
|
||||
do_rate(buff, max);
|
||||
+ break;
|
||||
+ case 'd':
|
||||
+ sprintf(buff, "%s", resources.device);
|
||||
break;
|
||||
case '%': /* literal % */
|
||||
i = strlen(buff);
|
||||
--- pload.c.orig 2000-02-01 07:11:24 UTC
|
||||
+++ pload.c
|
||||
@@ -285,6 +285,13 @@ static XtResource pload_resources[] = {
|
||||
/************* Main () ******************/
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
+ char *orig_argv[64];
|
||||
+ int i;
|
||||
+
|
||||
+ /* save original argv pointers */
|
||||
+ for(i = 0; argv[i]; i++)
|
||||
+ orig_argv[i] = argv[i];
|
||||
+
|
||||
Progname = argv[0];
|
||||
|
||||
toplevel = XtAppInitialize (
|
||||
@@ -301,6 +308,11 @@ int main (int argc, char *argv[])
|
||||
and exit */
|
||||
if (argc != 1) Usage();
|
||||
|
||||
+ /* XtAppInitialize() eats the arguments, so restore original
|
||||
+ argv so that ps(1) shows the command line */
|
||||
+ for(i = 0; orig_argv[i]; i++)
|
||||
+ argv[i] = orig_argv[i];
|
||||
+
|
||||
XtGetApplicationResources(
|
||||
toplevel, /* widget */
|
||||
(XtPointer) &resources, /* where to put */
|
||||
@@ -596,27 +608,26 @@ void CheckForWMExit( Widget w,
|
||||
void do_total(char *b, double total)
|
||||
{
|
||||
if (total < 1024.0)
|
||||
- sprintf(b, "%s%0.0f b", b, total);
|
||||
+ sprintf(b, "%s%0.0f B", b, total);
|
||||
else if (total < (1024.0*1024.0))
|
||||
- sprintf(b, "%s%0.2f k", b, total/1024.0);
|
||||
+ sprintf(b, "%s%0.2f kiB", b, total/1024.0);
|
||||
else if (total < (1024.0*1024.0*1024.0))
|
||||
- sprintf(b, "%s%0.2f M", b, total/1024.0/1024.0);
|
||||
+ sprintf(b, "%s%0.2f MiB", b, total/1024.0/1024.0);
|
||||
else
|
||||
- sprintf(b, "%s%0.2f G", b, total/1024.0/1024.0/1024.0);
|
||||
-
|
||||
+ sprintf(b, "%s%0.2f GiB", b, total/1024.0/1024.0/1024.0);
|
||||
return;
|
||||
}
|
||||
|
||||
void do_rate(char *b, double rate)
|
||||
{
|
||||
if (rate < 1024.0)
|
||||
- sprintf(b, "%s%0.0f b/s",b, rate);
|
||||
+ sprintf(b, "%s%0.0f B/s",b, rate);
|
||||
else if (rate < (1024.0*1024.0))
|
||||
- sprintf(b, "%s%0.2f k/s",b, rate/1024.0);
|
||||
+ sprintf(b, "%s%0.2f kiB/s",b, rate/1024.0);
|
||||
else if (rate < (1024.0*1024.0*1024.0))
|
||||
- sprintf(b, "%s%0.2f M/s",b, rate/1024.0/1024.0);
|
||||
+ sprintf(b, "%s%0.2f MiB/s",b, rate/1024.0/1024.0);
|
||||
else
|
||||
- sprintf(b, "%s%0.2f G/s", b, rate/1024.0/1024.0/1024.0);
|
||||
+ sprintf(b, "%s%0.2f GiB/s", b, rate/1024.0/1024.0/1024.0);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -643,6 +654,9 @@ void make_label(char *fmt, unsigned long total, double
|
||||
break;
|
||||
case 'M':
|
||||
do_rate(buff, max);
|
||||
+ break;
|
||||
+ case 'd':
|
||||
+ strcat(buff, resources.device);
|
||||
break;
|
||||
case '%': /* literal % */
|
||||
i = strlen(buff);
|
||||
|
@ -1,5 +1,5 @@
|
||||
--- pload.man.orig Tue Feb 1 02:11:24 2000
|
||||
+++ pload.man Wed Sep 22 16:44:12 2004
|
||||
--- pload.man.orig 2000-02-01 07:11:24 UTC
|
||||
+++ pload.man
|
||||
@@ -18,7 +18,7 @@
|
||||
.TH PLOAD 1 "" "January 2000"
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
|
||||
.SH SYNOPSIS
|
||||
.ta 6n
|
||||
@@ -30,9 +30,9 @@
|
||||
@@ -30,9 +30,9 @@ pload \- display ppp throughput statistics in an X win
|
||||
[-iformat \fIfmt\fP] [-oformat \fIfmt\fP]
|
||||
|
||||
.SH DESCRIPTION
|
||||
@ -22,7 +22,7 @@
|
||||
|
||||
.SH OPTIONS
|
||||
.PP
|
||||
@@ -144,7 +144,7 @@
|
||||
@@ -144,7 +144,7 @@ Display \fImessage\fP in the labels when offline. The
|
||||
.TP 8
|
||||
.B \-iformat \fIfmt\fP
|
||||
Use string \fIfmt\fP for the inbound label. The \fIfmt\fP string will be displayed
|
||||
|
Loading…
Reference in New Issue
Block a user