Latest release

nghttp2 v1.14.0

@tatsuhiro-t tatsuhiro-t released this Aug 25, 2016 · 20 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 · 100 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 · 123 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)


nghttp2 v1.11.1

@tatsuhiro-t tatsuhiro-t released this May 29, 2016 · 237 commits to master since this release

  • nghttpx: Fix bug that regular timeout on HTTP/1 backend makes that backend unavailable for load balancing


nghttp2 v1.11.0

@tatsuhiro-t tatsuhiro-t released this May 26, 2016 · 237 commits to master since this release

  • lib: Add nghttp2_hd_inflate_hd2() and deprecate nghttp2_hd_inflate_hd()
  • lib: Avoid 0-length DATA if NGHTTP2_DATA_FLAG_NO_END_STREAM is set
  • lib: Fix bug that PING flags are ignored in nghttp2_submit_ping
  • integration: Workaround runtime error: cgo argument has Go pointer to Go pointer
  • src: Compile with OpenSSL 1.1.0-pre5
  • h2load: Enable kqueue if it is available in the running platform
  • h2load: Fix crash on exit on FreeBSD
  • nghttp: Eliminate zero length DATA frame at the end if possible
  • nghttpd: Enable kqueue if it is available on the running platform
  • nghttpd: Set content-length in status response
  • nghttpx: Add connection: close to mruby response in graceful shutdown period
  • nghttpx: Add mruby env.server_addr and env.tls_used attributes
  • nghttpx: Add mruby env.server_port to return frontend server side port
  • nghttpx: Add sni keyword to --backend option
  • nghttpx: Allow mixed protocol and TLS settings among backends under same pattern
  • nghttpx: Don't add 0-length DATA when response HEADERS bears END_STREAM flag
  • nghttpx: Don't add chunked encoded response body for HEAD request
  • nghttpx: Don't use CN if we have dNSName or iPAddress field
  • nghttpx: Enable kqueue by default
  • nghttpx: Just call execv instead of execve to pass environ
  • nghttpx: Make SETTINGS timeout value configurable
  • nghttpx: Save PID file after it is ready to accept connections
  • nghttpx: Treat backend failure if SETTINGS is not received within timeout
  • nghttpx: Wait for SETTINGS ACK to make sure that backend h2 server is alive


nghttp2 v1.10.0

@tatsuhiro-t tatsuhiro-t released this Apr 25, 2016 · 299 commits to master since this release

  • Pass unknown SETTINGS values to nghttp2_on_frame_recv_callback
  • Add ALTSVC frame support
  • Run error callback when peer does not send initial SETTINGS frame
  • Update http-parser
  • Update sphinx_rtd_theme
  • nghttp: add an --expect-continue option (Patch from Jacob Champion)
  • nghttpx: Fix downstream connect callback called early (Patch from Brian Suh)
  • nghttpx: Truncate too long -b option signature
  • nghttpx: Fix bug that server push from mruby script did not work
  • nghttpx: Try next HTTP/1 backend address when connection cannot be made
  • nghttpx: Retry next HTTP/2 backend address when connection cannot be made
  • nghttpx: Enable link header field based push for non-final response
  • nghttpx: Detect online/offline state of backend servers
  • nghttpx: Better load balancing between backend HTTP/2 servers
  • nghttpx: Fix crash with backend failure


nghttp2 v1.9.2

@tatsuhiro-t tatsuhiro-t released this Apr 3, 2016 · 386 commits to master since this release

  • nghttpx: Fix crash with backend failure
  • nghttpx: Better distribute load to backend h2 servers
  • nghttpx: Fix error messages on deprecated mode (Patch from Jianqing Wang)
  • nghttpx: Fix bug that logger wrote string which was not NULL-terminated
  • nghttpx: Fix bug that proxy with HTTP/1.1 CONNECT did not work


nghttp2 v1.9.1

@tatsuhiro-t tatsuhiro-t released this Mar 27, 2016 · 386 commits to master since this release

  • nghttpx: Fix bug that backend tls keyword did not work with -s option
  • nghttpx: Fix handing stream after connection check was failed


nghttp2 v1.9.0

