1. 22 Jan, 2019 3 commits
    • Kenton Varda's avatar
      Merge pull request #787 from capnproto/fix-http-client-adapter-cancelation · bd54ed6e
      Kenton Varda authored
      Fix HttpClient-from-HttpService wrapper prematurely cancelling service promise.
      bd54ed6e
    • Kenton Varda's avatar
      WebSocket pump() should end at Close message. · 3fcd0f46
      Kenton Varda authored
      This reverts the core change from: https://github.com/capnproto/capnproto/commit/6e4c5ce3c9f31a5e79b50cd9eaae6d03106edf98
      
      There are a few reasons to believe that change was wrong:
      - It meant that a pump would always throw and catch a DISCONNECTED exception, which violates the rule that we don't throw exceptions in "normal" operation.
      - It could lead to trouble when combined with the previous commit, which could delay WebSocket disconnect until the service "completes" -- which would lead to a hang.
      
      The commit message where I introduced this said something about bad behavior on OSX. We should address that directly, if it is still a problem.
      3fcd0f46
    • Kenton Varda's avatar
      Fix HttpClient-from-HttpService wrapper prematurely cancelling service promise. · 90d48343
      Kenton Varda authored
      The client app will typically discard the returned response body upon reading EOF. However, the server app may not actually be "done" with the service callback yet at this point. Usually it completes very soon after, but it may need another turn or two of the event loop. If the client discards the response body stream, the server-side promise is discarded, cancelling whatever was left. This is awkward, so we should instead delay the client from seeing EOF until the server has actually finished up.
      90d48343
  2. 12 Dec, 2018 1 commit
  3. 11 Dec, 2018 6 commits
  4. 10 Dec, 2018 2 commits
  5. 07 Dec, 2018 4 commits
  6. 29 Nov, 2018 2 commits
  7. 26 Nov, 2018 4 commits
  8. 22 Nov, 2018 2 commits
  9. 21 Nov, 2018 1 commit
    • Kenton Varda's avatar
      Extend kj::Url with option to not collapse empty path/query components. · a358282e
      Kenton Varda authored
      This is to fix a complaint about Cloudflare Workers removing these components as requests pass through, which apparently breaks someone's funky URLs.
      
      Arguably "." and ".." processing presents a similar problems. But, allowing ".." to pass through is much more likely to lead to security problems. Browsers will generally process "." and ".." before sending a request (whereas they won't collapse double-slashes), so we're following their lead here.
      a358282e
  10. 17 Nov, 2018 1 commit
  11. 07 Nov, 2018 1 commit
  12. 06 Nov, 2018 1 commit
  13. 05 Nov, 2018 1 commit
    • Kenton Varda's avatar
      Allow WebSocket to keep sending after close(). · 308e5cda
      Kenton Varda authored
      In Cloudflare Workers, we've observed applications in the wild that continue to send messages after a Close message. This is incorrect, but it happens, and we end up logging a spurious error as we attempt to proxy the message through.
      
      By removing this restriction, we can now proxy these WebSockets despite the incorrect usage.
      308e5cda
  14. 29 Oct, 2018 2 commits
  15. 26 Oct, 2018 1 commit
  16. 20 Oct, 2018 1 commit
  17. 12 Oct, 2018 2 commits
    • Kenton Varda's avatar
      Merge pull request #751 from… · f73ac9f6
      Kenton Varda authored
      Merge pull request #751 from capnproto/harris/zero-length-responses-get-no-content-length-and-great-sadness
      
      Zero-length HTTP responses get no Content-Length header
      f73ac9f6
    • Harris Hancock's avatar
      Zero-length HTTP responses to HEAD get no Content-Length header · 48083d47
      Harris Hancock authored
      There is currently no way to explicitly omit a Content-Length/Transfer-Encoding header on an HTTP response to a HEAD request. This is awkward for a proxy, which would ideally pass along responses as-is, even if they have no such headers.
      
      This change allows an author to pass zero as the expected body length to HttpService::Response::send() to mean "do not set any body header." This means that a proxy might strip Content-Length: 0 headers, but will never add a Content-Length header where there was none before.
      48083d47
  18. 10 Oct, 2018 2 commits
  19. 08 Oct, 2018 1 commit
  20. 07 Oct, 2018 2 commits