Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Net::FTP::AutoReconnecUser Contributed Perl DocumentNet::FTP::AutoReconnect(3)

NAME
       Net::FTP::AutoReconnect - FTP client class with automatic reconnect on
       failure

SYNOPSIS
       "Net::FTP::AutoReconnect" is a wrapper module around "Net::FTP".	 For
       many commands, if anything goes wrong on	the first try, it tries	to
       disconnect and reconnect	to the server, restore the state to the	same
       as it was when the command was executed,	then execute it	again.	The
       state includes login credentials, authorize credentials,	transfer mode
       (ASCII or binary), current working directory, and any restart, passive,
       or port commands	sent.

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.

   CONSTRUCTOR
       new

       All parameters are passed along verbatim	to "Net::FTP", as well as
       stored in case we have to reconnect.

   METHODS
       Most of the methods are those of	Net::FTP.  One additional method is
       available:

       reconnect()

       Abandon the current FTP connection and create a new one,	restoring all
       the state we can.

       disconnect()

       Disconnect the current FTP connection abruptly.	Mostly useful for
       testing.

       connect_count()

       Return the number of times we have connected or reconnected to this
       server.	Mostly useful for testing.

AUTHOR
       Scott Gifford <sgifford@suspectclass.com>

BUGS
       We should really	be smarter about when to retry.

       We shouldn't be hardwired to use	"Net::FTP", but	any FTP-compatible
       class; that would allow all modules similar to this one to be chained
       together.

       Much of this is only lightly tested; it's hard to find an FTP server
       unreliable enough to test all aspects of	it.  It's mostly been tested
       with a server that dicsonnects after an aborted transfer, and the
       module seems to work OK.

SEE ALSO
       Net::FTP.

COPYRIGHT
       Copyright (c) 2006 Scott	Gifford. All rights reserved.  This program is
       free software; you can redistribute it and/or modify it under the same
       terms as	Perl itself.

perl v5.32.0			  2009-08-12	    Net::FTP::AutoReconnect(3)

NAME | SYNOPSIS | DESCRIPTION | AUTHOR | BUGS | SEE ALSO | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Net::FTP::AutoReconnect&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help