]> git.zerfleddert.de Git - rsbs2/commitdiff
saving/restoring of settings implemented
authorMichael Gernoth <michael@gernoth.net>
Wed, 4 Feb 2009 22:11:10 +0000 (23:11 +0100)
committerMichael Gernoth <michael@gernoth.net>
Wed, 4 Feb 2009 22:11:10 +0000 (23:11 +0100)
rsbs2.pl

index bf0bd9d15fd1c2f1cdec155516d0d44e7e8e15d6..ee813f8f3558861f332022828eb1702fea5bac53 100755 (executable)
--- a/rsbs2.pl
+++ b/rsbs2.pl
@@ -159,6 +159,8 @@ sub _getprop {
 
        my $reqstr='<?xml version="1.0"?><?RMCXML version="1.0"?><RMCSEQ><REQ CMD="propget"><PROPLIST><PROP NAME="'.$property.'"/></PROPLIST></REQ></RMCSEQ>';
        my $resp = _req($reqstr);
 
        my $reqstr='<?xml version="1.0"?><?RMCXML version="1.0"?><RMCSEQ><REQ CMD="propget"><PROPLIST><PROP NAME="'.$property.'"/></PROPLIST></REQ></RMCSEQ>';
        my $resp = _req($reqstr);
+
+       print "get: ${property}\n" if ($verbose);
        
        if ($resp->{RESP}->{RC} ne '0x0') {
                $resp->{RESP}->{RC};
        
        if ($resp->{RESP}->{RC} ne '0x0') {
                $resp->{RESP}->{RC};
@@ -195,7 +197,7 @@ sub setprop {
        if ($res->{RESP}->{RC} ne '0x0') {
                print "Error setting ${property} to ${value}: ".$res->{RESP}->{RC}."\n";
        } else {
        if ($res->{RESP}->{RC} ne '0x0') {
                print "Error setting ${property} to ${value}: ".$res->{RESP}->{RC}."\n";
        } else {
-               print "${property}: ${oldval} -> ${value}\n" if ($verbose);
+               print "${property}: ${oldval} -> ${value}\n";
        }
 }
 
        }
 }
 
@@ -430,7 +432,7 @@ while (defined($ARGV[0])) {
        }
 }
 
        }
 }
 
-if (!defined(${$Config{$hostalias}}{'host'})) {
+if ($valid_arg && (!defined(${$Config{$hostalias}}{'host'}))) {
        $valid_arg = 0;
 }
 
        $valid_arg = 0;
 }
 
@@ -483,11 +485,29 @@ if (@sprop) {
 }
 
 if ($save ne '') {
 }
 
 if ($save ne '') {
-       print "save: implement me!\n";
+       my @dontsave = qw(ENABLE_LAN_AUTONEG ENABLE_LAN_100 ENABLE_LAN_FDUPLEX GATEWAY
+               IP_ADDRESS NETMASK TFTP_FIRMWARE_FILE TFTP_ADDR_FIRMWARE ENABLE_DHCP);
+
+       open (SAVEFILE, ">${save}") || die "Error opening save-file: $!\n";
+       foreach my $ts (@fw_vars) {
+               next if (grep(/^${ts}$/, @dontsave));
+
+               my $phash = _getprop($ts)->{RESP}->{PROPLIST}->{PROP};
+               next if ($phash->{PERMS} ne 'RW');
+               
+               print SAVEFILE "${ts}=".$phash->{VAL}."\n";
+       }
+       close(SAVEFILE);
 }
 
 if ($load ne '') {
 }
 
 if ($load ne '') {
-       print "load: implement me!\n";
+       open (LOADFILE, "<${load}") || die "Error opening load-file: $!\n";
+       while(<LOADFILE>) {
+               chomp;
+               (my $p, my $v) = split(/=/, $_);
+               setprop($p, $v);
+       }
+       close(LOADFILE);
 }
 
 if ($enable_debug ne '') {
 }
 
 if ($enable_debug ne '') {
Impressum, Datenschutz