X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=bin%2FBackupPC_restore;h=3bc3d6001dc1667f4fae82696a724e7dc819dc4c;hp=8af7550d4f1c1f0f792ac9d26aea53ea93a96cdf;hb=c615e1bfc6f2b0604a2658996f5dd6b6cfa9469c;hpb=df717077755b9331fa245f72933ef03add7a3710 diff --git a/bin/BackupPC_restore b/bin/BackupPC_restore index 8af7550..3bc3d60 100755 --- a/bin/BackupPC_restore +++ b/bin/BackupPC_restore @@ -1,4 +1,4 @@ -#!/bin/perl +#!/usr/bin/perl #============================================================= -*-perl-*- # # BackupPC_restore: Restore files to a client. @@ -11,7 +11,7 @@ # Craig Barratt # # COPYRIGHT -# Copyright (C) 2001-2003 Craig Barratt +# 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 @@ -29,7 +29,7 @@ # #======================================================================== # -# Version 3.0.0beta1, released 30 Jul 2006. +# Version 3.2.0, released 31 Jul 2010. # # See http://backuppc.sourceforge.net. # @@ -40,10 +40,7 @@ no utf8; use lib "/usr/local/BackupPC/lib"; use BackupPC::Lib; use BackupPC::FileZIO; -use BackupPC::Xfer::Smb; -use BackupPC::Xfer::Tar; -use BackupPC::Xfer::Rsync; -use BackupPC::Xfer::BackupPCd; +use BackupPC::Xfer; use Socket; use File::Path; @@ -236,37 +233,14 @@ if ( $? && $Conf{UserCmdCheckStatus} ) { } $NeedPostCmd = 1; -if ( $Conf{XferMethod} eq "tar" ) { - # - # Use tar (eg: tar/ssh) as the transport program. - # - $xfer = BackupPC::Xfer::Tar->new($bpc); -} elsif ( $Conf{XferMethod} eq "rsync" || $Conf{XferMethod} eq "rsyncd" ) { - # - # Use rsync as the transport program. - # - if ( !defined($xfer = BackupPC::Xfer::Rsync->new($bpc)) ) { - my $errStr = BackupPC::Xfer::Rsync->errStr; - UserCommandRun("RestorePostUserCmd") if ( $NeedPostCmd ); - $stat{hostError} = $errStr; - exit(RestoreCleanup($client)); - } -} elsif ( $Conf{XferMethod} eq "backuppcd" ) { - # - # Use backuppcd as the transport program. - # - if ( !defined($xfer = BackupPC::Xfer::BackupPCd->new($bpc)) ) { - my $errStr = BackupPC::Xfer::BackupPCd->errStr; - UserCommandRun("RestorePostUserCmd") if ( $NeedPostCmd ); - $stat{hostError} = $errStr; - exit(RestoreCleanup($client)); - } -} else { - # - # Default is to use smbclient (smb) as the transport program. - # - $xfer = BackupPC::Xfer::Smb->new($bpc); +$xfer = BackupPC::Xfer::create($Conf{XferMethod}, $bpc); +if ( !defined($xfer) ) { + my $errStr = BackupPC::Xfer::errStr(); + UserCommandRun("RestorePostUserCmd") if ( $NeedPostCmd ); + $stat{hostError} = $errStr; + exit(RestoreCleanup($client)); } + my $useTar = $xfer->useTar; if ( $useTar ) { @@ -487,7 +461,7 @@ sub CorrectHostCheck || $Conf{NmbLookupCmd} eq "" ); my($netBiosHost, $netBiosUser) = $bpc->NetBiosInfoGet($hostIP); return "host $host has mismatching netbios name $netBiosHost" - if ( $netBiosHost ne $host ); + if ( lc($netBiosHost) ne lc(substr($host, 0, 15)) ); return; }