Latest release

nghttp2 v1.18.1

@tatsuhiro-t tatsuhiro-t released this Jan 5, 2017 · 67 commits to master since this release

  • nghttpx: Fix assertion error in libev ev_io_start (GH-759)
  • nghttpx: Handle c-ares success without result
  • nghttpx: Fix bug that DNS timeout was erroneously disabled (GH-763)
  • nghttpx: Fix bug that DNS timeout was ignored (GH-763)


nghttp2 v1.18.0

@tatsuhiro-t tatsuhiro-t released this Dec 27, 2016 · 67 commits to master since this release

  • lib: Accept and ignore content-length: 0 in 204 response for now
  • build: Use pkg-config to detect libxml2
  • build: Require c-ares to compile applications under src
  • build: Add Windows CI via AppVeyor (Patch from Alexis La Goutte)
  • examples: Delete tiny-nghttpd
  • nghttpx: Retry h1 backend request if first write fails (GH-757)
  • nghttpx: Keep reading after backend write failed (GH-756)
  • nghttpx: Add frontend-keep-alive-timeout option (GH-755)
  • nghttpx: New error log format (GH-749)
  • nghttpx: Fix bug that fetch-ocsp-response does not work with OpenSSL 1.1.0 (GH-742)
  • nghttpx: Backend API call allows non-numeric host with dns parameter (GH-731)
  • nghttpx: Lookup backend host name dynamically (GH-721)
  • nghttpx: Accept and ignore content-length: 0 in 204 response for now (GH-735)
  • nghttpx: Wait for child process to exit


nghttp2 v1.17.0

@tatsuhiro-t tatsuhiro-t released this Nov 27, 2016 · 130 commits to master since this release

  • lib: Disallow content-length in 1xx, 204, or 200 to a CONNECT request (GH-722)
  • lib: Avoid memcpy against NULL src
  • build: MSVC version resource support (Patch from Remo E) (GH-718)
  • asio: server: Call on_close callback on connection close (GH-729)
  • nghttpx: Fix frequent crash with --backend-http-proxy-uri
  • nghttpx: Robust backend read timeout
  • nghttpx: Fix bug that mishandles response header from h1 backend
  • nghttpx: Fix bug that zero-length POST is not forwarded (GH-726)
  • nghttpx: Remove optional reason-phrase from SPDY :status
  • nghttpx: Header key and value must be string in mruby script
  • nghttpx: Strip content-length with 204 or 200 to CONNECT in mruby (GH-722)
  • nghttpx: Strict handling for Content-Length or Transfer-Encoding in h1 (GH-722)
  • nghttpx: Fix compilation with BoringSSL (Patch from dalf) (GH-717)
  • nghttpd, nghttpx, asio: Add missing mandatory SP after status code


nghttp2 v1.16.1

@tatsuhiro-t tatsuhiro-t released this Nov 13, 2016 · 170 commits to master since this release

  • lib: Prevent undefined behavior in decode_length (Patch from Matt Rudary)
  • nghttpx: Fix bug which may crash nghttpx if non-final response is forwarded from origin server to HTTP/1.1 client


nghttp2 v1.16.0

@tatsuhiro-t tatsuhiro-t released this Oct 24, 2016 · 170 commits to master since this release

  • lib: Add nghttp2_set_debug_vprintf_callback to take advantage of DEBUGF statements in when building DEBUGBUILD. (Patch from Anders Bakken) (GH-708)
  • Update .clang-format for clang-format-3.9
  • build: Make it possible to include nghttp2/CMakeLists.txt in another project using add_subdirectory. (Patch from Anders Bakken) (GH-707)
  • third-party: Update http-parser to feae95a3a69f111bc1897b9048d9acbc290992f9
  • asio: Fix crash when end() is called outside nghttp2 callback (GH-712)
  • nghttpx: Add --backend-connect-timeout option
  • nghttpx: Add TLS signed_certificate_timestamp extension support (GH-696)
  • nghttpx: Add --ecdh-curves option to specify list of named curves (GH-701)
  • h2load: Add --header-table-size and --encoder-header-table-size options (GH-699)


nghttp2 v1.15.0

@tatsuhiro-t tatsuhiro-t released this Sep 25, 2016 · 259 commits to master since this release

  • lib: Add nghttp2_option_set_max_deflate_dynamic_table_size() API function (GH-684)
  • lib: Allow NGHTTP2_ERR_PAUSE from nghttp2_data_source_read_callback (GH-671)
  • lib: Add nghttp2_session_get_hd_deflate_dynamic_table_size() and nghttp2_session_get_hd_inflate_dynamic_table_size() API functions to get current HPACK dynamic table size (GH-664)
  • lib: Add nghttp2_session_get_local_settings() API function (GH-664)
  • lib: Add nghttp2_session_get_local_window_size() and nghttp2_session_get_stream_local_window_size() API functions (GH-664)
  • build: Add -lsocket -lnsl to APPLDFLAGS for solaris build (GH-674)
  • neverbleed: Update neverbleed to support ECDSA certificate
  • doc: Mention --enable-lib-only configure option in README
  • integration: Fix test failure with go1.7.1
  • src: Fix compile error with openssl 1.1.0
  • nghttpx: Improve performance with HTTP/1.1 backend when request body is involved
  • nghttpx: Use std::atomic_* overloads for std::shared_ptr if available
  • nghttpx: Migrate backend stream to another h2 session on graceful shutdown
  • nghttpx: Add option to specify HPACK encoder/decoder dynamic table size
  • nghttpx: Log client address
  • nghttpx: Add tls_sni to mruby Nghttpx::Env class
  • nghttpx: Add --frontend-http2-window-size option, and its family functions
  • nghttpx: Add experimental TCP optimization for h2 frontend
  • nghttpx: Workaround for std::make_shared bug in Xcode7, 7.1, and 7.2 (GH-670)
  • nghttpx: Fix bug that bytes are doubly counted to rate limit for TLS connections
  • nghttpx: Add --no-server-rewrite option not to rewrite server header field (GH-667)
  • nghttpx: Retry if backend h1 connection cannot be established due to timeout
  • nghttpx: Reset stream if invalid header field is received in h2
  • nghttpx: Add --server-name option to change server response header field (GH-667)
  • nghttpd: Add --encoder-header-table-size option
  • nghttp: Add --encoder-header-table-size option
  • python: Support ALPN, require Python 3.5


