Output Net::FTP messages in RemoteAccount.pm user/dyrcona/edi-robustification
authorJason Stephenson <jason@sigio.com>
Tue, 9 Jul 2019 18:10:00 +0000 (14:10 -0400)
committerJason Stephenson <jason@sigio.com>
Thu, 11 Jul 2019 12:24:47 +0000 (08:24 -0400)
Fix the code in RemoteAccount.pm so that Net::FTP messages are
actually output to the logs.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Open-ILS/src/perlmods/lib/OpenILS/Utils/RemoteAccount.pm

index b4a8f1e..d849a8c 100644 (file)
@@ -552,7 +552,7 @@ sub _ftp {
     unless ($ftp) {
         $logger->error(
             $self->_error(
-                "new Net::FTP('" . $self->remote_host . ", ...) FAILED: $@"
+                "new Net::FTP('" . $self->remote_host . ", ...) FAILED: " . $ftp->message
             )
         );
         return;
@@ -569,7 +569,7 @@ sub _ftp {
         $logger->error(
             $self->_error(
                 "failed login to", $self->remote_host, "w/ args(" .
-                join(',', @login_args) . ") : $@"
+                join(',', @login_args) . ") : " . $ftp->message
             )
         ); # XXX later, maybe keep passwords out of the logs?
         return;
@@ -585,7 +585,7 @@ sub put_ftp {
     if ($@ or not $filename) {
         $logger->error(
             $self->_error(
-                "put to", $self->remote_host, "failed with error: $@"
+                "put to", $self->remote_host, "failed with error: " . $self->_ftp->message
             )
         );
         return;
@@ -610,7 +610,7 @@ sub get_ftp {
     if ($@ or not $filename) {
         $logger->error(
             $self->_error(
-                "get from", $self->remote_host, "failed with error: $@"
+                "get from", $self->remote_host, "failed with error: " . $self->_ftp->message
             )
         );
         return;
@@ -646,10 +646,10 @@ sub ls_ftp {   # returns full path like: dir/path/file.ext
         my $dirtarget = $dirpath || $_;
         $dirtarget =~ s/\/+$//;
         eval { @part = $self->_ftp->ls($dirtarget) };      # this ls returns relative/path/filenames.  defer filename glob filtering for below.
-        if ($@) {
+        if ($@ or !@part) {
             $logger->error(
                 $self->_error(
-                    "ls from",  $self->remote_host, "failed with error: $@"
+                    "ls from",  $self->remote_host, "failed with error: " . $self->_ftp->message
                 )
             );
             next;