X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fupload_target.pm;h=73d2a04c3ab14a52a88f7bab54599ee0ad80c2f8;hb=e43f8075d053e3f1d969d8f762ab510a2de126de;hp=f3486d393efd4d34c932f45ae92f1148a31f7ca8;hpb=c673787bf1ac56408e589ed20ea63404e9181574;p=freeside.git diff --git a/FS/FS/upload_target.pm b/FS/FS/upload_target.pm index f3486d393..73d2a04c3 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,10 @@ 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->config('invoice_from_name') ? + $conf->config('invoice_from_name') . ' <' . + $conf->config('invoice_from') . '>' : + $conf->config('invoice_from'), 'to' => $to, 'subject' => $self->subject, 'nobody' => 1, @@ -199,13 +203,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;