home *** CD-ROM | disk | FTP | other *** search
/ ftp.ncftp.com / ftp.ncftp.com.zip / ftp.ncftp.com / libncftp / libncftp-3.2.5-src.zip / libncftp-3.2.5 / doc / CHANGELOG.txt next >
Text File  |  2011-01-17  |  16KB  |  440 lines

  1. LibNcFTP Change Log:
  2. ===================
  3.  
  4. 3.2.5, 2011-01-17
  5.  
  6.    + If a server's MLSx output returns both the "UNIX.mode" and the "perm"
  7.      parameters, UNIX.mode will take precedence (Thanks, Jay Kulpinski).
  8.  
  9.  
  10. 3.2.4, 2010-04-07
  11.  
  12.    + Compatibility fixes for FreeBSD 8.
  13.  
  14.    + Support for local validation of DNSSEC when combined with libraries
  15.      available from the DNSSEC Tools project (Thanks, Robert Story).
  16.  
  17.    + Directory listings now assume a line with no year implies that the
  18.      current year should be used if the date is no more than 2 days into
  19.      the future.  Previously, for UNIX ls compatibility, up to 6 months into
  20.      the future was allowed.
  21.  
  22.    + Compatibility fixes for MinGW32 (Windows GCC).
  23.  
  24.    + Microsoft disabled recursive directory listings altogether when fixing
  25.      KB975254 (Thanks, Andrew Coggeshall).  When entire directories are
  26.      downloaded, instead of using "LIST -R" for one efficient listing of
  27.      all files, the directories are manually traversed with one directory
  28.      listing for each subdirectory.  This will improve reliability of
  29.      recursive downloads, except for the case when their are circular
  30.      symbolic links (which is why "LIST -R" had been favored, which the
  31.      server can easily handle).
  32.  
  33.    + Compatibility fixes for Mac OS X for building from source code
  34.      (Thanks, Mathieu Rene)
  35.  
  36.  
  37.  
  38. 3.2.3, 2009-07-24
  39.  
  40.    + Using MFMT command to set remote timestamps, if available, in
  41.      preference to SITE UTIME or MDTM.
  42.  
  43.    + New configure flag, --enable-ssp, will turn on stack smashing
  44.      protection (if available by compiler) by adding to CFLAGS.
  45.  
  46.    + Host, user, and pass fields have been increased in size.
  47.  
  48.    + New debugTimestamping boolean field has been added, which will
  49.      cause the date and time to be printed with each call to the
  50.      logging functions.
  51.  
  52.  
  53. 3.2.2.2, 2008-10-29
  54.  
  55.    + Large File Support has been updated internally to use newer APIs,
  56.      rather than the transitional API.
  57.  
  58.    + You can now specify an IP address for binding the local end of
  59.      sockets.  Useful if you need connections to originate from a
  60.      specific IP on the system.
  61.  
  62.    + Bug fixed where binding an ephemeral port number in a specified
  63.      range (rare) may not have used all available retries for binding.
  64.  
  65.    + Local writes now "retry" when the write returns less than the full
  66.      number of bytes specified, and will call write() again to write
  67.      out the remaining bytes.  This bug is very rare since local write
  68.      almost always write out the full number of bytes.  This bug may
  69.      have been limited to a particular type of filesystem.
  70.  
  71.    + Using a higher resolution timer on Windows, so that the timer
  72.      no longer wraps over after a month.
  73.  
  74.    + The minimum version of Windows that the source code will now
  75.      compile on is Windows 2000, although with a little tweaking you
  76.      could compile for Windows NT 4 again.
  77.  
  78.    + Compatibility fix for Mac OS X when compiling from source to build
  79.      universal binaries (Thanks, Toshi NAGATA)
  80.  
  81.    + Compatibility fix for FreeBSD, where a connection attempt may
  82.      have failed with "Operation now in progress."
  83.  
  84.  
  85. 3.2.2, 2008-08-08
  86.  
  87.   + PASV mode will now be retried, in case of a transient failure.
  88.     (Thanks, Steven Frank).
  89.  
  90.   + The directory listing parser now can recognize dates in the format
  91.     of YYYY-mm-dd HH:MM[:SS].
  92.  
  93.   + Fixed feature detection for WS_FTP servers.
  94.  
  95.   + Workaround bug in REST on WS_FTP 6.0 (Thanks, Dan Nelson).
  96.  
  97.   + Fixed a problem where doing a get on a remote file that did not exist,
  98.     but a file by the same name existed locally, would err out but truncate
  99.     the local file anyway.
  100.  
  101.   + On Mac OS X, the configure script will now try to build universal
  102.     binaries by default.  If you don't want that, pass --disable-universal
  103.     to configure.
  104.  
  105.   + The default connect timeout has been reduced from 30 to 10 seconds to 
  106.     reflect the increase in the typical user's network speed.
  107.  
  108.   + Visual Studio 2008 solution files are now provided for building the
  109.     source on Windows.
  110.  
  111.  
  112. 3.2.1, 2007-07-29
  113.  
  114.   + Now a little more tolerant of FTP servers who send their internal network
  115.     IP addresses in their PASV response.  When this is detected, it will be
  116.     ignored and the data connection will connect to the same IP that is used
  117.     for the control connection.
  118.  
  119.   + Fix problem where an empty directory could cause a recursive download
  120.     to abort prematurely.
  121.   
  122.   + Resuming of uploads can now work for servers that do not support
  123.     REST + STOR.  The APPE command will be used instead.
  124.  
  125.   + A few memory leaks plugged.
  126.  
  127.   + Fixes for FreeBSD 6 for compatibility with /usr/bin/make.
  128.  
  129.  
  130. 3.2.0, 2006-08-05
  131.  
  132.   + Fix read overflow in FTW (Thanks, Carl MAILLOUX, Craig Ball, and others).
  133.  
  134.   + Fixed a problem with ASCII translation where a CR+LF may not have
  135.     been converted to the local text EOLN format if the CR+LF was split
  136.     over an internal block boundary.  The ASCII translation code has
  137.     been rewritten so it is also more tolerant of malformatted text,
  138.     such as CR+CR+LF end-of-lines.
  139.  
  140.   + You can now resume uploads when uploading into a temporary file
  141.     (e.g. ncftpput's -S and -T options for using a temporary suffix or prefix).
  142.  
  143.   + Fixes for Cygwin.
  144.  
  145.   + Some fixes for largefile support on Windows.
  146.  
  147.   + You can now resume transfers in ASCII mode, rather than just binary.
  148.  
  149.   + Fixed a problem with recursive uploads for Windows.
  150.  
  151.   + You can now use an empty password if your user account does not have
  152.     a password.
  153.  
  154.   + Fixed a bug where Type of Service socket options were being set
  155.     with IPPROTO_TCP instead of IPPROTO_IP.
  156.  
  157.  
  158. 3.1.9, 2005-03-19
  159.  
  160.   + Renamed internal library function Duration() to FTPDuration()
  161.     to avoid namespace collision on Mac OS X.
  162.  
  163.   + Recognize additional error response codes to SITE UTIME, to prevent
  164.     using it if the server doesn't support it.
  165.  
  166.   + If the server does not support setting timestamps in MDTM, quit
  167.     trying it if it fails the first time.
  168.  
  169.   + Do not allow control characters such as NUL, CR, LF in FTP URLs, to
  170.     avoid command injection as described by
  171.     Albert Puigsech Galicia <ripe AT 7a69ezine.org>.
  172.  
  173.   + Fixed a problem where a timed-out transfer may have been detected
  174.     but still locked up the process (Thanks, IWAI, Masaharu).
  175.  
  176.   + New function: FTPMkParentDir.  Useful for creating the parent directory
  177.     of a given pathname.
  178.  
  179.   + New function: FTPGetFileToMemory(), which can download directly into
  180.     a pre-allocated memory buffer.  The function FTPPutFileFromMemory()
  181.     is also available and has been present in previous releases.
  182.     See the "ncftpgettomem.c" sample program for an example.
  183.  
  184.   + Small compatibility fixes for Mac OS X, Solaris 10, Linux.
  185.  
  186.   + Fix a memory leak on Windows that could occur when an error occurred 
  187.     during uploading.
  188.  
  189.  
  190. 3.1.8.1, 2004-07-27
  191.   
  192.   + New error codes, kErrProxyDataConnectionsDisabled (-198) and
  193.     kErrDataConnOriginatedFromBadPort (-199).  These will be helpful
  194.     to detect when data connections were closed because of the
  195.     allowProxyForPort or require20 fields.
  196.  
  197.   + A fix for some DNS resolution problems on Linux.
  198.  
  199.  
  200. 3.1.8, 2004-07-12
  201.  
  202.   + New error code, kErrRemoteSameAsLocal (-197), which is the upload
  203.     equivalent of kErrLocalSameAsRemote (-178).  It is recommended that
  204.     you special case this error when doing an upload, since it really
  205.     indicates that the only reason it didn't do the upload was because
  206.     the file was already there.
  207.  
  208.   + New "pncftp" sample program shows how to do a proxy FTP transfer
  209.     (server-to-server direct FTP).
  210.  
  211.   + Recognize broken IBM mainframe FTP servers and work around them.
  212.  
  213.   + Working around a problem with ProFTPD 1.2.9 and later which would
  214.     cause recursive downloads to fail.
  215.  
  216.   + For the malicious server problem that was addressed in 3.1.5, enhanced
  217.     the fix for better compatibility with mainframe FTP servers.
  218.  
  219.   + Several HP-UX 10 compatibility bugs fixed (Thanks, Laurent FAILLIE).
  220.  
  221.   + Bug fixed with the upload socket buffer not being set (Thanks, ybobble).
  222.  
  223.  
  224. 3.1.7, 2004-01-07
  225.  
  226.   + Fixed a memory leak introduced in 3.1.6.
  227.  
  228.   + Fixed problem where it was assumed that daylight saving's time occurred
  229.     at the same time each year for all timezones.
  230.   
  231.   + Problem fixed with "ls -a" where occasionally a row with ".." and another
  232.     file would be omitted.
  233.   
  234.   + The configure script can now detect when the config.cache file has been
  235.     improperly recycled from a machine with a different OS.
  236.   
  237.   + The Windows version now uses the USERPROFILE environment variable, if it
  238.     was set, as the location of the user's home directory.
  239.  
  240.   + Recognize broken DG/UX servers and work around them.
  241.  
  242.  
  243. 3.1.6, 2003-08-25
  244.  
  245.   + Fixed an important bug that was causing socket leaks on Windows.
  246.  
  247.   + Fix for possible "Double Timeout" condition that could occur on uploads.
  248.  
  249.   + Added support for GCC 3.4 precompiled headers.
  250.  
  251.   + The "ABOR" sequence used by FTPAbortTransfer is more robust.
  252.  
  253.   + There is now a "canceling" field for use from a progress meter to
  254.     determine if the canceler has been invoked.
  255.  
  256.   + There is also a "canceled" field to tell if the transfer was successfully
  257.     aborted.
  258.  
  259.   + Bug fixed where the library would try to perror() [bad anyway] for a
  260.     case when select() returned EINTR.
  261.  
  262.   + Bug fixed where timeouts may not have worked.
  263.  
  264.   + To the improved ASCII handling from 3.1.5, added another case where we
  265.     workaround files sent by a buggy FTP server implementation whose
  266.     files have CR+CR+LF end-of-lines.
  267.  
  268.   + More fixes related to the above, as well as few other fixes from
  269.     Martin Storsj.
  270.  
  271.   + Bug fixed where an upload filename could have been limited to 127
  272.     characters.
  273.  
  274.   + For the malicious server problem that was addressed in 3.1.5, enhanced
  275.     the fix for better compatibility with Serv-U and WS_FTP servers.
  276.  
  277.   + Bug fixed where a several minute delay would be incurred if you
  278.     tried to transfer a file that did not exist.
  279.  
  280.  
  281. 3.1.5, 2002-10-13
  282.  
  283.   + Problem fixed where a malicious or trojaned FTP server could send back
  284.     pathnames with directories different from the directory requested.
  285.     For example, if you did:
  286.       cd /pub
  287.       get *.zip
  288.     the malicious server could
  289.     send back a pathname like ../../../some/other/dir/filename.here
  290.     rather than pathnames such as filename.zip and trick NcFTP into writing
  291.     into a different local pathname if your user privileges had permission
  292.     to write it.
  293.  
  294.     For details, see the CERT Vulnerability Note, at
  295.       http://www.kb.cert.org/vuls/id/210409
  296.  
  297.  + Compatibility fixes for AIX, Linux, Mac OS X, IRIX 6.2 and SunOS 4.
  298.  
  299.  + Be less pedantic about incorrectly formatted multi-line responses.
  300.  
  301.  + For ASCII transfers, try harder to handle non-native end-of-line formats.
  302.  
  303.  + New timeval fields lastCmdStart and lastCmdFinish which are updated by
  304.    the library automatically.  The purpose of these is to let you check
  305.    them to see if you want to send a NOOP to keep the connection alive.
  306.  
  307.  
  308. 3.1.4, 2002-07-02
  309.  
  310.  + Changed declaration of FTPConfirmResumeDownloadProc and
  311.    FTPConfirmResumeUploadProc so first parameter is a FTPCIPtr.
  312.    Unfortunately this will require existing code be slightly revised.
  313.  
  314.  + Another internal function, Error(), has been renamed to FTPLogError()
  315.    to avoid another namespace collision.
  316.  
  317.  + New configure flag, --disable-ccdv.
  318.  
  319.  + Makefile has "distclean" target.
  320.  
  321.  + Compatibility fixes for C++ and Linux.
  322.  
  323.  + Fixed a socket leak and a crash on Win32.
  324.  
  325.  + A few minor fixes for firewall logins.
  326.  
  327.  + By default, proxy connections for PORT are no longer allowed.  This is
  328.    mostly an extra security precaution, to eliminate cases where someone
  329.    could hijack a data connection by connecting to us after we issue PORT
  330.    but before the server could connect to us.
  331.  
  332.  + Bug fixed in configure script for enabling Socks.
  333.  
  334.  + A few new firewalls (permutations of type 1).  (Thanks, Felix Buenemann)
  335.  
  336.  + Try harder to avoid unnecessary SIZE/MDTM/MLST/REST commands.
  337.  
  338.  + A new "hasHELP_SITE" structure field is available in case you need
  339.    to avoid doing a "HELP SITE".  Some server software (i.e. IBM Mainframes)
  340.    crashes when you do this.
  341.  
  342.  
  343. 3.1.3, 2002-03-27
  344.  
  345.  + Enhancements to Monkey.
  346.  
  347.  + Bug fixed on Solaris where a socket could be left in non-blocking mode.
  348.  
  349.  + Ls parsing is now more forgiving of weird /bin/ls implementations (AIX).
  350.  
  351.  + Be more lenient on broken server implementations which include extra
  352.    blank lines in the control connection conversation.
  353.  
  354.  + Compatibility fixes for IRIX 5.x and AIX 4.2.x.
  355.  
  356.  + Compatibility fixes for Cygwin
  357.    (Thanks, Charles Wilson <cwilson AT ece.gatech.edu>).
  358.  
  359.  + Some extra debugging information is now logged to the trace logs.
  360.  
  361.  + Fix namespace collisions with Mac OS headers.  Use "FTPLine" and
  362.    "FTPFileInfo", in place of "Line" and "FileInfo".
  363.  
  364.  
  365. 3.1.2, 2002-01-30:
  366.  
  367.  + A fix for the local hostname detection code which could result with only
  368.    the first character of the domain appended, rather than the entire domain
  369.    (Thanks, Bernhard Sadlowski <sadlowsk AT mathematik.uni-bielefeld.de>).
  370.  
  371.  + Another bug fixed in local hostname detection where looking up the host
  372.    by IP address was not done correctly.
  373.  
  374.  + Fixed a few portability problems on HP-UX 10.20 which were introduced
  375.    in 3.1.0.
  376.  
  377.  + Fixed bug with readdir_r usage on Solaris, which could cause crashes
  378.    when doing recursive uploads, among other things.
  379.  
  380.  + On Linux, use gethostbyname2_r() to specify that we only want IPv4
  381.    addresses returned.
  382.  
  383.  + Reversing behavior from 3.1.0 where we did a shutdown() on the half
  384.    of the socket that wasn't used.  We suspect this was causing some
  385.    firewalls and routers to panic and assume the whole connection was
  386.    to be closed.
  387.  
  388.  + Bug fixed where an unresolvable hostname caused a pointless connection
  389.    attempt which would fail.
  390.  
  391.  + Bug fixed in FTPChdir3 with one-at-a-time mode.
  392.  
  393.  + Obscure bug fixed in recursive local globbing.
  394.  
  395.  + Fixes for ncftpsyncput sample program.
  396.  
  397.  
  398. 3.1.1, 2001-12-23:
  399.  
  400.  + Fixed bugs with our use of gethostbyname_r/addr_r on Linux.
  401.  
  402.  + Fixed bugs with our implementation of stat64() on Windows, which caused
  403.    problems when querying information about local directories.
  404.  
  405.  
  406. 3.1.0, 2001-12-17:
  407.  
  408. + Win32 support is now officially incorporated into the library.
  409.  
  410. + The library no longer uses signals or expects you to have signal
  411.   handlers for SIGALRM or SIGPIPE.
  412.  
  413. + Internal changes should result in the library being more friendly
  414.   to multi-threaded environments, although we still do not have our
  415.   test suite ready to certify that the library is 100% threadsafe.
  416.  
  417. + Library defaults to "PASV-but-fallback-to-PORT" mode now (i.e.
  418.   cip->dataPortMode == kFallBackToSendPortMode).  The previous
  419.   default had been PORT mode (cip->dataPortMode == kSendPortMode).
  420.  
  421. + Library now uses timeouts by default since a signal handler is not
  422.   required (kDefaultXferTimeout==600, kDefaultConnTimeout==30, and
  423.   kDefaultCtrlTimeout==135).
  424.  
  425. + Bug fixed where puts could delay a few seconds unnecessarily after
  426.   the file had been sent.
  427.  
  428. + Library optimizations should result in less unneeded code included with
  429.   programs that use the libraries.  Your programs should be smaller as a
  430.   result.
  431.  
  432. + Recursive uploading has been substantially reworked for both functionality
  433.   and reliability.  Arbitrary pathname sizes have also been removed, so
  434.   directory trees should only be limited by available memory and stack space.
  435.  
  436. + Huge number of lint fixes.  LibNcFTP now compiles cleanly on several
  437.   platforms even with extra warning options enabled.
  438.  
  439. + Large number of internal changes to the configure scripts.
  440.