X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fupload_target.pm;h=af2dcb13446e5b8412d99c7953e0917ff7c1439d;hp=f3486d393efd4d34c932f45ae92f1148a31f7ca8;hb=3adb46fccf9f631e188ea5383bd147b340477639;hpb=3d0a1bb06b895c5be6e3f0517d355442a6b1e125 diff --git a/FS/FS/upload_target.pm b/FS/FS/upload_target.pm index f3486d393..af2dcb134 100644 --- a/FS/FS/upload_target.pm +++ b/FS/FS/upload_target.pm @@ -153,7 +153,8 @@ sub put { local $@; my $connection = eval { $self->connect }; return $@ if $@; - $connection->put($localname, $remotename) or return $connection->error; + $connection->put($localname, $remotename); + return $connection->error || ''; } elsif ( $self->protocol eq 'email' ) { my $to = join('@', $self->username, $self->hostname); @@ -162,7 +163,7 @@ sub put { # (maybe use only the raw content, so that we don't have to supply a # customer for substitutions? ewww.) my %message = ( - 'from' => $conf->config('invoice_from'), + 'from' => $conf->invoice_from_full(), 'to' => $to, 'subject' => $self->subject, 'nobody' => 1, @@ -199,13 +200,15 @@ sub connect { eval "use Net::SFTP::Foreign;"; die $@ if $@; my %args = ( - port => $self->port, user => $self->username, - password => $self->password, - more => ($DEBUG ? '-v' : ''), timeout => 30, - autodie => 1, #we're doing this anyway + autodie => 0, #we're doing this anyway ); + # Net::SFTP::Foreign does not deal well with args that are defined + # but empty + $args{port} = $self->port if $self->port and $self->port != 22; + $args{password} = $self->password if length($self->password) > 0; + $args{more} = '-v' if $DEBUG; my $sftp = Net::SFTP::Foreign->new($self->hostname, %args); $sftp->setcwd($self->path); return $sftp;