Loading
Commits on Source 94
-
Hiếu Nguyễn authored
-
HoneyryderChuck authored
Do not load Datadog tracing when dogstatsd is present See merge request os85/httpx!361
-
Tiago authored
-
Tiago authored
also, fixed some of the arithmetic associated with logging timeout logs
-
HoneyryderChuck authored
adding support for ruby 3.4 See merge request os85/httpx!360
-
Tiago authored
nodejs servers, for example, seem to send them when shutting down servers on timeout; when receiving, in the same buffer, the first correctly closes the parser and emits the message, while the second, because the parser is closed already, will emit an exception; the regression happened because the second exception was swallowed by the pool handler, but now that's gone, and errors on connection consumption get handled; this was worked around by, on the parser, when emitting the errors for pending requests, claearing the queue, as when the second error comes, there's no request to emit the error for Closes #333
-
HoneyryderChuck authored
fix: handle multi goaway frames coming from server Closes #333 See merge request os85/httpx!362
-
Tiago authored
this was previously done in connection initialization, which means that the request would map to an error response with this error; however, the change to thread-safe pools in 1.4.0 caused a regression, where the uri is expected to have an origin before the connection is established; this is fixed by raising an error on request creation, which will need to be caught by the caller Fixes #335
-
HoneyryderChuck authored
raise error when httpx is used with an url not starting with http or https schemes Closes #335 See merge request !366
-
Earlopain authored
``` /usr/local/bundle/gems/httpx-1.4.0/lib/httpx/selector.rb:95: warning: method redefined; discarding old empty? /usr/local/lib/ruby/3.4.0/forwardable.rb:231: warning: previous definition of empty? was here /usr/local/bundle/gems/httpx-1.4.0/lib/httpx/resolver/system.rb:54: warning: method redefined; discarding old empty? /usr/local/lib/ruby/3.4.0/forwardable.rb:231: warning: previous definition of empty? was here ``` In selector.rb, the definitions are identical, so I kept the delegator For system.rb, it always returns true so I kept that one
-
HoneyryderChuck authored
Fix two method redefinition warnings See merge request !367
-
Tiago authored
also, made the handler a bit more functional style, which curbs some of the complexity
-
Tiago authored
faraday sets it as float and it doesn't seem to break because of it)
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
and not from the request object, which reproduces the bug
-
Tiago authored
the headers were being set on the request object after the request was buffered and sent
-
Tiago authored
-
HoneyryderChuck authored
datadog plugin fixes See merge request !364
-
Tiago authored
-
Tiago authored
instead of implementing method missing; this makes it simpler impl-wise, and it'll also make comparing types easier, although not needed ATM
-
Tiago authored
-
Tiago authored
there's a bug (reported in https://bugs.ruby-lang.org/issues/21131) with IO.copy_stream, where yielded duped strings still change value on subsequent yields, which breaks http2 framing, which requires two yields at the same time in the first iteration. it replaces it with #read calls; file handles will now be closed once done streaming, which is a change in behaviour
-
Tiago authored
one of them being the otel plugin, see https://github.com/open-telemetry/opentelemetry-ruby-contrib/pull/1404
-
HoneyryderChuck authored
IO.copy_stream changes yielded string on subsequent yields Closes #338 See merge request !369
-
Tiago authored
fix: do not schedule deferred HEv2 ipv4 tcp handshake if the connection has already been closed by the sibling connection
-
Tiago authored
each connection will now check in its sibling and whether it's the original connection (containing the inital batch of requests); internal functions are then called to control how connections react to successful or failed resolutions, which reduces code repetition the handling of coalesced connections is also simplified, as when that happens, the sibling must also be closed. this allowed to fix some mismatch when handling this use case with callbacks
-
Tiago authored
continue resolving when an error happens by immediately writing to the buffer afterwards
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
by setting it in select_connection instead
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
resolver: early exit for closed connections later, after updating addresses (in case they ever get reused)
-
Tiago authored
-
Tiago authored
-
Tiago authored
Fixes https://github.com/HoneyryderChuck/httpx/issues/76
-
Tiago authored
assume that the timer will fire right afterwards, return early
-
Tiago authored
-
Tiago authored
early resolution should trigger immediately
-
Tiago authored
-
Tiago authored
fix: in the native resolver, do not fall for the first answer being an alias if the remainder carries IPs discard alias, use IPs
-
Tiago authored
-
Tiago authored
this was a busy loop on dns resolution; this should utilize the socket better
-
Tiago authored
there were a lot of issues with bookkeeping this at the connection level; in the end, the timers infra was a much better proxy for all of this; set timer after write; cancel it on reading data to parse
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
must pick up name from candidates and pass to #resolve
-
Tiago authored
-
Tiago authored
the previous iteration relied on internal behaviour do delete the correct callback; in the process, logic to delete all callbacks from an interval was accidentally committed, which motivated this refactoring. the premise is: timeouts can cancel the timer; they set themselves as active until done; operation timeouts rely on the previous to be ignored or not. a new error, OperationTimeoutError, was added for that effect
-
Tiago authored
was messing up RBS state
-
Tiago authored
-
Tiago authored
this should fallback to terminating the session immediately and closing its connections, instead of trying to fit the same exception into the request objects, no point in that Closes https://github.com/HoneyryderChuck/httpx/issues/77
-
HoneyryderChuck authored
fixes for happy eyeballs implementation Closes #337 See merge request !368
-
HoneyryderChuck authored
always raise an error when a non-recoverable error happens when sending the request See merge request !370
-
Tiago authored
-
Tiago authored
socket is closed, do not try to drain it while performing the handshake shutdown
-
Tiago authored
-
Tiago authored
this may happen in a few contexts, such as connection exhaustion, but more importantly, when a request is retried in a different connection; if the request successfully sets the callbacks before the connection raises an issue and the request is retried in a new one, the callback from the faulty connection are carried with it, and triggered at a time when the connection is back in the connection pool, or worse, used in a different thread this fix relies on :idle transition callback, which is called before request is routed around
-
HoneyryderChuck authored
ensure connection is cleaned up on parser-initiated forced reset Closes #334 See merge request !363
-
Tiago authored
-
Tiago authored
-
Tiago authored
these may have been reassigned during them
-
Tiago authored
this avoid, on HTTP/2 termination handshake, in case the socket was shown as closed due to EOF, that the bytes are going to be written regardless (due to being misidentified as the GOAWAY frame)
-
Tiago authored
the function used did not exist; instead, an exception will be raised
-
Tiago authored
-
Tiago authored
-
Tiago authored
proves that the adapter does not raise on http errors. also added a test to ensure that
-
HoneyryderChuck authored
remove raise-error middleware from faraday tests See merge request !376
-
Tiago authored
with the retries plugin, the request payload will be rewinded, and that may not be possible if already closed. this was never detected so far because no request body transcoder internally closes, but the faraday multipart adapter does the request is therefore closed alongside the response (when the latter is closed) Fixes https://github.com/HoneyryderChuck/httpx/issues/75\#issuecomment-2731219586
-
Tiago authored
-
Tiago authored
-
HoneyryderChuck authored
fix: do not close request right after sending it, assume it may have to be retried See merge request !378
-
Tiago authored
it was previously only handling 421 status codes for the same effect; this achieves parity with the frame-driven redirection
-
HoneyryderChuck authored
handle HTTP_1_1_REQUIRED stream GOAWAY error code by retrying on new HTTP/1.1 connection See merge request !375
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
the function used did not exist; instead, an exception will be raised
-
Tiago authored
-
Tiago authored
internal telemetry reutilizes loggable module, which is made to work in places where there are no options
-
Tiago authored
-
HoneyryderChuck authored
empty the write buffer on EOF errors in #read too Closes #340 See merge request !373
-
Tiago authored