-
Notifications
You must be signed in to change notification settings - Fork 241
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HTTP/2 server #687
HTTP/2 server #687
Commits on Jun 30, 2023
-
Configuration menu - View commit details
-
Copy full SHA for e1bebcd - Browse repository at this point
Copy the full SHA e1bebcdView commit details -
Re-indent safe-execute as a body macro
Update some deprecated usages Refactored some names for clarity
Configuration menu - View commit details
-
Copy full SHA for b67c250 - Browse repository at this point
Copy the full SHA b67c250View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1deac6e - Browse repository at this point
Copy the full SHA 1deac6eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9070415 - Browse repository at this point
Copy the full SHA 9070415View commit details -
Move http2 pipeline setup to a.h.http2 ns
The connection-level http2 pipelines are almost identical between client and server, because they're just setting up the frame codec and the multiplex handler.
Configuration menu - View commit details
-
Copy full SHA for 21e9dbd - Browse repository at this point
Copy the full SHA 21e9dbdView commit details
Commits on Jul 1, 2023
-
Created top-level server pipeline building fns Refactored out executor setup fns
Configuration menu - View commit details
-
Copy full SHA for 02095f2 - Browse repository at this point
Copy the full SHA 02095f2View commit details -
Replaced slow, ad hoc date formatting with Netty fns
Netty has an optimized formatter Keeps 1s scheduled executor updates
Configuration menu - View commit details
-
Copy full SHA for 2bd5198 - Browse repository at this point
Copy the full SHA 2bd5198View commit details
Commits on Jul 16, 2023
-
Configuration menu - View commit details
-
Copy full SHA for b3338de - Browse repository at this point
Copy the full SHA b3338deView commit details
Commits on Jul 29, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 3a1a149 - Browse repository at this point
Copy the full SHA 3a1a149View commit details -
Configuration menu - View commit details
-
Copy full SHA for 70fad2c - Browse repository at this point
Copy the full SHA 70fad2cView commit details -
Fix unnecessary continue-executor shutdown
If `continue-executor` is same as main executor .shutdown gets called twice. Probably harmless, but also pointless.
Configuration menu - View commit details
-
Copy full SHA for 4e7cd03 - Browse repository at this point
Copy the full SHA 4e7cd03View commit details -
Simplified common header generation
Switch to `common/date-header-value` for HTTP/1
Configuration menu - View commit details
-
Copy full SHA for 2bda782 - Browse repository at this point
Copy the full SHA 2bda782View commit details -
Update server params for setup-http1-pipeline
pipeline and handler now part of opts map
Configuration menu - View commit details
-
Copy full SHA for c5c143c - Browse repository at this point
Copy the full SHA c5c143cView commit details -
Update and fix HTTP/2 header handling
`ring-map->netty-http2-headers` now handles both requests and responses correctly. Use AsciiString/String consistently when comparing Remove unneeded null check for header values (Netty will do it) Updated add-header docstring
Configuration menu - View commit details
-
Copy full SHA for 87a3411 - Browse repository at this point
Copy the full SHA 87a3411View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1e98ffa - Browse repository at this point
Copy the full SHA 1e98ffaView commit details
Commits on Jul 31, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 463b424 - Browse repository at this point
Copy the full SHA 463b424View commit details -
Configuration menu - View commit details
-
Copy full SHA for f16147e - Browse repository at this point
Copy the full SHA f16147eView commit details
Commits on Aug 13, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 3a03056 - Browse repository at this point
Copy the full SHA 3a03056View commit details
Commits on Aug 30, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 97fda5c - Browse repository at this point
Copy the full SHA 97fda5cView commit details -
Add add-exception-handler to common to log exception that make it to the end of the pipeline. Rename attach-idle-handlers to add-idle-handlers to match the rest of the system. Move error-response and invalid-value-exception to common ns
Configuration menu - View commit details
-
Copy full SHA for b748c92 - Browse repository at this point
Copy the full SHA b748c92View commit details -
Configuration menu - View commit details
-
Copy full SHA for a35226a - Browse repository at this point
Copy the full SHA a35226aView commit details -
Hint ssl-handler with SslHandler, not ChannelHandler Hint coerce-ssl-context with SslContext
Configuration menu - View commit details
-
Copy full SHA for 7ad1b8c - Browse repository at this point
Copy the full SHA 7ad1b8cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 23503a1 - Browse repository at this point
Copy the full SHA 23503a1View commit details -
Configuration menu - View commit details
-
Copy full SHA for ded4f0f - Browse repository at this point
Copy the full SHA ded4f0fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 275cd30 - Browse repository at this point
Copy the full SHA 275cd30View commit details -
Configuration menu - View commit details
-
Copy full SHA for 04eee02 - Browse repository at this point
Copy the full SHA 04eee02View commit details -
Configuration menu - View commit details
-
Copy full SHA for 18f4ec6 - Browse repository at this point
Copy the full SHA 18f4ec6View commit details -
Convert :scheme pseudo-header to string
`keyword` doesn't work with CharSequences
Configuration menu - View commit details
-
Copy full SHA for 877f7ad - Browse repository at this point
Copy the full SHA 877f7adView commit details -
Close the circuit - http2 server now sending
Basic GET/HEAD requests work
Configuration menu - View commit details
-
Copy full SHA for 787f40f - Browse repository at this point
Copy the full SHA 787f40fView commit details -
Bump byte-streams to 0.3.4 Raise io.netty.util log level. It generates a lot of distracting logs.
Configuration menu - View commit details
-
Copy full SHA for 35c6093 - Browse repository at this point
Copy the full SHA 35c6093View commit details -
Configuration menu - View commit details
-
Copy full SHA for 21e4b44 - Browse repository at this point
Copy the full SHA 21e4b44View commit details -
Configuration menu - View commit details
-
Copy full SHA for 02ac0a8 - Browse repository at this point
Copy the full SHA 02ac0a8View commit details -
Configuration menu - View commit details
-
Copy full SHA for ed61b85 - Browse repository at this point
Copy the full SHA ed61b85View commit details -
Configuration menu - View commit details
-
Copy full SHA for 30feb0a - Browse repository at this point
Copy the full SHA 30feb0aView commit details
Commits on Aug 31, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 4522f13 - Browse repository at this point
Copy the full SHA 4522f13View commit details -
Alter final pipeline error handling
Instead of automatically closing, make final error handler in charge, if it exists. If not, continue to fire exception along pipeline. (Preferable to closing?)
Configuration menu - View commit details
-
Copy full SHA for 01f0cbc - Browse repository at this point
Copy the full SHA 01f0cbcView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5230389 - Browse repository at this point
Copy the full SHA 5230389View commit details -
Configuration menu - View commit details
-
Copy full SHA for 30e4f91 - Browse repository at this point
Copy the full SHA 30e4f91View commit details
Commits on Sep 1, 2023
-
Improve pr support for AsciiStrings
Now uses succinct AS"some string" format
Configuration menu - View commit details
-
Copy full SHA for 472254f - Browse repository at this point
Copy the full SHA 472254fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7f9ad2a - Browse repository at this point
Copy the full SHA 7f9ad2aView commit details
Commits on Sep 18, 2023
-
Configuration menu - View commit details
-
Copy full SHA for b155a4a - Browse repository at this point
Copy the full SHA b155a4aView commit details -
Configuration menu - View commit details
-
Copy full SHA for cc0ebc4 - Browse repository at this point
Copy the full SHA cc0ebc4View commit details -
Convert util fns to use ChannelOutboundInvoker
Since both Channels and ChannelHandlerContext inherit from ChannelOutboundInvoker, use that for the type hint, instead of manually checking class ourselves. Next: inline
Configuration menu - View commit details
-
Copy full SHA for e4b6b17 - Browse repository at this point
Copy the full SHA e4b6b17View commit details -
Update add-exception-handler to close and not propagate
Meant to be final exception handler in a pipeline. No point in propagating further, just results in Netty logging.
Configuration menu - View commit details
-
Copy full SHA for 522c275 - Browse repository at this point
Copy the full SHA 522c275View commit details -
If client-handler's channel goes inactive, set (or try to) complete t…
…o true If the channel closed unexpectedly, set complete to true to tell client to dispose of the connection.
Configuration menu - View commit details
-
Copy full SHA for 72d4ae1 - Browse repository at this point
Copy the full SHA 72d4ae1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9969937 - Browse repository at this point
Copy the full SHA 9969937View commit details -
Configuration menu - View commit details
-
Copy full SHA for 41c6f9e - Browse repository at this point
Copy the full SHA 41c6f9eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2c708dc - Browse repository at this point
Copy the full SHA 2c708dcView commit details -
Add header validation and status parsing
Parse response status Check for mandatory pseudo-headers As of Netty 4.1.96, the presence of mandatory pseudo-headers doesn't seem to be checked, just their values, when present.
Configuration menu - View commit details
-
Copy full SHA for 71cbb3e - Browse repository at this point
Copy the full SHA 71cbb3eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3cc3ca1 - Browse repository at this point
Copy the full SHA 3cc3ca1View commit details -
Configuration menu - View commit details
-
Copy full SHA for caa0baf - Browse repository at this point
Copy the full SHA caa0bafView commit details -
Configuration menu - View commit details
-
Copy full SHA for 467f76a - Browse repository at this point
Copy the full SHA 467f76aView commit details -
Replace server handler
complete
Replace with writable? and h2-exception. complete is needed for client, not server. writable? is checked before calling send-response
Configuration menu - View commit details
-
Copy full SHA for e449ce2 - Browse repository at this point
Copy the full SHA e449ce2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9fdf1b9 - Browse repository at this point
Copy the full SHA 9fdf1b9View commit details -
Configuration menu - View commit details
-
Copy full SHA for f6188c0 - Browse repository at this point
Copy the full SHA f6188c0View commit details
Commits on Sep 27, 2023
-
Improve handling of GOAWAY and RST_STREAM
Support user-supplied go-away-handler and reset-stream-handler Set writable? false when called. Do not propagate event further. Extract out handle-shutdown-frame
Configuration menu - View commit details
-
Copy full SHA for c01d583 - Browse repository at this point
Copy the full SHA c01d583View commit details
Commits on Oct 2, 2023
-
Add goaway and reset handlers for client Set status to 200 if missing, for backwards-compatibility with http1 code Refactor out common goaway/reset code Re-enable request header validation Move http2-client-handler to http2 ns
Configuration menu - View commit details
-
Copy full SHA for 4c5891c - Browse repository at this point
Copy the full SHA 4c5891cView commit details
Commits on Oct 3, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 4eb6cf6 - Browse repository at this point
Copy the full SHA 4eb6cf6View commit details -
Refactor stream-ex to support public error messages
Too many params, switched to map
Configuration menu - View commit details
-
Copy full SHA for 83d0bea - Browse repository at this point
Copy the full SHA 83d0beaView commit details -
Server handler now sends a 400 resp for stream errors
When aleph-error-handler (and .exceptionCaught) are called, now tries to send a 400 response before sending RST_STREAM.
Configuration menu - View commit details
-
Copy full SHA for 0ec4a5b - Browse repository at this point
Copy the full SHA 0ec4a5bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 67da7a6 - Browse repository at this point
Copy the full SHA 67da7a6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1b3a1d4 - Browse repository at this point
Copy the full SHA 1b3a1d4View commit details -
Fix bug where conn-ex-handler closed indiscrimantely
By calling close on th conn channel, GOAWAYs are sent, but without regard to any associated H2 error codes.
Configuration menu - View commit details
-
Copy full SHA for e1f56f8 - Browse repository at this point
Copy the full SHA e1f56f8View commit details -
Consolidated H2 exception code betw server and client
Add reset-stream fn Add netty/write-fut that returns a promise. By default, netty/write uses a void promise for speed. Rename send-http-error-response -> write-http-error-response, and have it return promise
Configuration menu - View commit details
-
Copy full SHA for 0f1facd - Browse repository at this point
Copy the full SHA 0f1facdView commit details -
Flush in client-handler read-complete
Theoretically better for flow control
Configuration menu - View commit details
-
Copy full SHA for 30e792f - Browse repository at this point
Copy the full SHA 30e792fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8960435 - Browse repository at this point
Copy the full SHA 8960435View commit details
Commits on Oct 4, 2023
-
Configuration menu - View commit details
-
Copy full SHA for f972047 - Browse repository at this point
Copy the full SHA f972047View commit details -
Configuration menu - View commit details
-
Copy full SHA for e85f983 - Browse repository at this point
Copy the full SHA e85f983View commit details -
Refactored write-http-error-response
Replaced with write-simple-http-mesg Made body-text/error message optional Fixed status parsing bug when :aleph/response-status was set to nil
Configuration menu - View commit details
-
Copy full SHA for 7afb9a0 - Browse repository at this point
Copy the full SHA 7afb9a0View commit details -
Caused by using http/request directly and not using *pool*
Configuration menu - View commit details
-
Copy full SHA for 890d566 - Browse repository at this point
Copy the full SHA 890d566View commit details -
Configuration menu - View commit details
-
Copy full SHA for 75e9e81 - Browse repository at this point
Copy the full SHA 75e9e81View commit details -
Configuration menu - View commit details
-
Copy full SHA for ac49918 - Browse repository at this point
Copy the full SHA ac49918View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9eb0123 - Browse repository at this point
Copy the full SHA 9eb0123View commit details
Commits on Oct 6, 2023
-
Moves the sleep from the body to before the return of the Ring map. Unlike the HTTP1 code, the H2 code can respond as soon as it gets a header, which prevents the request timeout from triggering. Also adds a 1.5s delay to server shutdown, so repeating tasks like (date-header-value) can finish and not throw exceptions.
Configuration menu - View commit details
-
Copy full SHA for 37543fb - Browse repository at this point
Copy the full SHA 37543fbView commit details
Commits on Oct 16, 2023
-
Move idle handlers to netty ns
Fix circular ns issue Not just applicable to HTTP, anyway
Configuration menu - View commit details
-
Copy full SHA for 2b4732e - Browse repository at this point
Copy the full SHA 2b4732eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 456aa8b - Browse repository at this point
Copy the full SHA 456aa8bView commit details -
Update the client :channel-inactive method in H2 to set the response-d to closed, in order to mimic HTTP1 behavior In HTTP1 code, when the client channel is closed, it closes the responses stream, which leads the take! to get ::closed. Also replace ::closed with :aleph/closed, so it can be used in other nses
Configuration menu - View commit details
-
Copy full SHA for 5a30b59 - Browse repository at this point
Copy the full SHA 5a30b59View commit details
Commits on Oct 18, 2023
-
Fix bug caused by closing already-closed client chan
Trying to close an already-closed channel on the client-side caused an exception, when it should be idempotent.
Configuration menu - View commit details
-
Copy full SHA for 642bcbc - Browse repository at this point
Copy the full SHA 642bcbcView commit details -
Fix bug in HTTP2 handling of client-pool
The HTTP2 code didn't use the :on-closed callback like the HTTP1 code did. As a result, closed connections weren't automatically being disposed of in the connection pool, but reused, which leads to immediate failures. The HTTP1 code attached the on-closed cb to the responses stream, but H2 doesn't need a stream. The code now attaches the close cb to the Netty Channel's close Future. This should be safe, tho there may be some churn in Dirigiste. (Also realiased confusing aleph.ssl in tests to test-ssl)
Configuration menu - View commit details
-
Copy full SHA for 15a8a24 - Browse repository at this point
Copy the full SHA 15a8a24View commit details -
Remove nonexistent :socket-timeout option in tests Add Channel id to print output Add TODOs Increase io.netty.channel logging level to warn Add more tracing
Configuration menu - View commit details
-
Copy full SHA for c24a073 - Browse repository at this point
Copy the full SHA c24a073View commit details -
Some tests are very specific to either HTTP1 semantics or Aleph's HTTP1 implementation.
Configuration menu - View commit details
-
Copy full SHA for 023569f - Browse repository at this point
Copy the full SHA 023569fView commit details
Commits on Oct 21, 2023
-
Expand pipeline transformation options
Also add common/ssl-ctx-supports-http2? fn
Configuration menu - View commit details
-
Copy full SHA for d91ccce - Browse repository at this point
Copy the full SHA d91ccceView commit details -
Configuration menu - View commit details
-
Copy full SHA for 48c1548 - Browse repository at this point
Copy the full SHA 48c1548View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8adefc5 - Browse repository at this point
Copy the full SHA 8adefc5View commit details -
Support backwards compatibility
Targets public 0.4.6 vars Does not support netty/headers
Configuration menu - View commit details
-
Copy full SHA for c61d6f1 - Browse repository at this point
Copy the full SHA c61d6f1View commit details
Commits on Nov 1, 2023
-
Parity between HTTP1 and HTTP2 header retrieval
HTTP1's HeaderMap enabled the use of keywords and case-insensitivity for header retrieval (but not assoc/dissoc). This copies HeaderMap to the HTTP2 code base. Unfortunately, Netty's HTTP1 header class is outside the later Header hierarchy, and can't be shared. Ensures HeaderMap always returns a String value Fix bug where get-all and extract-cookies-from-response-headers were HTTP1-only Fix bug where AsciiString's broke retrieval when passed to `name` Remove unneeded netty-http2-headers->map Also HeadersMap is 5x faster than prev H2 solution
Configuration menu - View commit details
-
Copy full SHA for f0a7234 - Browse repository at this point
Copy the full SHA f0a7234View commit details -
Configuration menu - View commit details
-
Copy full SHA for a181e12 - Browse repository at this point
Copy the full SHA a181e12View commit details -
Add Brotli and Zstd deps to dev profile
Required to compile support for them
Configuration menu - View commit details
-
Copy full SHA for 0ad1654 - Browse repository at this point
Copy the full SHA 0ad1654View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9b201c0 - Browse repository at this point
Copy the full SHA 9b201c0View commit details -
Add HTTP/2 compression support
H2 compression is not well-supported by Netty for its multiplex setup, only its older single-pipeline H2 classes. It happens in two parts: (1) decorators are attached to the Http2FrameCodec that handle the actual de/compression, and (2) a handler that parses and updates the *-encoding headers is added to each stream pipeline. Adds new `compression-options` for both H1/H2, and deprecates `compression-level` to H1-only, like Netty.
Configuration menu - View commit details
-
Copy full SHA for 4a5fc81 - Browse repository at this point
Copy the full SHA 4a5fc81View commit details
Commits on Nov 3, 2023
-
Add a Lein profile for performance testing. Just clj-async-profiler for now, but should support more libs in the future
Configuration menu - View commit details
-
Copy full SHA for ee4e626 - Browse repository at this point
Copy the full SHA ee4e626View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5583d22 - Browse repository at this point
Copy the full SHA 5583d22View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9a37528 - Browse repository at this point
Copy the full SHA 9a37528View commit details -
Fix bug when using map for :ssl-context
Broke validate-http1-pipeline-xform
Configuration menu - View commit details
-
Copy full SHA for 45dca06 - Browse repository at this point
Copy the full SHA 45dca06View commit details -
Ensure tests can always override default options
Configuration menu - View commit details
-
Copy full SHA for 996c6c2 - Browse repository at this point
Copy the full SHA 996c6c2View commit details
Commits on Nov 4, 2023
-
Fix Clojure compiler bug with optional compression classes
The Clojure compiler cannot distinguish between static methods and fields without reflection. This causes ClassNotFoundExceptions when loading Netty's StandardCompressionOptions class, even if optional code paths are guarded. Add AlephCompressionOptions, a class that exists solely to relay calls to StandardCompressionOptions without triggering CNFEs.
Configuration menu - View commit details
-
Copy full SHA for 56360c8 - Browse repository at this point
Copy the full SHA 56360c8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 36108d6 - Browse repository at this point
Copy the full SHA 36108d6View commit details -
Configuration menu - View commit details
-
Copy full SHA for ec9e6a9 - Browse repository at this point
Copy the full SHA ec9e6a9View commit details
Commits on Nov 6, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 2eb16ba - Browse repository at this point
Copy the full SHA 2eb16baView commit details
Commits on Nov 7, 2023
-
Configuration menu - View commit details
-
Copy full SHA for f074c88 - Browse repository at this point
Copy the full SHA f074c88View commit details -
Configuration menu - View commit details
-
Copy full SHA for d19ef5b - Browse repository at this point
Copy the full SHA d19ef5bView commit details
Commits on Nov 9, 2023
-
Configuration menu - View commit details
-
Copy full SHA for d10e30e - Browse repository at this point
Copy the full SHA d10e30eView commit details
Commits on Nov 17, 2023
-
Configuration menu - View commit details
-
Copy full SHA for e1969aa - Browse repository at this point
Copy the full SHA e1969aaView commit details
Commits on Nov 19, 2023
-
go-away and reset-stream now public Updated docstrings and comments Print inline handler warning only once now Switch frame-list from atom to volatile!, since it's thread-bound
Configuration menu - View commit details
-
Copy full SHA for 335875a - Browse repository at this point
Copy the full SHA 335875aView commit details