#!/usr/bin/perl # by Ricardo Galli (gallir at uib dot es) # This software is licensed under the GNU General Public License use strict; use Net::Telnet; if (scalar @ARGV < 2) { &usage; } my $upload = shift; my $download = shift; my $addr = "127.0.0.1"; my $port = 4000; my $prompt = '/> $/'; my $telnet; my %options; $telnet = new Net::Telnet ( Host => $addr, Port => $port, Prompt => $prompt) or die "Error opening connection"; $telnet->waitfor($prompt); &get_options; print "Old: upload=$options{max_hard_upload_rate}"; print " download=$options{max_hard_download_rate}\n"; &set_option("max_hard_upload_rate", $upload); &set_option("max_hard_download_rate", $download); &get_options; print "New: upload=$options{max_hard_upload_rate}"; print " download=$options{max_hard_download_rate} \n"; # Disconnect $telnet->print('q'); sub get_options { my ($name, $value); my @output = $telnet->cmd('vo'); foreach $_ (@output) { chomp; # Clean ANSI escape sequences s/\x1b\x5b[^\x6d]+\x6d//g; if( ($name, $value) = /([\w\.]+)\W+=\W+([\w\.]+)/) { $options{$name} = $value; } } } sub set_option { my ($name, $value) = @_; $telnet->cmd("set $name $value"); } sub usage { die "Usage:\n\t$0 upload download\n\n"; }