              Apache Commons Net 3.7
                  RELEASE NOTES

The Apache Commons Net team is pleased to announce the release of Apache Commons Net 3.7

Apache Commons Net library contains a collection of network utilities and protocol implementations.
Supported protocols include: Echo, Finger, FTP, NNTP, NTP, POP3(S), SMTP(S), Telnet, Whois

This is mainly a bug-fix release. See further details below.
 This release requires a minimum of Java 7.
 This release is binary compatible with previous releases.
However it is not source compatible with releases before 3.4, as some methods were added to the interface NtpV3Packet in 3.4
 Note that the examples packages were moved under org/apache/commons/net/examples.
The examples are not part of the public API, so this does not affect compatibility.

Changes in this version include:

New features:
o NET-646:  ALLO FTP Command for files >2GB
o NET-615:  IMAPClient could simplify using empty arguments
o NET-614:  IMAP fails to quote/encode mailbox names
o NET-648:  Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility
o NET-638:  Telnet subnegotiations hard-limited to 512 bytes - allow override Thanks to Daniel Leong.
o NET-634:  Add SIZE command support Thanks to Mauro Molinari.
o           Add POP3ExportMbox example code
o NET-674:  FTPListParseEngine should support listing via MLSD Thanks to Chris Steingen.
o NET-660:  Next and Previous IP Address in SubnetUtils.SubnetInfo Thanks to Nagabhushan S N.

Fixed Bugs:
o NET-673:  IMAPClient.APPEND does not always calculate the correct length
o NET-643:  NPE when closing telnet stream Thanks to Vasily.
o NET-641:  SubnetUtils.SubnetInfo.isInRange("0.0.0.0") returns true for CIDR/31, 32 Thanks to pin_ptr.
o NET-639:  MVSFTPEntryParser.preParse - MVS, z/OS - allow for merged Ext/Used fields Thanks to Alexander Eller.
o NET-636:  examples should be in org.apache.commons.net subpackage
o NET-631:  Bug in MVSFTPEntryParser.parseUnixList (FindBugs)
o NET-584:  Error when using org.apache.commons.net.ftp.FTPClient setControlKeepAliveTimeout Thanks to Kazantsev Andrey Sergeevich/Nick Manley.
o NET-624:  SubnetInfo#toCidrNotation: A wrong format subnet mask is allowed Thanks to Makoto Sakaguchi.
o NET-623:  SubnetUtils - fixed spelling errors Thanks to Makoto Sakaguchi.
o NET-613:  System Information Leak in ftp parser Thanks to Donald Kwakkel.
o NET-663:  NullPointerException when FTPClient remote verification fails Thanks to Max Shenfield.
o NET-649:  227 Entering Passive Mode Thanks to Filipe Bojikian Rissi.
o NET-682:  MVSFTPEntryParser doesn't support Record Formats of U Thanks to richard.

Changes:
o NET-633:  Add XOAUTH2 to IMAP and SMTP Thanks to n0rm1e.
o NET-632:  FTPHTTPClient - support for encoding other than UTF-8 Thanks to prakapenka.
o NET-626:  SubnetUtils#SubnetUtils - improved comment Thanks to Makoto Sakaguchi.
o NET-625:  SubnetUtils - improve construction
o NET-624:  SubnetInfo#getCidrSignature - improve functions Thanks to Makoto Sakaguchi.
o NET-621:  SubnetUtils#SubnetInfo - remove unnecessary accessors Thanks to Makoto Sakaguchi.
o NET-619:  SubnetUtils - improve binary netmask algorithm Thanks to Makoto Sakaguchi.
o NET-678:  VMS ftp LIST parsing results in empty file list Thanks to Roman Grigoriadi.


Historical list of changes: https://commons.apache.org/proper/commons-net/changes-report.html

For complete information on Apache Commons Net, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Apache Commons Net website:

https://commons.apache.org/proper/commons-net/

Download page: https://commons.apache.org/proper/commons-net/download_net.cgi
