summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorpbuetow <puppet@mx.buetow.org>2012-07-04 18:28:13 +0200
committerpbuetow <puppet@mx.buetow.org>2012-07-04 18:28:13 +0200
commit103ed622771688896728372f40997016aade144e (patch)
tree1807b2fbd32b6153318c591267ebe2dba8331410 /lib
parent30de92afbd65755536946b470d7ba225da78a68f (diff)
:
Diffstat (limited to 'lib')
-rw-r--r--lib/Loadbars/HelpDispatch.pm11
-rw-r--r--lib/Loadbars/Main.pm68
2 files changed, 60 insertions, 19 deletions
diff --git a/lib/Loadbars/HelpDispatch.pm b/lib/Loadbars/HelpDispatch.pm
index 3ea0bdb..97216e2 100644
--- a/lib/Loadbars/HelpDispatch.pm
+++ b/lib/Loadbars/HelpDispatch.pm
@@ -103,6 +103,9 @@ END
mode => 6,
type => 's'
},
+ netint_hot =>
+ { menupos => 17, cmd => 'n', help => 'Iterate to next net interface', mode => 1 },
+
netlink => {
menupos => 6,
help =>
@@ -113,14 +116,14 @@ END
netlink_hot_up => {
menupos => 9,
cmd => 'f',
- help => 'Doubles net interface link speed reference',
- mode => 1
+ help => 'Doubles net interface link speed reference',
+ mode => 1
},
netlink_hot_dn => {
menupos => 10,
cmd => 'v',
- help => 'Halfs net interface link speed reference',
- mode => 1
+ help => 'Halfs net interface link speed reference',
+ mode => 1
},
barwidth => {
diff --git a/lib/Loadbars/Main.pm b/lib/Loadbars/Main.pm
index e607573..e464059 100644
--- a/lib/Loadbars/Main.pm
+++ b/lib/Loadbars/Main.pm
@@ -307,6 +307,32 @@ sub net_link () {
return $linkspeed;
}
+sub net_next_int ($;$) {
+ my ( $num, $initial_device_flag ) = @_;
+ my $int = undef;
+
+ for ( ; ; ) {
+ my @ints = sort keys %NETSTATS_INT;
+ $int = $ints[ int( $num % @ints ) ] if @ints;
+
+ unless ( defined $int ) {
+ sleep 0.1;
+ next;
+ }
+
+ # On startup dont show a loopback device net interface
+ if ( defined $initial_device_flag && $int =~ /^lo/ ) {
+ $num++;
+ sleep 0.1;
+ next;
+ }
+
+ last;
+ }
+
+ return $int;
+}
+
sub net_parse ($) {
my ($line_r) = shift;
my ( $a, $b ) = split ' ', $$line_r;
@@ -440,6 +466,7 @@ sub loop ($@) {
my %net_history_stamps;
my %net_last_value;
my $net_int_number = 0;
+ my $net_int = net_next_int $net_int_number, 1;
my $net_max_bytes = net_link;
@@ -477,10 +504,12 @@ sub loop ($@) {
}
elsif ( $key_name eq '3' ) {
$C{shownet} = !$C{shownet};
- $net_int_number = 0;
display_info "Toggled show net $C{shownet}";
- display_info "Net interface speed reference is " . ($net_max_bytes / $I{bytes_mbit}) . 'mbit/s' if $C{shownet};
- }
+ display_info "Net interface speed reference is "
+ . ( $net_max_bytes / $I{bytes_mbit} )
+ . 'mbit/s'
+ if $C{shownet};
+ }
elsif ( $key_name eq 'e' ) {
$C{extended} = !$C{extended};
@@ -495,13 +524,19 @@ sub loop ($@) {
}
elsif ( $key_name eq 'm' ) {
- display_warn "Toggled show mem hotkey 'm' is deprecated. Please use '2' hotkey instead";
-
+ display_warn
+"Toggled show mem hotkey 'm' is deprecated. Please use '2' hotkey instead";
}
- elsif ( $key_name eq 'h' ) {
- ++$net_int_number;
- display_info "Using next net interface. To reset press '3' hotkey twice";
+ elsif ( $key_name eq 'n' ) {
+ if ( $C{shownet} ) {
+ $net_int = net_next_int ++$net_int_number;
+ display_info "Using net interface which is $net_int";
+ }
+ else {
+ display_warn
+"Net stats are not activated. Press '3' hotkey to activate first";
+ }
}
elsif ( $key_name eq 't' ) {
@@ -560,11 +595,15 @@ sub loop ($@) {
}
elsif ( $key_name eq 'f' ) {
$net_max_bytes *= 2;
- display_info "Set net interface speed reference to " . ($net_max_bytes / $I{bytes_mbit}) . 'mbit/s';
+ display_info "Set net interface speed reference to "
+ . ( $net_max_bytes / $I{bytes_mbit} )
+ . 'mbit/s';
}
- elsif ( $key_name eq 'v') {
- $net_max_bytes = int($net_max_bytes / 2);
- display_info "Set net interface speed reference to " . ($net_max_bytes / $I{bytes_mbit}) . 'mbit/s';
+ elsif ( $key_name eq 'v' ) {
+ $net_max_bytes = int( $net_max_bytes / 2 );
+ display_info "Set net interface speed reference to "
+ . ( $net_max_bytes / $I{bytes_mbit} )
+ . 'mbit/s';
}
elsif ( $key_name eq 'left' ) {
@@ -807,8 +846,7 @@ sub loop ($@) {
if ( $C{shownet} && exists $NETSTATS_HAS{$host} ) {
$add_x += $width + 1;
- my $int = $C{netint};
- my $key = "$host;$int";
+ my $key = "$host;$net_int";
if ( exists $NETSTATS{$key} ) {
@@ -902,7 +940,7 @@ sub loop ($@) {
if ( $C{showtext} ) {
my $y_ = 5;
- $app->print( $x + $add_x, $y_, $int );
+ $app->print( $x + $add_x, $y_, $net_int );
$app->print( $x + $add_x,
$y_ += $sdl_font_height, 'Rxb:' );
$app->print(