Revision history for Perl distribution libnet

3.15 2023-03-20

    - Release for updating bleadperl to avoid cmp_version.t trouble.  No code
      changes.

3.14 2022-05-22

    - Remove broken link in Net::FTP manpage.  [Mike Blackwell]

    - Fix EBCDIC detection.  [Karl Williamson, PR#45]

    - Fix non-deterministic output in libnet.cfg.  [Sergei Trofimovich, PR#44]

    - Fix TLS session reuse for dataconn with TLS 1.3 when using passive mode.
      [Steffen Ullrich, PR#41]

3.13 2020-12-23

    - Revert "Fix EINTR interruption in sysread for getline method."  [Mario
      Paumann, CPAN RT#133912]

3.12 2020-12-09

    - Change licence of libnetFAQ.pod to match everything else.  [CPAN
      RT#117888]

    - Remove unused "last" label to avoid portability problem.  [Zefram, CPAN
      RT#122631]

    - Use four-digit year in timegm() calls.  [perlbugbmw@lsmod.de, CPAN
      RT#124534]

    - Make Net::FTP work with TLS 1.3.  [Steffen Ullrich, PR#40]

    - Fix EINTR interruption in sysread for getline method.  [Gabriel Muñoz,
      PR#30]

    - Use Test::More instead of custom test subroutines and improve skips in
      various test scripts.  [James E. Keenan, PR#39]

3.11 2017-11-14

    - Treat FTP MLSD commands case-insensitively.  [Brian M. Carlson, PR#32]

3.10 2016-08-01

    - Removed . from @INC when loading optional modules.  [Tony Cook, Perl
      RT#127834, CVE-2016-1238]

    - Removed the default Net::Cmd::timeout() since it inadvertently overrode
      the timeout() method in whatever IO::Socket::INET-like class sub-classes
      of Net::Cmd also derive from (at least in cases where Net::Cmd takes
      precedence in the method resolution, which it should do so that
      Net::Cmd::getline() overrides IO::Handle::getline()).

      This does cause problems for any Net::Cmd sub-classes that don't provide
      (by whatever means) the necessary parts of the interface of
      IO::Socket::INET, but since they mostly seem to anyway (apart from the one
      that led to the CPAN RT#110978 report!) this is now simply a documented
      requirement.

      [CPAN RT#116345]

3.09 2016-07-19

    - Provided (and documented) a default Net::Cmd::timeout().  [CPAN RT#110978]

    - Increased minimum required version of IO::Socket::IP to 0.25 to hopefully
      stop t/pop3_ipv6.t hanging.  [CPAN RT#104545]

    - Debug output now includes decoded (from base64) negotiation for SASL.
      [Philip Prindeville, PR#27]

    - Adapted tests to Test2 revision of Test::More::note().  [James E. Keenan,
      PR#28]

3.08 2016-01-05

    - Fixed a bug introduced in version 1.28 whereby a short write in Net::Cmd
      would be treated as an error instead of looping.  [David Golden, PR#24]

    - Documented the fact that Net::SMTP::auth() can accept an Authen::SASL
      object instead of a username and password.  [Jan Viktorin, CPAN RT#106183]

    - Simplified specification of INSTALLDIRS: We do not need to check the lower
      bound since we only support Perl 5.8.1 and higher anyway.

3.07 2015-07-17

    - Net::FTP::rmdir() has been made more robust by making use of the MLSD
      command in addition to the NLST command since the latter is known not to
      be processed correctly by some FTP servers.  [Chris Lindee, CPAN
      RT#100694]

    - Net::FTP, Net::NNTP, Net::POP3 and Net::SMTP can now restrict domain to
      IPv4 even if IPv6 is available by using the new Domain or Family argument.

      Net::NNTP now supports the LocalPort argument in addition to LocalAddr.

      Net::POP3 now supports the LocalAddr and LocalPort arguments in addition
      to ResvPort (which is retained for backwards compatibility).

      [Steffen Ullrich, PR#18]

    - Fixed a bug in Net::Cmd::datasend() which caused octets in [\x80-\xFF]
      stored in a "binary string" to be replaced with their UTF-8 encodings if
      the string happened to be stored internally in an "upgraded" state (i.e.
      with the UTF-8 flag on).  (As noted below, strings passed to datasend()
      should always be encoded first, and therefore not stored in such a state
      anyway, but it is all too easy for perl to change this internal state
      unless the encodeing is done at the very last minute before calling
      datasend(), so it helps if datasend() plays more nicely in this case.  In
      particular, it was wrong of datasend() to treat upgraded and downgraded
      strings differently when their contents were identical at the Perl level.)

      This bugfix results in a breaking change to the case of a "text string"
      with characters in U+0080..U+00FF stored internally in an upgraded state
      since those characters are likewise no longer encoded to UTF-8 by
      datasend(), but callers of datasend() should not have been relying on this
      behaviour anyway: In general, datasend() has no idea what encoding is
      required for output so callers should always encode the data to be output
      to whatever encoding is required first.  This has now been clarified in
      the documentation.

      Finally, a text string with characters >= U+0100 will now cause a "Wide
      character in print" warning from datasend() since such characters cannot
      be output as bytes and datasend() no longer encodes to UTF-8.  In this
      case, UTF-8 bytes will still be output as before since that happens to be
      the internal representation of such characters, but the warning is new.
      Callers should heed this warning and encode such strings to whatever
      encoding is required before calling datasend(), as noted above.

      [Ricardo Signes, CPAN RT#104433]

3.06 2015-04-01

    - Fixed INSTALLDIRS to account for the @INC reordering change in Perl 5.12.
      See Perl RT#116479 for details.  (libnet entered the perl core in Perl
      5.7.2 so that's what the lower bound of the check should strictly be, but
      since we only support Perl 5.8.1 and higher anyway it suffices to check
      for Perl 5.8.  The upper bound is correctly Perl 5.11.0 since the @INC
      reordering change in question (Perl core commit #b9ba2fadb1) first
      appeared in Perl 5.11.0.)  [CPAN RT#103238]

    - Fixed Net::FTP authorize() method, which incorrectly interpreted the
      return value of the _RESP() method and falsely reported a failure.  [Troy
      Loveday, CPAN RT#48532]

    - Added optional SendHello argument to Net::SMTP->new() to allow preventing
      the EHLO/HELO command from being automatically sent by the constructor.
      [Danil Onishchenko, PR#13]

3.05 2015-01-12

    - Fixed infinite loop in Net::SMTP::auth().  [CPAN RT#100235]

3.04 2014-11-29

    - SNI is now only used for SSL connections if it is supported by
      IO::Socket::SSL (i.e. OpenSSL version >= 1).  (The previous release
      switched to using SNI by default, which caused some CPAN Testers
      failures.)  [Steffen Ullrich, PR#10]

3.03 2014-11-28

    - Remodelled SSL support in Net::NNTP in the manner of Net::POP3 and
      Net::SMTP.  [Steffen Ullrich, PR#9]

    - Increased minimum requred IO::Socket::SSL version from 1.999 to 2.007 to
      fix data connection problems in Net::FTP.  [Steffen Ullrich, CPAN
      RT#100529]

    - Fixed a broken port() call in pasv_xfer()/pasv_xfer_unique() in Net::FTP.
      [Mario Preksavec, PR#8]

    - Increased minimum required Socket version from 1.3 to 2.016.  This may be
      required when those modules that can support IPv6 load IO::Socket::IP (on
      some OSes, at least).  It does not appear to be necessary if they load
      IO::Socket::INET6 or IO::Socket::INET instead, but this is not easy for
      the end-user to control so it is simpler to always insist on Socket 2.016
      or higher.  [CPAN RT#100020]

    - Fixed "Argument ... isn't numeric in subroutine entry" warnings when using
      older versions of Perl.  [CPAN RT#100020]

    - Added optional Changes testing (skipped unless AUTHOR_TESTING).

    - Reformatted Changes file as per CPAN::Changes::Spec.

3.02 2014-10-10

    - Don't run interactive prompt() in Makefile.PL when in PERL_CORE.

    - Fix $smtp->auth($sasl) to try the AUTH mechanism (if present) in the
      Authen::SASL object before falling back on other mechanisms.  [CPAN
      RT#99415]

3.01 2014-10-09

    - Require IO::Socket::SSL >= 1.999 to protect against a bad version (0.30)
      of IO::Socket::IP and hopefully fix another bunch of CPAN Testers
      failures.

3.00 2014-10-09

    - Skip Perl Critic, Pod and Pod Coverage tests unless AUTHOR_TESTING.  [CPAN
      RT#99399]

    - Synchronize all $VERSIONs to the distribution's version number, bumping
      that to 3.00 so that no $VERSIONs end up going backwards.

1.30 2014-10-08

    - Sigh. Fix PAUSE indexing problem again. Net::SMTP::SSL is already used by
      Net-SMTP-SSL.

1.29 2014-10-08

    - Fix PAUSE indexing problem. Net::POP3::_SSLified and Net::SMTP::_SSLified
      are already used by Net-SSLGlue.

1.28 2014-10-08

    - Improve code()/message() initialization and error handling in Net::Cmd.
      [Tom Metro, CPAN RT#14875]

    - Don't use the ALLO command on FTP servers that don't support it.  [CPAN
      RT#95717]

    - Stop Makefile.PL from requiring interactive configuration when running via
      cpan, cpanp or cpanm: just accept all defaults in these cases, as when
      running non-interactively.  [CPAN RT#48966]

    - Add optional POD coverage testing.

    - Add optional POD testing.

    - Add optional Perl::Critic testing.

    - Make code Perl::Critic clean.

    - Move Net/*.pm into lib/Net/ sub-directory within distribution.  This is
      the usual layout style these days.

    - Change Net::SMTP::auth() so that it now falls back to another supported
      AUTH method if a given AUTH method fails.  [Ivan Baktsheev, PR#3]

    - Change Net::SMTP::auth() so that it uses the SMTP AUTH mechanism(s)
      specified in the Authen::SASL object if one is provided instead of a
      username.   If a plain text username is specified then use the first
      reported SMTP AUTH method supported, as usual.  [Ewen McNeill, CPAN
      RT#58002]

    - Add support for IPv6 and SSL to Net::FTP, Net::NNTP, Net::POP3 and
      Net::SMTP.  These features are only available if the user has:

      * a recent IO::Socket::SSL for SSL support;

      * a recent IO::Socket::IP or an older IO::Socket::INET6 for IPv6 support.

      If no SSL module is available it will work as before, but attempts to use
      the SSL functionality will result in an error message.  If no IPv6 modules
      are available it will just use IPv4 as before.  With IPv6 modules
      installed one can of course still access IPv4 hosts.

      [Steffen Ullrich, CPAN RT#93823]

1.27 2014-05-30

    - Simplified Makefile.PL requirements.

1.26 2014-05-30

    - Set minimum required ExtUtils::MakeMaker version to 6.64 to ensure that
      all parameters used are supported, to save jumping through hoops to
      support earlier versions.  (This should not be a problem since
      ExtUtils::MakeMaker 6.64 is easily installed into Perl 5.8.1 and above,
      that being the whole point of the new choice of minimum supported Perl
      version.)

    - Set minimum required Perl version to 5.8.1.  This is in line with the
      minimum requirement of the "Perl Toolchain".

1.25 2014-02-04

    - Fix Net::FTP::pasv_wait() not handling errors from Net::Cmd::reponse().
      [bergner@cs.umu.se, CPAN RT#50420]

    - Make inheritance from Net::Cmd clearer in the documentation.  [CPAN
      RT#72889]

    - Set timeout for data connection creation in Net::FTP.  [Oleg G, CPAN
      RT#78926]

    - Stop Net::Domain::domainname() from giving out warnings in Android.
      [Brian Fraser]

1.24 2014-01-06

    - Fix incorrect handling of CRLF in Net::FTP.  [Willem Monsuwé, CPAN
      RT#41642/62029]

    - POD fixes.  [Dominic Hargreaves, CPAN RT#91761]

1.23 2013-08-12

    - Typo fixes.  [David Steinbrunner, CPAN RT#87681]

1.22_02 2013-08-08

    - Make Net::FTP::dataconn::close() more robust.  [Together with changes to
      Net::FTP already made in 1.22_01, this resolves CPAN RT#37700.]

    - Document scalar/list context return values from Net::Cmd::message().

    - Fix broken URL.  [CPAN RT#68749]

    - Fix documentation typo in Net::Netrc.

    - Fix broken POD in Net::POP3.

    - Improve Net::SMTP documentation of new(), auth() and message().  [CPAN
      RT#36038]

    - Add proper skips to skipped tests in ftp.t.

    - Import hostname.t fix from Perl core commit #adeb94125a.

    - Add time.t, imported from Perl core commit #c85707204c.

    - Add new maintainer information, with updated CPAN and GitHub links.

1.22_01 2010-05-31 09:40:25-05:00

    - Do not create/pass a remote name if one is not given to put_unique.

    - Add ->passive() method to switch between PORT/PASV connections.

    - Accept - in command parsed from SMTP HELO response.

    - Allow group to set to a group named "0".

    - Set $@ when ->new() returns undef.

    - Add support for LocalAddr to be passed to ->new().

    - Document that timeout is in seconds.

    - Fix leading . encoding in datasend().

    - Make ->supported() check ->feature().

    - Allow words other than FILE to prefix the unique name returned in info
      message from stou.

    - Send ALLO command just before the store command.

    - Avoid warnings when server do not prefix messages with codes.

    - Use uppercase characters for xtext encoding.

    - Catch timeout condition while doing an abort.

    - Ensure REST is sent directly before command being restarted.

    - Fix URL.  [Leon Brocard, CPAN RT#49920]

    - Avoid long hang on Mac OS X when hostname is *.local by not calling
      gethostbyname().  [Father Chrysostomos]

    - Avoid infinite recursion in rmdir().

    - Allow finding _netrc on machines that do not support .netrc.  [Ben Bimber]

1.22 2007-08-26 07:13:18-05:00

[Bug Fixes]

    - Fix a bug in Net::Cmd that is_utf8() does not exist prior to Perl 5.8.1.

1.21 2007-05-19 08:53:09-05:00

[Bug Fixes]

    - Fix bug causing utf8 encoding of 8-bit strings in Net::Cmd.

    - Fix precedence issue in Net::NNTP.  [Brendan O'Dea]

    - Fixed bug causing removal of last character on the line when doing ASCII
      FTP transfers.

[Enhancements]

    - Add support for ENVID and AUTH to Net::SMTP.  [Mark Martinec]

    - Changed default for FTP transfers to be passive.

    - Added support for FTP FEAT command.

1.20 2007-02-02 19:42:51-06:00

[Bug Fixes]

    - Fixed incorrect handling of CRLF that straddled two blocks.

    - Fix bug in response() which was too liberal in what it thought was a
      response line.

    - Silence uninitialized value warnings in Net::Cmd during testing on Win32.

    - Documentation typos and updates.

[Enhancements]

    - Added support for ORCPT into Net::SMTP.

    - Support for servers that expect the USER command in upper or lower case.
      Try USER first then try user if that fails.

1.19 2004-06-30 14:53:48+01:00

[Bug Fixes]

    - Fixed datasend() test to work on Win32 platform.

    - Fixed Authen::SASL checking in Net::SMTP and Net::POP3.

    - Fixed bug that a restarted get with Net::FTP did not append to local file.

1.18 2004-03-22 16:19:01Z

[Bug Fixes]

    - Fixed bug in CRLF translation in Net::Cmd datasend()/dataend() methods.

    - Fixed bug in converting numbers returned by PASV command into a packed IP
      address.

    - Fixed bug that caused Net::FTP->get() to truncate the local file after the
      restart method had been called.

    - Fixed bug in Net::FTP->rmdir() when the server returned . and .. in the
      contents of a directory.

    - Fixed bug in Net::POP3 that was sending unnecessary RSETs.

[Enhancements]

    - Added support for POP3 CAPA command.

    - Added support for XVERP to Net::SMTP.

    - Added Net::POP3->banner() method to return the banner received from the
      server during connect.

    - Added Net::POP3->auth() method for performing authentication using SASL;
      requires Authen::SASL.

    - Added Host option to ->new() constructor of FTP, NNTP, SMTP and POP3,
      which can be used instead of passing the host as the first argument.

    - Added ->host() method to FTP, NNTP, SMTP and POP3 to return the host
      string used for the connect.  This is useful to determine which host was
      connected to when multiple hosts are specified.

    - Added support for more non-standard responses to Net::FTP->size().

    - Updated POD for Net::SMTP with respect to not passing a Hello parameter to
      the constructor.  [Jeff Macdonald]

ChangeLogs for releases prior to 1.18 may be found at:
https://github.com/steve-m-hay/perl-libnet/blob/v1.17/ChangeLog