#!/usr/bin/perl -w
#
#

use strict;
use lib '../include';

use Data::Dumper;

use nms qw(switch_connect switch_exec);
#use ios;

#my $t = nms::ios_connect('62.148.36.12', 'c', 'c', 'c');

#print STDERR "No such network 192.168.1.0\n" if nms::ios_getroute($t, "192.168.1.0") == 0;

#nms::ios_close($t);

if ($#ARGV < 1) {
	die "Not enough arguments to zyxelng.pl $#ARGV";
}

my $oldip = $ARGV[0];
my $newip = $ARGV[1];
#$switchname = $ARGV[2];

my $one = 0;

my $switchip;
#$switchip = "87.76.250.226" if $one;
#$switchip = "192.168.2.150" if $one;
#$switchip = "192.168.1.1" unless $one;
$switchip = $oldip;
my $switch = switch_connect($switchip)
	or die "Could not connect to $switchip";

my $cmds1 = <<EOF
sys hostname es-3024
ip igmpsnoop enable
EOF
;

foreach (split(/\n+/, $cmds1)) {
	print "Sending: '$_'\n";
	switch_exec($_, $switch);
}

my $cmd;
#$cmd = "ip ifconfig swif0 192.168.1.1/24" if $one;
#$cmd = "ip ifconfig swif0 192.168.2.150/24" unless $one;
$cmd = "ip ifconfig swif0 $newip/30";

print "Sending '$cmd'\n";
my $pid = fork();
if ($pid == 0) {
	print "Sending ifconfig.. $cmd\n";
	switch_exec($cmd, $switch);
	exit 0;
} else {
	#switch_exec($cmd, $switch, 1);
	print "Sleeping...\n";
	sleep 1;
}
$switch->close();

#print "Reconnecting... ";
##$switchip = "192.168.1.1" if $one;
##$switchip = "192.168.2.150" unless $one;
#$switchip = $newip;
#autoflush STDOUT 1;
#print "Connecting to: $switchip...\n";
#my $i = 1;
#while(1) {
#	$switch = switch_connect($switchip);
#	
#	#print (defined($switch)? $switch : "foo") ." <---- switch\n";
#	if (defined($switch) || $switch) {
#		last;
#	}
#	printf("Waited $i seconds...\r");
#	$i++;
#	sleep 1;
#}
#print "\n";

#print $switch."\n";
#$cmd = "sys sw vlan1q svlan cpu 248";
#print "Sending '$cmd'\n";
#print "XXX: No we did not...";
#print Dumper($switch->cmd("ip ifconfig"));
#print Dumper($switch->cmd("ip route status"));
#switch_exec($cmd, $switch, 1);

