Package: ethstatus
Version: 0.4.5
Severity: wishlist
Tags: patch

Dear Maintainer,

I am using ethtool since years, but a slightly modified version - with the
latest update to Debian Unstable I was reminded what the original is
missing, and thought that I should submit my changes.

1.
Allow longer network interface names (bug #803663):

diff -ur ethstatus-0.4.5/ethstatus.c ethstatus-0.4.5+sdinetH1/ethstatus.c
--- ethstatus-0.4.5/ethstatus.c 2006-10-20 00:09:56.000000000 +0200
+++ ethstatus-0.4.5+sdinetH1/ethstatus.c        2016-03-21 20:16:05.983431525 
+0100
@@ -636,7 +644,7 @@
                                break;
 
                        case 'i':
-                               if(strlen(optarg) > 5)
+                               if(strlen(optarg) > IFNAMSIZ)
                                {
                                        show_usage(argv[0]);
                                        exit(10);


2.
ethstatus needs a huge amount of CPU, and especially required lots of
bandwidth when used over ssh - restrict the screen updates to every
1/2 second:

diff -ur ethstatus-0.4.5/ethstatus.c ethstatus-0.4.5+sdinetH1/ethstatus.c
--- ethstatus-0.4.5/ethstatus.c 2006-10-20 00:09:56.000000000 +0200
+++ ethstatus-0.4.5+sdinetH1/ethstatus.c        2016-03-21 20:16:05.983431525 
+0100
@@ -813,10 +821,10 @@
              update_stat(0);
              sec_value = localt.tm_sec;
           }
-        usleep(10L); 
+        usleep(500000L);
       }
       else
-       usleep(100000L);
+        sleep(1);
       
       key_pressed = getch();
       if(key_pressed != ERR && tolower(key_pressed) == 'q')


3.
Show the currently used RX and TX bandwidth separately, not only the
summary:

diff -ur ethstatus-0.4.5/ethstatus.c ethstatus-0.4.5+sdinetH1/ethstatus.c
--- ethstatus-0.4.5/ethstatus.c 2006-10-20 00:09:56.000000000 +0200
+++ ethstatus-0.4.5+sdinetH1/ethstatus.c        2016-03-21 20:16:05.983431525 
+0100
@@ -76,7 +76,7 @@
    if(display)
      {
        chcolor(colors.data[0], colors.data[1]);
-       mvprintw(17, 27, "%s", stats.ip_addr_rtrn);
+       mvprintw(18, 27, "%s", stats.ip_addr_rtrn);
        refresh();
      }
 }
@@ -107,16 +107,16 @@
                  stats.email++; 
             }
           if(stats.email < 10)
-            mvprintw(17, 65, "0%d         ", stats.email);
+            mvprintw(18, 65, "0%d         ", stats.email);
           else
-            mvprintw(17, 65, "%d           ", stats.email);
+            mvprintw(18, 65, "%d           ", stats.email);
           fclose(email_box);
        }
       else
-       mvprintw(17, 65, "Can't check");
+       mvprintw(18, 65, "Can't check");
    }
    else
-     mvprintw(17, 65, "00         ");
+     mvprintw(18, 65, "00         ");
    refresh();
 }
 
@@ -216,23 +216,23 @@
 void update_info(void)
 {
    chcolor(colors.data[0] ,colors.data[1]);
-   mvprintw(20, 27, "%.0f", stats.rx_packets[0]);
-   mvprintw(20, 65, "%.0f", stats.tx_packets[0]);
-   mvprintw(22, 27, "%ld", stats.rx_errors[0]);
-   mvprintw(22, 65, "%ld", stats.tx_errors[0]);
+   mvprintw(21, 27, "%.0f", stats.rx_packets[0]);
+   mvprintw(21, 65, "%.0f", stats.tx_packets[0]);
+   mvprintw(23, 27, "%ld", stats.rx_errors[0]);
+   mvprintw(23, 65, "%ld", stats.tx_errors[0]);
 
        /* Calculate the measures automagically */
    chcolor(colors.labels[0], colors.labels[1]);
        autoscale(autoscalebytes, stats.rx_bytes[0]);
-       mvprintw(21, 6, "Received:                        ");
+       mvprintw(22, 6, "Received:                        ");
        chcolor(colors.data[0], colors.data[1]);
-       mvprintw(21, 27, "%sB", autoscalebytes);
+       mvprintw(22, 27, "%sB", autoscalebytes);
 
    chcolor(colors.labels[0], colors.labels[1]);
        autoscale(autoscalebytes, stats.tx_bytes[0]);
-       mvprintw(21,41, "Transmitted:                        ");
+       mvprintw(22,41, "Transmitted:                        ");
        chcolor(colors.data[0], colors.data[1]);
-       mvprintw(21, 65, "%sB", autoscalebytes);
+       mvprintw(22, 65, "%sB", autoscalebytes);
 }
 
 /*-------------------------------------------------------------------------*
@@ -241,16 +241,16 @@
 void clear_info(void)
 {
    chcolor(colors.background ,0);
-   mvprintw(19, 65, "   ");
-   mvprintw(19, 27, "            ");
+   mvprintw(20, 65, "   ");
    mvprintw(20, 27, "            ");
-   mvprintw(20, 65, "              ");
-   mvprintw(22, 27, "            ");
-   mvprintw(22, 65, "              ");
    mvprintw(21, 27, "            ");
    mvprintw(21, 65, "              ");
-   mvprintw(16, 22, "               ");
-   mvprintw(17, 27, "            ");
+   mvprintw(23, 27, "            ");
+   mvprintw(23, 65, "              ");
+   mvprintw(22, 27, "            ");
+   mvprintw(22, 65, "              ");
+   mvprintw(17, 22, "               ");
+   mvprintw(18, 27, "            ");
 }
 
 
@@ -391,27 +391,35 @@
    pps[1] = (stats.tx_packets[0] - stats.tx_packets_comp[1]);
    
    /* ks variable gets the speed in k/s of the connection */
