<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!DOCTYPE document [
  <!ENTITY project SYSTEM "project.xml">
]>
<?xml-stylesheet type="application/xslt+xml" href="../style.xsl"?>
<document url="changelog.html">

  &project;

  <properties>
    <author email="jfclere@apache.org">Jean-Frederic Clere</author>
    </properties>

<body>

<section name="Preface">
  <p>
  This is the Changelog for Tomcat Native 1.2.
  </p>
</section>
<section name="Changes in 1.2.10">
  <changelog>
      Update minimum recommended OpenSSL version to 1.0.2j. (markt)
  </changelog>
</section>
<section name="Changes in 1.2.9">
  <changelog>
    <update>
      Update minimum recommended OpenSSL version to 1.0.2i. (markt)
    </update>
  </changelog>
</section>
<section name="Changes in 1.2.8">
  <changelog>
    <fix>
      <bug>59616</bug>: Correct the Windows build files so that OCSP is
      correctly enabled and disabled in the respective Windows binaries. (markt)
    </fix>
    <fix>
      Correctly handle OS level EAGAIN return codes during non-blocking TLS I/O.
      (markt)
    </fix>
    <fix>
      Correct a potential performance problem identified by Nate Clark due to
      Tomcat Native providing OpenSSL with thread identifiers poorly suited to
      the hash function used by OpenSSL when selecting a bucket for the hash
      that holds the per thread error data. Tomcat Native on Windows and on
      Solaris were not affected. A fix has been applied for OSX and Linux. Other
      platforms may still be affected. (markt/rjung)
    </fix>
  </changelog>
</section>
<section name="Changes in 1.2.7">
  <changelog>
    <update>
      Update minimum recommended OpenSSL version to 1.0.2h. (markt)
    </update>
  </changelog>
</section>
<section name="Changes in 1.2.6">
  <changelog>
    <update>
      Change the OpenSSL version check in <code>configure</code>
      to be fatal. (rjung)
    </update>
    <update>
      Use new OpenSSL 1.1.0 protocol version max and min API
      when creating a new SSL context. (rjung)
    </update>
    <update>
      Improve renegotiation code and make it compatible with
      OpenSSL 1.1.0. (rjung)
    </update>
    <scode>
      OpenSSL 1.1.0 compatibility updates. (rjung)
    </scode>
    <fix>
      Fix some compiler warnings in native ssl code. (rjung)
    </fix>
    <add>
      Add support for using Java keystores for certificate chains. (markt)
    </add>
    <update>
      Remove the explicit CRL check when verifying certificates.
      The checks were already part of the internal certification
      verification since OpenSSL 0.9.7. Backport from mod_ssl.
      (rjung)
    </update>
  </changelog>
</section>
<section name="Changes in 1.2.5">
  <changelog>
    <update>
      Enable OpenSSL version check in <code>configure</code> by
      default. It can be turned off using
      <code>--disable-openssl-version-check</code>. (rjung)
    </update>
    <fix>
      <bug>59024</bug>: Native function <code>versionString()</code> and
      for OpenSSL 1.1.0 also <code>version()</code> (both in in ssl.c) now
      return the OpenSSL run time version, not the compile time version.
      (rjung)
    </fix>
    <scode>
      Track changes in the OpenSSL master branch so it is possible to build
      Tomcat Native with that branch. (billbarker)
    </scode>
  </changelog>
</section>
<section name="Changes in 1.2.4">
  <changelog>
    <fix>
      SSL.getHandshakeCount(), which was unused, now returns the handshake
      completed count rather than the handshake started count. (remm)
    </fix>
  </changelog>
</section>
<section name="Changes in 1.2.3">
  <changelog>
    <fix>
      Remove Java classes that do not have C implementation code
      for their native methods in the current library. They were
      used for NPN support which is superseded by ALPN support
      in the current code. (kkolinko)
    </fix>
    <fix>
      Fix typo in declaration of a stub method used when the library is
      compiled without OpenSSL support. (kkolinko)
    </fix>
    <fix>
      Fix the signature of the implementation of the native SSL method
      newSSL() in the case when OPENSSL is not available. (rjung)
    </fix>
    <fix>
      Fix the signature of the implementation of the native SSLSocket
      method getInfoB() to return jbyteArray instead of jobject.
      This is consistent with what it actually returns and how
      the native Java method is declared. (rjung)
    </fix>
    <add>
      Add support for using Java keystores for certificates and keys. (jfclere)
    </add>
    <scode>
      Remove code that performs a read after a renegotiation that appears to be
      unnecessary with OpenSSL 1.0.2. (billbarker)
    </scode>
    <add>
      Expose <code>SSL_renegotiate</code> to the Java API. (remm)
    </add>
  </changelog>
</section>
<section name="Changes in 1.2.2">
  <changelog>
    <fix>
      Fix broken debug and maintainer mode build. (rjung)
    </fix>
    <fix>
      Forward port additional fixes to the OpenSSL I/O to align it with
      non-OpenSSL I/O. (markt)
    </fix>
  </changelog>
</section>
<section name="Changes in 1.2.1">
  <changelog>
    <fix>
      <bug>58566</bug>: Enable Tomcat Native 1.2.x to work with Tomcat releases
      that do not have the necessary Java code to support SNI. (markt)
    </fix>
    <update>
      Minor rework of "buildconf" script. (rjung)
    </update>
    <fix>
      Fix APR dependency version expression in RPM spec file. (rjung)
    </fix>
    <fix>
      Fix major library version number in Windows build files, RPM spec file
      and build description. (rjung)
    </fix>
    <fix>
      Remove files "KEYS" and "download_deps.sh" from Windows (zip)
      source distribution. (rjung)
    </fix>
    <fix>
      Fix "unused variable" compiler warning. (rjung)
    </fix>
  </changelog>
</section>
<section name="Changes in 1.2.0">
  <changelog>
    <add>
      Add support for TLS extension ALPN. (markt)
    </add>
    <add>
      Add support for TLS extension SNI (Server Name Indication).
      (markt)
    </add>
    <add>
      Add support for OpenSSL BIO. (jfclere)
    </add>
    <add>
      Support wakeable pollsets and add Poll.interrupt() API.
      (mturk)
    </add>
    <add>
      Add Pool.unmanaged() API. (mturk)
    </add>
    <update>
      APIs SSL.generateRSATempKey() and SSL.loadDSATempKey()
      have been removed. (rjung)
    </update>
    <update>
      The minimum required APR version is 1.4.3.
    </update>
    <update>
      The minimum required OpenSSL version is 1.0.2.
    </update>
  </changelog>
</section>
<section name="Changes in 1.1.x">
<p>Please see the <a href="../../native-1.1-doc/miscellaneous/changelog.html">1.1.x
   changelog</a>.</p>
</section>
</body>
</document>