nghttp2 v1.14.1

@tatsuhiro-t tatsuhiro-t released this Sep 10, 2016 · 333 commits to master since this release

  • lib: Fix GOAWAY race with new incoming stream on server side (GH-681)


nghttp2 v1.14.0

@tatsuhiro-t tatsuhiro-t released this Aug 25, 2016 · 333 commits to master since this release

  • lib: Make emit_header() return void since it always succeed (Patch from Wenfeng Liu)
  • lib: Add nghttp2_hd_deflate_hd_vec() deflate API to support multiple buffer input (Patch from Wenfeng Liu) (GH-654)
  • lib: since hd_inflate_commit_indexed() always return 0, remove the return value check in nghttp2_hd_inflate_hd_nv() (Patch from Wenfeng Liu)
  • lib: Use memeq() instead of lstreq() in lookup_token() (Patch from Wenfeng Liu)
  • lib: More strict stream state handling
  • lib: Modify to remove redundant header comparisons and remove inline qualifier of lookup_token() in (Patch from Wenfeng Liu)
  • lib: Fix wrong tree operation to avoid cycle
  • lib Make get_max_index() return the max index in frame, so we don't need to do extra calculation (Patch from Wenfeng Liu) (GH-644)
  • lib: Add nghttp2_on_invalid_header_callback (GH-642)
  • lib: Log frame's stream ID for header debug logging
  • doc: Remove old doc about differential encoding in HPACK (GH-652)
  • doc: Document about ALPN in nghttpx howto (GH-638)
  • nghttpx: Log error code from getsockopt(SO_ERROR) on first write event
  • nghttpx: Don't change pushed stream's priority
  • nghttpx: Log backend connection failure in WARN level
  • nghttpx: Fix bug that api and healthmon parameters do not work with http2 proxy (GH-661)
  • nghttpx: Add access log variable for backend host and port (GH-640)
  • nghttpx: Use copy instead of const reference of backend group
  • nghttpx: Reload configuration with SIGHUP (GH-639)
  • nghttp: Adjust weight according to Firefox stable
  • nghttp: Call error callback when invalid header field is received and ignored
  • nghttp: Allow multiple -p option (GH-636)
  • deflatehd: Call nghttp2_hd_deflate_change_table_size only if table size is changed from default


nghttp2 v1.13.0

@tatsuhiro-t tatsuhiro-t released this Jul 21, 2016 · 413 commits to master since this release

  • lib: Cancel non-DATA frame transmission from nghttp2_before_frame_send_callback (GH-625)
  • doc: Fix warning with Sphinx 1.4 (GH-632)
  • build: Work with Android NDK r12b
  • nghttpx: Use consistent hashing for client IP based session affinity
  • nghttpx: Fix FTBFS on armel by explicitly including the header (Patch from Tomasz Buchert) (GH-627)
  • nghttpx: Cast to double to fix build with gcc 4.8 on Solaris 11 (GH-624)
  • nghttpx: Fix build error with libressl (GH-623)
  • examples: Fix compile error with OpenSSL v1.1.0-beta2


nghttp2 v1.12.0

@tatsuhiro-t tatsuhiro-t released this Jun 26, 2016 · 436 commits to master since this release

  • Add nghttp2_session_set_local_window_size API function
  • Add nghttp2_option_set_max_send_header_block_length API function (GH-613)
  • Fix warning: declaration of 'free' shadows a global declaration (Patch from Alexis La Goutte)
  • examples: Add ALPN support to tutorial client/server (GH-614)
  • nghttpx: Reduce TTFB with large number of incoming connections
  • nghttpx: Rewrite read timer handling
  • nghttpx: Clean up neverbleed AF_UNIX socket
  • nghttpx: Add --backend-max-backoff option
  • nghttpx: Use 16KiB buffer for reading to match TLS record size
  • nghttpx: Add healthmon parameter to -f option to enable health monitor mode
  • nghttpx: Receive reference of std::mt19937, not making a copy
  • nghttpx: Fix bug that backend never return to online (GH-615)
  • nghttpx: Implement client IP based session affinity
  • nghttpx: Add --api-max-request-body option to set maximum API request body size
  • nghttpx: Add api parameter to --frontend option to mark API endpoint
  • h2load: Add content-length header field for HTTP/2 and SPDY as well
  • h2load: Implement HTTP/1 upload (GH-611)