@tatsuhiro-t tatsuhiro-t released this Mar 26, 2016 · 393 commits to master since this release

  • lib: Add nghttp2_error_callback to tell application human readable error message
  • lib: Reference counted HPACK name/value pair, adding nghttp2_on_header_callback2
  • lib: Add nghttp2_option_set_no_auto_ping_ack() option
  • lib: Add nghttp2_http2_strerror() to return HTTP/2 error code string
  • build: Makefile.msvc enhancements (Patch from Jan-E)
  • build: Lower libev version requirement (Patch from Peter Wu)
  • build: cmake build support (Patch from Peter Wu)
  • asio: Fix bug that server event loop breaks with exception
  • integration: Disable tests that sometimes break randomly on travis
  • integration: do not use recursive target (Patch from Peter Wu)
  • h2load: Fix bug that it did not try to connect to server again
  • h2load: Fix bug that initial max concurrent streams was too large
  • nghttpx: Memcached connection encryption with tls keyword
  • nghttpx: Enable/disable TLS per frontend address
  • nghttpx: Configure TLS per backend routing pattern
  • nghttpx: Workaround for Ubuntu 15.04 which does not value-initialize on std::make_shared.
  • nghttpx: Add --error-page option to set custom error pages
  • nghttpx: Add wildcard host routing
  • nghttpx: Change read timeout reset timing
  • nghttpx: Don't push if Link header field includes nopush
  • nghttpx: Deprecate backend-http1-connections-per-host in favor of backend-connections-per-host
  • nghttpx: Restructure mode settings, removing --http2-bridge, --client, and --client-proxy options
  • nghttpx: Deprecate backend-http1-connections-per-frontend in favor of backend-connections-per-frontend
  • nghttpx: Don't share session which is already in draining state
  • nghttpx: Effectively disable backend HTTP/2 connection flow control
  • nghttpx: Add --frontend-http2-max-concurrent-streams and --backend-http2-max-concurrent-streams, and deprecate --http2-max-concurrent-streams option
  • nghttpx: Deprecate --backend-http2-connections-per-worker option
  • nghttpx: Share TLS session cache between HTTP/2 and HTTP/1 backend
  • nghttpx: Rewrite backend HTTP/2 connection coalesce strategy


nghttp2 v1.8.0

@tatsuhiro-t tatsuhiro-t released this Feb 25, 2016 · 607 commits to master since this release

  • Add Architecture documents (work in progress)
  • List all contributors in AUTHORS
  • doc: fix out-of-tree doc builds (Patch from Peter Wu)
  • Wrap AM_PATH_XML2 by m4_ifdef to handle the case when AM_PATH_XML2 is not found
  • Fix configure script for non-gcc, clang build
  • Document compiling apps and include h2load in configure (Patch from David Beitey)
  • Don't check for dlopen/libdl on *BSD (Patch from Bernard Spil)
  • Don't taint CXXFLAGS from AX_CXX_COMPILE_STDCXX_11
  • Fixing Windows Makefile version detection (Patch from Reza Tavakoli)
  • lib: Tokenize extra HTTP header fields
  • lib: Fix typo in HAVE_CONFIG_H name (Patch from Peter Wu)
  • lib: Add HTTP/2 extension framework to send and receive non-critical frames
  • tests: remove unused macros (Patch from Peter Wu)
  • src: Update default cipher list
  • src: Fix compile error with gcc-6 which enables C++14 by default
  • asio: client: Fix connect timeout does not work, return from cb if session stopped, removing client::session::connect_timeout() functon
  • nghttpd: Start SETTINGS timer after it is written to output buffer
  • nghttpd: Add trailer header field to status responses
  • nghttpd: Add -w and -W options to change window size
  • nghttpx: Worker wide blocker which is used when socket(2) is failed
  • nghttpx: ConnectBlocker per backend address
  • nghttpx: Interleave text/html pushed resources with associated resource
  • nghttpx: Add headers given in add-response-headers for mruby response
  • nghttpx: Deprecate --backend-ipv4 and --backend-ipv6 in favor of --backend-address-family
  • nghttpx: Add options to specify address family of memcached connections
  • nghttpx: Add encryption support for TLS ticket key retrieval
  • nghttpx: Add TLS support for session cache memcached connection
  • nghttpx: Refactor blacklisted cipher suite check (Patch from Jay Satiro)
  • nghttpx: Add TLS support for HTTP/1 backend
  • nghttpx: Add request-header-field-buffer and max-request-header-fields options, deprecating header-field-buffer and max-header-fields options.
  • nghttpx: Add --no-http2-cipher-black-list to allow black listed cipher suite
  • nghttpx: Limit header fields from backend
  • nghttpx: Fix bug that IPv6 address in Forwarded "for" is not quoted-string
  • nghttpx: Support multiple frontend addresses
  • integration-tests: support out-of-tree tests (Patch from Peter Wu)
  • examples: fix compile warnings (Patch from Peter Wu)