use Net::Telnet;
package nms;
+
+use base 'Exporter';
+our @EXPORT = qw(switch_connect switch_exec);
+
BEGIN {
require "config.pm";
eval {
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);
# Password => $password);
$conn->cmd($nms::config::zyxel_password);
# Get rid of banner
- $conn->get;
+ #$conn->get;
return ($conn);
}
+# Send a command to switch and return the data recvied from the switch
+sub switch_exec {
+ my ($cmd, $conn, $print) = @_;
+
+ # Send the command and get data from switch
+ my @data;
+ if (defined($print)) {
+ $conn->print($cmd);
+ return;
+ } else {
+ @data = $conn->cmd($cmd);
+ }
+ my @lines = ();
+ foreach my $line (@data) {
+ # Remove escape-7 sequence
+ $line =~ s/\x1b\x37//g;
+ push (@lines, $line);
+ }
+
+ return @lines;
+}
+
1;