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);
# (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,
}
}
-
-
-
-
-
-
-
=item connect
Creates a Net::FTP or Net::SFTP::Foreign object (according to the setting
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;