=================================================================== RCS file: /cvs/trango/Net-Telnet-Trango/lib/Net/Telnet/Trango.pm,v retrieving revision 1.17 retrieving revision 1.23 diff -u -r1.17 -r1.23 --- trango/Net-Telnet-Trango/lib/Net/Telnet/Trango.pm 2006/09/12 02:17:46 1.17 +++ trango/Net-Telnet-Trango/lib/Net/Telnet/Trango.pm 2007/01/08 22:16:29 1.23 @@ -1,5 +1,5 @@ package Net::Telnet::Trango; -# $RedRiver: Trango.pm,v 1.16 2006/09/07 03:00:07 andrew Exp $ +# $RedRiver: Trango.pm,v 1.21 2006/10/05 17:10:39 andrew Exp $ use strict; use warnings; use base 'Net::Telnet'; @@ -28,7 +28,10 @@ Perl access to the telnet interface on Trango Foxes, SUs and APs. -Another handy feature is that it will parse the output from certain commands that is in the format "[key1] value1 [key2] value2" and put those in a hashref that is returned. This makes using the output from things like sysinfo very easy to do. +Another handy feature is that it will parse the output from certain +commands that is in the format "[key1] value1 [key2] value2" and put +those in a hashref that is returned. This makes using the output from +things like sysinfo very easy to do. =head2 EXPORT @@ -192,7 +195,8 @@ =item login_banner -returns the banner that is displayed when first connected at login. Only set after a successful open() +returns the banner that is displayed when first connected at login. +Only set after a successful open() This is usually only set internally @@ -219,7 +223,9 @@ =head2 COMMANDS -Most of these are just shortcuts to C METHOD)>, as such they accept the same options as C. Specifically they take a named paramater "args", for example: +Most of these are just shortcuts to C METHOD)>, +as such they accept the same options as C. +Specifically they take a named paramater "args", for example: C 'on')> would enable tftpd =over @@ -248,8 +254,8 @@ =item remarks -Takes an optional argument "args => ", which sets the remarks. -If there is no argument, just returns the current remarks. +Takes an optional argument, which sets the remarks. +If there is no argument, returns the current remarks. =item sulog @@ -308,6 +314,7 @@ eth_link => { String => 'eth link', expect => $success }, su_info => { String => 'su info', decode => 'all', expect => $success }, save_ss => { String => 'save ss', expect => $success }, + opmode => { decode => 'all', expect => $success }, # eth r, w and reset??? #su password??? #_bootloader @@ -364,7 +371,9 @@ =item open -Calls Net::Telnet::open() then makes sure you get a password prompt so you are ready to login() and parses the login banner so you can get host_type() and firmware_version() +Calls Net::Telnet::open() then makes sure you get a password prompt so +you are ready to login() and parses the login banner so you can get +host_type() and firmware_version() =cut @@ -398,7 +407,8 @@ =item login -Calls open() if not already connected, then sends the password and sets logged_in() if successful +Calls open() if not already connected, then sends the password and sets +logged_in() if successful =cut @@ -430,7 +440,9 @@ =item parse_login_banner -Takes a login banner (what you get when you first connect to the Trango) or reads what is already in login_banner() then parses it and sets host_type() and firmware_version() as well as login_banner() +Takes a login banner (what you get when you first connect to the Trango) +or reads what is already in login_banner() then parses it and sets +host_type() and firmware_version() as well as login_banner() =cut @@ -458,21 +470,17 @@ =item su_password -C +C If no suid is specified, +the default is "all". =cut sub su_password { my $self = shift; - my $su = shift || '!'; my $new_pass = shift || ''; + my $su = shift || 'all'; - unless (defined $su) { - warn "No su passed!" - #return undef; - } - unless (defined $new_pass) { warn "No new password!" #return undef; @@ -747,23 +755,29 @@ =item cmd -This does most of the work. At the heart, it calls Net::Telnet::cmd() but it also does some special stuff for Trango. +This does most of the work. At the heart, it calls Net::Telnet::cmd() +but it also does some special stuff for Trango. Normally returns the last lines from from the command Also accepts these options: I -- if this is true, then it will send the output lines to _decode_lines() and then returns the decoded output +- if this is true, then it will send the output lines to _decode_lines() +and then returns the decoded output I -- if this is true, it then sets logged_in() to false, then it will close() the connection and then sets is_connected() to false +- if this is true, it then sets logged_in() to false, then it will +close() the connection and then sets is_connected() to false I -- if this is set (usually to 'Success.') it will check for that in the last line of output and if it does not, will return undef because the command probably failed +- if this is set (usually to 'Success.') it will check for that in the +last line of output and if it does not, will return undef because the +command probably failed I -- a string containing the command line options that are passed to the command +- a string containing the command line options that are passed to the +command =cut @@ -892,7 +906,6 @@ if ($c eq '[') { $in_key = 1; $in_val = 0; - $val = ''; } else { $in_key = 0; $in_val = 1; @@ -1037,15 +1050,21 @@ =head1 SEE ALSO -Trango Documentation - http://www.trangobroadband.com/support/product_docs.htm +Trango Documentation - +http://www.trangobroadband.com/support/product_docs.htm L =head1 TODO -There are still a lot of commands that are not accessed directly. If you call them (as cmd("command + args") or whatever) and it works, please send me examples that work and I will try to get it incorporated into the next version of the script. +There are still a lot of commands that are not accessed directly. If +you call them (as cmd("command + args") or whatever) and it works, +please send me examples that work and I will try to get it incorporated +into the next version of the script. -I also want to be able to parse the different types of output from commands like su, sudb all and anything else that would be better available as a perl datastructure. +I also want to be able to parse the different types of output from +commands like su, sudb all and anything else that would be better +available as a perl datastructure. =head1 AUTHOR