about summary refs log tree commit
tag namev1.13.0 (9161a91537d7eee9b483fab97af7307e3ec130f5)
tag date2016-08-05 07:26:39 +0000
tagged byEric Wong <e@80x24.org>
tagged objectcommit 30140c431b...
yahns 1.13.0 - some user-visible improvements...
And probably a billion new regressions!

yahns now allows users to skip the Rack::Head, Rack::Chunked and
Rack::ContentLength middlewares to ease migrating from/to other
real-world Rack HTTP servers.  Most notably, our chunked
encoding implementation is a bit faster than Rack::Chunked by
taking advantage of the writev(2) syscall:

  https://yhbt.net/yahns-public/20160803031906.14553-4-e@80x24.org/

There's also rack 2.x fixes in the test case and extras/ section
(these incompatibilities did not affect existing users unless
they use the wonky extras/ section).

There's also some graceful shutdown fixes, the process title is
now changed to display the number of live FDs.

Of course, there's the usual round of documentation improvements
which are systemd and OpenSSL setup-related this time around.

However, the majority of changes (proxy_*, wbuf_lite), affect
currently-unadvertised functionality which is subject to removal
or incompatible config changes.  However, they are used to serve
our mailing list archives at:

	https://yhbt.net/yahns-public/

49 changes since yahns 1.12.5:
      proxy_pass: simplify writing request bodies upstream
      proxy_pass: hoist out proxy_res_headers method
      proxy_pass: simplify proxy_http_response
      proxy_pass: split out body and trailer reading in response
      proxy_pass: trim down proxy_response_finish, too
      proxy_pass: split out req_res into a separate file
      proxy_pass: fix resumes after complete buffering is unblocked
      proxy_pass: X-Forwarded-For appends to existing list
      proxy_pass: pass entire object to proxy_http_response
      proxy_pass: support "proxy_buffering: false"
      proxy_pass: remove unnecessary rescue
      req_res: store proxy_pass object here, instead
      proxy_pass: redo "proxy_buffering: false"
      wbuf: remove needless "busy" parameter
      Merge branch 'maint'
      extras/try_gzip_static: do not show backtrace on syscall errors
      wbuf: remove tmpdir parameter
      wbuf_lite: fix write retries for OpenSSL sockets
      test_proxy_pass_no_buffering: fix racy test
      queue_*: check for closed IO objects
      cleanup graceful shutdown handling
      proxy_pass: more descriptive error messages
      proxy_pass: fix HTTP/1.0 backends on EOF w/o buffering
      wbuf_common: reset offset counter when done
      extras/try_gzip_static: resolve symlinks
      test_ssl: remove unnecessary priv_key DH parameter
      openssl_client: wrap shutdown for graceful termination
      proxy_pass: keep trailer buffer on blocked client writes
      proxy_pass: avoid TOCTTOU race when unbuffering, too
      proxy_pass: avoid accessing logger in env after hijacking
      proxy_pass: avoid stuck responses in "proxy_buffering: false"
      extras: include status messages in responses
      update init and add systemd examples
      test_proxy_pass_no_buffering: exclude rb/ru files, too
      wbuf_lite: use StringIO instead of TmpIO
      wbuf_lite: truncate StringIO when done
      wbuf_lite: prevent clobbering responses
      wbuf_lite: unify EOF error handling
      wbuf_lite: reset sf_offset/sf_count consistently
      wbuf_lite: clear @busy flag when re-arming
      http_response: drop bodies for non-compliant responses
      fix rack 2.x compatibility bugs
      doc: add session cache usage to OpenSSL example
      test: skip some buffering tests on non-default values
      response: drop clients after HTTP responses of unknown length
      response: reduce stack overhead for parameter passing
      response: support auto-chunking for HTTP/1.1
      Revert "document Rack::Chunked/ContentLength semi-requirements"
      extras/exec_cgi: fix for HTTPoxy vulnerability