HTTP/2 C library and tools

Nghttp2 v1.16.0

We released nghttp2 v1.16.0. We summarizes the changes below.


Previously, if libnghttp2 is built with DEBUGBUILD macro defined, it prints out debug messages into stderr. In this release, Anders Bakken added nghttp2_set_debug_vprintf_callback() function to set a callback which can customize how debug message is processed. The parameters passed to the callback are suitable for use with vfprintf(3) function.


We fixed the bug which causes crash if nghttp2::asio_http2::server::response::end() is called from outside nghttp2 callback (e.g., asynchronous timer callback).


We have added --backend-connect-timeout option to specify how long nghttpx waits until backend TCP connection is established.

The new option --ecdh-curves lets you specify the list of named curve for use in TLS.

We have added TLS signed_certificate_timestamp extension support. signed_certificate_timestamp extension is defined in RFC 6962. The new option --tls-sct-dir is used to specify the directory which contains *.sct files. These files are read in start up, and sent to client in TLS handshake. The format of *.sct files is the same as the one that nginx and Apache mod_ssl_ct use. For additional certificates specified by --subcert option, we extended the syntax of the option, and now it can take sct-dir parameter which takes the directory that should contain *.sct files for the certificate.


We have added --header-table-size and --encoder-header-table-size options to specify HPACK header table size for both direction.