# Paul Mantz <pcmantz@zmanda.com>
#
# COPYRIGHT
-# Copyright (C) 2008 Zmanda
+# Copyright (C) 2001-2009 Craig Barratt
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
#
#========================================================================
#
-# Version 3.1.0+
+# Version 3.2.0beta0, released 5 April 2009
#
# See http://backuppc.sourceforge.net.
#
use Encode qw/from_to encode/;
use BackupPC::Xfer::Archive;
-use BackupPC::Xfer::BackupPCd;
use BackupPC::Xfer::Ftp;
use BackupPC::Xfer::Protocol;
use BackupPC::Xfer::Rsync;
$errStr = BackupPC::Xfer::Archive::errStr() if ( !defined($xfer) );
return $xfer;
- } elsif ( $protocol eq 'backuppcd' ) {
-
- $xfer = BackupPC::Xfer::BackupPCd->new( $bpc, $args );
- $errStr = BackupPC::Xfer::BackupPCd::errStr() if ( !defined($xfer) );
- return $xfer;
-
} elsif ( $protocol eq 'ftp' ) {
$xfer = BackupPC::Xfer::Ftp->new( $bpc, $args );
} elsif ( $conf->{XferMethod} eq "rsync" || $conf->{XferMethod} eq "rsyncd" ) {
$ShareNames = $conf->{RsyncShareName};
- } elsif ( $conf->{XferMethod} eq "backuppcd" ) {
- $ShareNames = $conf->{BackupPCdShareName};
-
} elsif ( $conf->{XferMethod} eq "smb" ) {
$ShareNames = $conf->{SmbShareName};
return $ShareNames;
}
+
+sub getRestoreCmd
+{
+ my($conf) = @_;
+ my $restoreCmd;
+
+ if ( $conf->{XferMethod} eq "archive" ) {
+ $restoreCmd = undef;
+
+ } elsif ( $conf->{XferMethod} eq "ftp" ) {
+ $restoreCmd = undef;
+
+ } elsif ( $conf->{XferMethod} eq "rsync"
+ || $conf->{XferMethod} eq "rsyncd" ) {
+ $restoreCmd = $conf->{RsyncRestoreArgs};
+
+ } elsif ( $conf->{XferMethod} eq "tar" ) {
+ $restoreCmd = $conf->{TarClientRestoreCmd};
+
+ } elsif ( $conf->{XferMethod} eq "smb" ) {
+ $restoreCmd = $conf->{SmbClientRestoreCmd};
+
+ } else {
+
+ #
+ # protocol unrecognized
+ #
+ $restoreCmd = undef;
+ }
+ return $restoreCmd;
+}
+
+
+sub restoreEnabled
+{
+ my($conf) = @_;
+ my $restoreCmd;
+
+ if ( $conf->{XferMethod} eq "archive" ) {
+ return;
+
+ } elsif ( $conf->{XferMethod} eq "ftp" ) {
+ return !!( $conf->{FtpRestoreEnabled} );
+
+ } elsif ( $conf->{XferMethod} eq "rsync"
+ || $conf->{XferMethod} eq "rsyncd"
+ || $conf->{XferMethod} eq "tar"
+ || $conf->{XferMethod} eq "smb" ) {
+ $restoreCmd = getRestoreCmd( $conf );
+ return !!(
+ ref $restoreCmd eq "ARRAY"
+ ? @$restoreCmd
+ : $restoreCmd ne ""
+ );
+
+ } else {
+ return;
+ }
+}
+
+
sub errStr
{
return $errStr;