On 2012-10-25 21:42 +0200, Mark Przepiora wrote:

> To anyone still dealing with this issue,
>
> I have patched the backup-manager-upload script to use Net::SFTP::Foreign
> instead of Net::FTP::Lite.
>
> Patch here: http://mark.przepiora.ca/public/backup-manager-upload.patch

Thanks, I'm attaching it to this mail so it does not get lost.

> This fixes the (highly annoying!) problem.

Unfortunately I don't use this particular feature of backup-manager so
I cannot test your patch.  But maybe my esteemed co-maintainer (CC'ed)
can comment on it.

Cheers,
       Sven

--- /usr/bin/backup-manager-upload.orig 2012-10-25 11:19:18.281633512 -0600
+++ /usr/bin/backup-manager-upload      2012-10-25 11:48:48.743356415 -0600
@@ -382,12 +382,7 @@
     my ($fh, $filename) = get_tempfile('ftp-archives-XXXXXX');
     my $BM_UPLOAD_FTP_SECURE = $ENV{"BM_UPLOAD_FTP_SECURE"};
     my $ra_files;
-    if ($BM_UPLOAD_FTP_SECURE eq "true") {
-               $ra_files = $ftp->list();
-    }
-    else {
-               $ra_files = $ftp->ls();
-    }
+    $ra_files = $ftp->ls();
     foreach my $file (@$ra_files) {
         print $fh "$file\n";
     }
@@ -448,22 +443,22 @@
     return $ftp;
 }
 
-sub ftptls_connect_to_host ($)
+sub ftptls_connect_to_host ($$$$)
 {
-    my ($host) = @_;
+    my ($host, $user, $passwd, $repository) = @_;
     my $ftp;
 
-    eval "use Net::Lite::FTP";
+    eval "use Net::SFTP::Foreign";
     if ($@) {
-        print_error "Net::Lite::FTP is not available, cannot use ftp secured 
transfer mode";
+        print_error "Net::SFTP::Foreign is not available, cannot use ftp 
secured transfer mode";
         return undef;
     }
     eval {
-        $ftp = Net::Lite::FTP->new ();
-        $ftp->open ($host, "21");
+        $ftp = Net::SFTP::Foreign->new ($host, user => $user, password => 
$passwd);
+        # $ftp->open ($host, "21");
     };
     if ($@) {
-        print_error "Unable to use the Net::Lite::FTP Perl module : $@";
+        print_error "Unable to use the Net::SFTP::Foreign Perl module : $@";
         return undef;
     }
     return $ftp;
@@ -513,7 +508,7 @@
         
         # The FTP over TLS transfer mode
         if ($BM_UPLOAD_FTP_SECURE) {
-               $ftp = ftptls_connect_to_host ($host);
+               $ftp = ftptls_connect_to_host ($host, $user, $passwd, 
$repository);
             unless (defined $ftp) {
                 print_error "Unable to connect to host: $host";
                 return FALSE;
@@ -565,7 +560,9 @@
             }
         }
         print_info "All transfers done, loging out from $host\n";
-        $ftp->quit;
+        if (! $BM_UPLOAD_FTP_SECURE) {
+            $ftp->quit;
+        }
        }       
     return TRUE;
 }
@@ -581,9 +578,7 @@
 sub ftptls_login ($$$$)
 {
     my ($ftp, $user, $passwd, $repository) = @_;
-    return ($ftp->user($user) and
-            $ftp->pass($passwd) and
-            $ftp->cwd($repository));
+    return ($ftp->setcwd($repository));
 }
 
 
@@ -597,7 +592,7 @@
 {
     my ($ftp, $file) = @_;
     my $basename = basename ($file);
-    return $ftp->put ($basename, $file);
+    return $ftp->put ($file, $basename);
 }
 
 # }}}

Reply via email to