File perl-Net-FTP-AutoReconnect.spec of Package perl-Net-FTP-AutoReconnect
#
# spec file for package perl-Net-FTP-AutoReconnect
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: perl-Net-FTP-AutoReconnect
Version: 0.3
Release: 0
%define cpan_name Net-FTP-AutoReconnect
Summary: FTP client class with automatic reconnect on failure
License: GPL-1.0+ or Artistic-1.0
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Net-FTP-AutoReconnect/
Source: http://www.cpan.org/authors/id/G/GI/GIFF/%{cpan_name}-%{version}.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
%{perl_requires}
%description
The goal of this method is to hide some implementation details of FTP
server systems from the programmer. In particular, many FTP systems will
automatically disconnect a user after a relatively short idle time or after
a transfer is aborted. In this case, 'Net::FTP::AutoReconnect' will simply
reconnect, send the commands necessary to return your session to its
previous state, then resend the command. If that fails, it will return the
error.
It makes no effort to determine what sorts of errors are likely to succeed
when they're retried. Partly that's because it's hard to know; if you're
retreiving a file from an FTP site with several mirrors and the file is not
found, for example, maybe on the next try you'll connect to a different
server and find it. But mostly it's from laziness; if you have some good
ideas about how to determine when to retry and when not to bother, by all
means send patches.
This module contains an instance of 'Net::FTP', which it passes most method
calls along to.
These methods also record their state: 'alloc', 'ascii', 'authorize',
'binary', 'cdup', 'cwd', 'hash', 'login','restart', 'pasv', 'port'.
Directory changing commands execute a 'pwd' afterwards and store their new
working directory.
These methods are automatically retried: 'alloc', 'appe', 'append',
'ascii', 'binary', 'cdup', 'cwd', 'delete', 'dir', 'get', 'list', 'ls',
'mdtm', 'mkdir', 'nlst', 'pasv', 'port', 'put', 'put_unique', 'pwd',
'rename', 'retr', 'rmdir', 'size', 'stou', 'supported'.
These methods are tried just once: 'abort', 'authorize', 'hash', 'login',
'pasv_xfer', 'pasv_xfer_unique', 'pasv_wait', 'quit', 'restart', 'site',
'unique_name'. From 'Net::Cmd': 'code', 'message', 'ok', 'status'.
'restart' doesn't actually send any FTP commands (they're sent along with
the command they apply to), which is why it's not restarted.
Any other commands are unimplemented (or possibly misdocumented); if I
missed one you'd like, please send a patch.
%prep
%setup -q -n %{cpan_name}-%{version}
find . -type f -print0 | xargs -0 chmod 644
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor
%{__make} %{?_smp_mflags}
%check
%{__make} test
%install
%perl_make_install
%perl_process_packlist
%perl_gen_filelist
%files -f %{name}.files
%defattr(-,root,root,755)
%changelog