Loading
Commits on Source 78
-
Tiago authored
these errors aren't retried by the resolv library, but they are by getaddrinfo, so we should stick with that default.
-
Tiago authored
connections set timeout to connect_timeout on transition to :idle already
-
Tiago authored
in case a wrong value is left behind
-
Tiago authored
this allows passing HTTP headers which are **only** supposed to be sent in the proxy tunnel CONNECT request, and won't interfere with the main request. At the same time this fixes an issue where headers passed to the `:headers` option were being passed to the CONNECT request.
-
Tiago authored
when set to true, can for a CONNECT proxy to be established in cases where it wouldn't automatically make it so (such as when the request is a "http://" request).
-
Tiago authored
it is documented that `:addresses` can also be a hash of "hostname to ips", but in practice this was not supported, so made it so.
-
Tiago authored
in case another plugin overrides it, as we're planning to do
-
Tiago authored
during ping management.
-
HoneyryderChuck authored
fix tracing init time See merge request !470
-
HoneyryderChuck authored
remove unreachable statement See merge request !469
-
HoneyryderChuck authored
fix: make the dns resolver retry queries for NotImpl and Refused err See merge request !468
-
so `:callbacks` `on_response_completed` sees an empty body In the `httpx` webmock adapter (`lib/httpx/adapters/webmock.rb`), the response body is appended **after** `request.emit_response(response)` fires. U nder the `:callbacks` plugin, `on_response_completed` callbacks fire from `request.on(:response)`, which means user code that reads `response.body` inside a `response_completed` callback sees an empty body under webmock — even though the same code works correctly against a live server. In real `httpx` (e.g. `lib/httpx/connection/http1.rb#dispatch`, and `lib/httpx/connection.rb` near `response.finish! ; request.emit(:response, ...)`), body chunks are streamed into the response **before** `:response` is emitted. The webmock adapter has the order reversed.
-
Tiago authored
this may block a request from successfully completing, despite the server having replied already with a response, and timing out. observed in a multi-request scenario
-
HoneyryderChuck authored
http2: do not just wait for writable readiness when also waiting for streams to complete See merge request !471
-
Tiago authored
-
Tiago authored
the previous system was not taking into account ping time, or massive reconnection time, as the init time was recorded as the time the request was being sent. This has been fixed by simplifying the calculation for request as starting when the first bytes are buffered to be sent; then, if the request is involved in a cold connection which needs to connect, then the several handshakes (TCP/TLS/HTTP-2) are taken into account and calculated accordingly.
-
HoneyryderChuck authored
tracing: fix span initial time calculation See merge request !472
-
Tiago authored
this is specific to tls, but it's added generically.
-
Tiago authored
Fixes https://github.com/HoneyryderChuck/httpx/issues/151
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
new simplecov does not support them, so we keep the old API around for them
-
Tiago authored
-
Tiago authored
requests which were never sent to the parser will not have an accurate beginning of span without this, despite having waited on the connection to connect too
-
Tiago authored
this improves the performance of #connection_options_match? by not requiring ivars to be sorted it also useses accessors to get options values instead of reading the ivars indirectly
-
Tiago authored
-
Tiago authored
detect potential sources of state corruption
-
Tiago authored
if getting the response takes too long, the existing token may have expired by the time the request is retried, and in such a situation, a new token needs to be generated before the retry
-
Tiago authored
-
Tiago authored
before enqueuing new requests in the pending queue
-
Tiago authored
at that point, it can't be an error response
-
Tiago authored
-
Tiago authored
when socket errors happen, override #handle_connect_error to discard the connect request when theres's a request timeout while waiting for the tunnel proxy request, bubble up as a ConnectTimeoutError also, use the #send method to not reinvent connection bookkeeping
-
Tiago authored
instead of maintaining state, it'll return a full edited copy when moving on to the next item in the proxy list this sorts out an issue where failing proxies would be retried later on for other hostnames from the same session
-
Tiago authored
makes digest auth options frozen-able
-
Tiago authored
-
Tiago authored
the expectation is that options objects are always frozne, and this fell through the cracks
-
Tiago authored
-
Tiago authored
also, fixed ssh proxy rotation on error
-
Tiago authored
also fixed the remainder of unsupported cases due to the tests using the wrong assertion helper
-
Tiago authored
connection state wasn't accounting and caching multiple authorities for a given host, so requests to a second alt service would fail in weird ways added a test that walks the full tree of clauses this time
-
Tiago authored
-
Tiago authored
the params were only being passed to the first request
-
Tiago authored
-
Tiago authored
been useful for me locally
-
Tiago authored
-
Tiago authored
-
HoneyryderChuck authored
ci small fixes See merge request !473
-
Tiago authored
-
Tiago authored
also includes a check to, on unblock, not synchronize when the lock has been acquired. This may happen because the mutex may also switch to the next fiber.
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
the previous fix exposed non-supported options to Options#merge. This fixes it by dealing with it in the session and duping reusable hashes
-
Tiago authored
only the string version is used
-
Tiago authored
-
Tiago authored
always assume it's new
-
Tiago authored
using string splitting and manipulation instead of plain regexs
-
Tiago authored
forego needless computation; also, avoid build extra strings while checking expects header
-
Tiago authored
-
Tiago authored
in the session, this will avoid going back to the selector needless and having the penalty of a select call when the socket is available for writing
-
Tiago authored
-
Tiago authored
using an http-2 based test server.
-
Tiago authored
-
HoneyryderChuck authored
http: do not parse http version to array of integers then back to string See merge request !474
-
Tiago authored
-
Tiago authored
will make some operations a tad simpler. also, make sure drain is removed when stream closes with error
-
Tiago authored
If a request is sent to a connection which isn't open, then the time to connect, usually covered by `:connect_timeout`, will also be account for in `:request_timeout` and `:total_request_timeout`. This is a potentially significant change of behaviour, which I think rectifies something that always catches peeps off-guard. This was done by using a new connection callback, and set the timeout based on it for an incoming request if the connection is `connecting?`. A previously unexistent check is performed so that only one type of timeout is set for a given request, while on the same connection.
-
HoneyryderChuck authored
make request_timeout and total_request_timeout account for connect phase See merge request !475
-
Tiago authored
-
Tiago authored
an internal representation of the timeouts container moves to a struct (rather than a hash). This reduces the chance of typos, presents better memory layout, and allows late binding of defaults. This is also an important complement of the new functionality of deadline timeouts covering the connect phase, as before, the connect timeout would always be set, and could conflict with the request timeout, whereas now, it can be avoided if one of the deadline timeouts is set (request_ or total_request_timeout).
-
Tiago authored
this allows a request to be sent over two connections at the same time in a race; it'll then, on first successful response, close the other one + respective connection.
-
HoneyryderChuck authored
hedging plugin Closes #369 See merge request !465
-
Tiago authored
-
Tiago authored