The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Net-xFTP

0.01    2005/07/15
        First version, released.
0.02    2005/07/15
        Removed debugging print stmts (already commented out) and fixed small 
        bug involving Cwd::cwd (changed to Cwd::getcwd).  Also removed 
        extranious "total" line at top of long directory listings.
0.10    2005/07/19
        Added copy, move methods.  Added filehandle option for the local
        file argument for get and put (now works like Net::FTP).
        Fixed several minor bugs.
0.11    2005/07/20
        Mostly doc mods.  Added BlockSize option handling and defaulted it 
        to 10240 (FTP's default).  
0.12    2005/07/21
        Remove some leftover "construction tape" (a couple of debug print 
        statements.  Also fixed a buglet involving warnings from SFTP->get 
        and put returning failure.
0.13    2005/07/22
        Fix sorting for SFTP->dir.
0.14    Fixed SFTP relative path-change problem (caught by Marty Himmelstein).
0.15    -not released-
0.16    Fixed local file list when running under Windows (was trying to call
        ls which does not exist in Windows - we now emulate it, except can't 
        get user/group name.  I'm open to ideas on this.
0.17    Fixed bug that caused warning when ftp::ls() returns undef at lines 
        360, 396, 458, and 495.  Also optimized many regices w/ \o.
0.20    Added support for Net::SSH2 and made compatable with Windows.
0.21    Added "mdtm" function to return a file's modification time.  Also fixed 
        bug in the "size" function for SSH2 protocol.  Also fixed bug that 
        caused "ls" function to return hidden files reguardless of "showall" 
        parameter value.
0.3b1   Rewrote to modularize each supported protocol in it's own module file.
        Added support for protocols:  Net::SFTP::Foreign, Net::OpenSSH,
        and Net::FSP!
0.4     Added support for Net::FTPSSL protocol.
0.41    Fixed bugs that caused FTPSSL protocol to silently use FTP protocol 
        instead.  This addresses bug#58210.
0.42    Fix bug in xFTP_SSH2 that prevented "puts" (line 403 - chg put() 
        to scp_put() - caught by me.
0.43    Fix type bug in xFTP.pm affecting Net::SFTP::Foreign (had it as 
        "Net::SFTP2::Foreign at line 305.  Caught by Paul Findlay, Thanks, Paul!
        Also fixed formatting bug in the dir() function and added 
        login timeout handler (sig(alarm)) and new option "login_timeout" (sec) - 
        default is 30 seconds (caught by me).
0.44    Fix bug that prevented module-specific arguments from being passed 
        directly to the module.  Caught by Paul Findlay, Thanks again, Paul.
0.44b1	 Fix FTPSSL mkdir() to actually implement recursion, fix FTPSSL dir 
	  & ls functions to be specific to this module (FTPSSL uses different 
	  names for them and does not implement recursion in mkdir.  These 
	  address CPAN bug#63290. Thanks Kate Yoak for the catch & patch!
	  Incorporated minor change to Foreign and removed depreciated set_status 
	  call from FTP.
0.45    Incorporate 0.44b1 changes into an actual release.  This should address 
	  bugs 63290 & 68801.
0.46	  Attempt to prevent nanny module "Test::Pod::Coverage" from 
	  preventing installation!  I don't have the time to make sure each & 
	  every fsckin' function has POD docs - The main one (xFTP.pm) does. 
	  This module is documented in it's man-page and README!  Sweating 
	  stuff like this is for Pascal programmers. :-/  If this bothers you, 
	  either don't use my module, or else write up some POD foo & send it 
	  to me & i'll include it in next release.
.50    Fix several path issues in xFTP_LOCAL.pm to properly configure and 
	  "remember" the current working directory to addres bug#91600
	  Add "MAVIT patch" to address bug#74082 (xFTP_Foreign.pm)
	  Change "return" to "return undef" in xFTP:new() in several places to 
	  address bug#68800 regarding FTPSSL, but was most likely an issue with
	  the others as well.  If one does not have the correct module installed, 
	  it should now fail with error.
.51    Restore Test::Pod::Coverage for main module (Net::xFTP) only, and only 
	  to be run if user has Test::Pod::Coverage installed, whilst excluding 
	  POD-coverage testing for all the (non user-facing) submodules.  
	  Tested on both a system with and withoug Test::Pod::Coverage installed. 
	  This addresses and closes Bug#68833.
.52    Resave all source files in "Unix" format (LF) instead of DOS (CR,LF) to 
	  remove CR from generated *META* files to address bug#103081.
1.00  Foreign: Added "Port" option along with the ability to handle 
	  some other options when connecting in both Foreign and SSH2.
	  SSH2: Fixed call to auth_* on connect (new() - create connection) - 
	  new() was not always calling the right auth_* with proper arguments.
	  Added $ftp->method() method to allow for easier calling of module-
	  specific methods in all supported protocols.  Misc. cleanups / fixes.
	  OpenSSH: Fixed bug in change working directory (cwd) function's 
	  causing it to fail and not preserve the new "current working directory".
	  OpenSSH: Fix error handling.
	  OpenSSH: Replace obsolete "defined(@hash) and defined(@array) with 
	  proper "@hash" and "@array" respectively, checked that this was not in 
	  any other modules.
1.01	 Fix xFTP_LOCAL to handle subdirectories with spaces in name in *nix
	  Fix haveModule([Net::]module) function to actually work (it didn't)!
1.02  Fix $ftp->protocol() to actually work (return the name of the protocol 
	  module actually in use, ie. "Net::FTP" for Net::FTP, etc, or empty 
	  string for Local (Net::LOCAL).
	  Net::OpenSSH:  Allow specifying "passphrase => '*'" in the options hash 
	  to use the value specified in the "password" option instead as the 
	  passphrase for using passphrase-protected public-key access.  Also 
	  allow a third argument for get() and put() functions for specifying a 
	  hash of OpenSSH-specific options (See Net::OpenSSH docs).
	  Also, for get() and put() calls with filehandles, they return the number 
	  of bytes processed instead of 1 if successful.