]> git.zerfleddert.de Git - rsbs2/blobdiff - rsbs2.pl
retrieve userlist, so user properties can bes saved and restored, too
[rsbs2] / rsbs2.pl
index 2d7ec2a9ec8f7d0db9fe6088051073991e87a73c..3b752c21187832fe1312c7479f5f4a989a6cbbda 100755 (executable)
--- a/rsbs2.pl
+++ b/rsbs2.pl
@@ -151,7 +151,7 @@ sub _req {
        $request->content($xml);
        $response = $ua->request($request);
        die("Error in request: " . $response->status_line . "\n") unless ($response->is_success);
-       XMLin($response->content);
+       XMLin($response->content, SuppressEmpty => '');
 }
 
 sub _getprop {
@@ -279,6 +279,22 @@ sub show_all_vars {
        }
 }
 
+sub usrlist {
+       my $reqstr = '<?XML version="1.0"?><?RMCXML version="1.0"?><RMCSEQ><REQ CMD="usrlist"></REQ></RMCSEQ>';
+       my $res = _req($reqstr);
+       my @users = ();
+
+       if ($res->{RESP}->{RC} ne '0x0') {
+               print "FAILED:".$res->{RESP}->{RC}."\n";
+               ();
+       } else {
+               foreach my $usr (@{$res->{RESP}->{USRLIST}->{USER}}) {
+                       push @users, $usr->{NAME};
+               }
+       }
+       @users;
+}
+
 sub syslog_debug {
        my $destination_ip = shift;
        my $bcast = shift;
@@ -492,12 +508,7 @@ if (@sprop) {
 if ($save ne '') {
        my @dontsave = qw(ENABLE_LAN_AUTONEG ENABLE_LAN_100 ENABLE_LAN_FDUPLEX
        GATEWAY IP_ADDRESS NETMASK TFTP_FIRMWARE_FILE TFTP_ADDR_FIRMWARE
-       ENABLE_DHCP HELP_LOCATION HELP_LOCATION PPP_PORT PPP2_INIT PPP2_PORT
-       SERVER_ID SNMP_SERVER_1 SNMP_SERVER_2 SNMP_SERVER_3 SNMP_SERVER_4
-       SNMP_SERVER_5 SNMP_SERVER_6 SNMP_SERVER_7 SERVER_AD_NAME
-       SERVER_AD_NAME2 SERVER_AD_NAME3 SERVER_AD_NAME4 SERVER_MAC_ADDRESS
-       SERVER_MAC_ADDRESS2 SERVER_MAC_ADDRESS3 SERVER_MAC_ADDRESS4
-       MAC_ADDRESS LAST_CARD_NAME LAST_ENABLE_DHCP LAST_GATEWAY
+       ENABLE_DHCP MAC_ADDRESS LAST_CARD_NAME LAST_ENABLE_DHCP LAST_GATEWAY
        LAST_IP_ADDRESS LAST_NETMASK);
 
        open (SAVEFILE, ">${save}") || die "Error opening save-file: $!\n";
@@ -511,6 +522,9 @@ if ($save ne '') {
                print SAVEFILE "${ts}=".$phash->{VAL}."\n";
                print STDERR "." if (!$verbose);
        }
+       foreach my $usr (usrlist()) {
+               print STDERR "TODO: save user ${usr}\n";
+       }
        close(SAVEFILE);
        print STDERR "done\n" if (!$verbose);
 }
Impressum, Datenschutz