+   ks = (float)(bps[0]);
+   ks /= 1024;
+   ps = pps[0];
+   autoscale(autoscalebytes, ks * 1024);
+   center(14, " RX %9sB/s   %4d Packets/s", autoscalebytes, ps);
+
+   ks = (float)(bps[1]);
+   ks /= 1024;
+   ps = pps[1];
+   autoscale(autoscalebytes, ks * 1024);
+   center(15, " TX %9sB/s   %4d Packets/s", autoscalebytes, ps);
+
    ks = (float)(bps[0] + bps[1]);
    ks /= 1024;
    ps = pps[0] + pps[1];
-   
-       autoscale(autoscalebytes, ks * 1024);
-   center(14, "%sB/s   %d Packets/s", autoscalebytes, ps);
-       /*
-   center(14, "%.2f KB/s   %d Packets/s", ks, ps);
-       */
+   autoscale(autoscalebytes, ks * 1024);
+   center(16, "SUM %9sB/s   %4d Packets/s", autoscalebytes, ps);
 
    if(ks > stats.top_speed)
      {
-       mvprintw(19, 27, "             ");
-       mvprintw(19, 27, "%sB/s", autoscalebytes);
+       mvprintw(20, 27, "             ");
+       mvprintw(20, 27, "%sB/s", autoscalebytes);
        /* mvprintw(19, 27, "%.2f KB/s", ks); */
        stats.top_speed = ks;
      }
    if(ps > stats.top_packet)
      {
-       mvprintw(19, 65, "             ");
-       mvprintw(19, 65, "%d", ps);
+       mvprintw(20, 65, "             ");
+       mvprintw(20, 65, "%d", ps);
        stats.top_packet = ps;
      }
    stats.rx_bytes_comp = stats.rx_bytes[0];
@@ -566,34 +574,34 @@
    /*center(24, ".Author : Gabriel Montenegro 
<johnpetru...@users.sourceforge.net>.");*/
    refresh();
    chcolor(colors.labels[0], colors.labels[1]);
-   mvprintw(17, 6,"IP Address:");
+   mvprintw(18, 6,"IP Address:");
        /*
    if(check)
-     mvprintw(17, 41, "New email(s):");
+     mvprintw(18, 41, "New email(s):");
          */
-   mvprintw(20, 6, "Received Packets:");
-   mvprintw(22, 6, "Errors on Receiving:");
-   mvprintw(20, 41,"Transmited Packets:");
-   mvprintw(22, 41,"Errors on Transmission:");
+   mvprintw(21, 6, "Received Packets:");
+   mvprintw(23, 6, "Errors on Receiving:");
+   mvprintw(21, 41,"Transmited Packets:");
+   mvprintw(23, 41,"Errors on Transmission:");
    mvprintw(13, 37,"RX");
    mvprintw(13, 41,"TX");
-   mvprintw(18, 6,"Interface name:");
-   mvprintw(18, 41, "Graphic Using Speed:");
+   mvprintw(19, 6,"Interface name:");
+   mvprintw(19, 41, "Graphic Using Speed:");
    mvprintw(13, 9, "ON/OFF"); 
-   mvprintw(19, 6, "Top Speed:");
-   mvprintw(19, 41, "Top Packets/s:");
+   mvprintw(20, 6, "Top Speed:");
+   mvprintw(20, 41, "Top Packets/s:");
    refresh();
    chcolor(colors.version[0], colors.version[1]);
    mvprintw(00, 31,".EthStatus v" VERSION ".");
    refresh();
    chcolor(colors.data[0], colors.data[1]);
-   mvprintw(18, 27, "%s", interface);
+   mvprintw(19, 27, "%s", interface);
        /* technically incorrect - should be 1024 */
        autoscale(autoscalebytes, SPEED[0] * (double) 1000 );
-   mvprintw(18, 65, "%sB/s", autoscalebytes);
-   mvprintw(19, 27, "0.00 KB/s");
-   mvprintw(19, 65, "0");
-   refresh(); 
+   mvprintw(19, 65, "%sB/s", autoscalebytes);
+   mvprintw(20, 27, "0.00 KB/s");
+   mvprintw(20, 65, "0");
+   refresh();
 }
 
 
Thanks for considering these,
Sven-Haegar


-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable'), (101, 'experimental')
Architecture: i386 (x86_64)
Foreign Architectures: amd64

Kernel: Linux 4.3.0-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)

Versions of packages ethstatus depends on:
ii  libc6        2.22-3
ii  libncurses5  6.0+20160213-1
ii  libtinfo5    6.0+20160213-1

ethstatus recommends no packages.

ethstatus suggests no packages.

-- no debconf information

Reply via email to