X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fnms.pm;h=b55314d16b64e83769b2b01faadabbda7ab6c802;hb=HEAD;hp=0c0d7541be2371bcc6e9f280acbe41de85a584c6;hpb=b672cfbe4808f8bea17c32311ab2442bb22407e5;p=nms diff --git a/include/nms.pm b/include/nms.pm index 0c0d754..b55314d 100644 --- a/include/nms.pm +++ b/include/nms.pm @@ -5,6 +5,10 @@ use DBI; use Net::Telnet; package nms; + +use base 'Exporter'; +our @EXPORT = qw(switch_connect switch_exec); + BEGIN { require "config.pm"; eval { @@ -25,10 +29,11 @@ sub db_connect { sub switch_connect($) { my ($ip) = @_; -# Dump_Log => '/tmp/dumplog-queue', my $conn = new Net::Telnet( Timeout => $nms::config::telnet_timeout, +# Dump_Log => '/tmp/dumplog-queue', Errmode => 'return', - Prompt => '/(es3024|e\d+\-\dsw)>/i'); +# Prompt => '/ES-3023>/'); + Prompt => '/(ES-3024|e\d{1,2}\-\dsw)>/i'); my $ret = $conn->open( Host => $ip); if (!$ret || $ret != 1) { return (undef); @@ -45,11 +50,17 @@ sub switch_connect($) { } # Send a command to switch and return the data recvied from the switch -sub switch_exec($$) { - my ($cmd, $conn) = @_; +sub switch_exec { + my ($cmd, $conn, $print) = @_; # Send the command and get data from switch - my @data = $conn->cmd($cmd); + my @data; + if (defined($print)) { + $conn->print($cmd); + return; + } else { + @data = $conn->cmd($cmd); + } my @lines = (); foreach my $line (@data) { # Remove escape-7 sequence