Loading
Commits on Source 80
-
Tiago authored
-
Chulki Lee authored
-
HoneyryderChuck authored
Fix basic_auth doc in README.md See merge request os85/httpx!280
-
Tiago authored
as per https://www.man7.org/linux/man-pages/man5/resolv.conf.5.html, default is 1
-
-
HoneyryderChuck authored
set ndots to 1 when none parsed from resolv.conf See merge request os85/httpx!283
-
HoneyryderChuck authored
doc to most public accessible classes See merge request os85/httpx!279
-
Tiago authored
since v1, performance has regressed due to the new default timeouts, which are based on timers. That's because they were not being cleanup after requests were done with, and were causing spurious wakeups in the select loop after the fact. Fixed by cleaning up each timer after each relevant request event.
-
Tiago authored
the change to read/write cancellation-driven timeouts as the default timeout strategy revealed a performance regression; because these were built on Timers, which never got unsubscribed, this meant that they were kept beyond the duration of the request they were created for, and needlessly got picked up for the next timeout tick. This was fixed by adding a callback on timer intervals, which unsubscribes them from the timer group when called; these would then be activated after the timeout is not needed anymore (request send / response received), thereby removing the overhead on subsequent requests. An additional intervals array is also kept in the connection itself; timeouts from timers are signalled via socket wait calls, however they were always resulting in timeouts, even when they shouldn't (ex: expect timeout and send full response payload as a result), and with the wrong exception class in some cases. By keeping intervals from its requests around, and monitoring whether there are relevant request triggers, the connection can therefore handle a timeout or bail out (so that timers can fire the correct callback).
-
Tiago authored
it isn't a valid input for IO#wait family of functions; instead, use nil
-
Tiago authored
do not set them all as operation timeout
-
Tiago authored
this avoids a needless select syscall on connection establishment
-
Tiago authored
this limit wasn't doing any favours to anyone, particularly during benchmmarks
-
Tiago authored
-
Tiago authored
this has been working for a while, but was silently failing in HTTP/1, due to our inability to test it in CI (HTTP/1 setup is not yet using keep-alive)
-
Tiago authored
-
Tiago authored
this avoids the creation of another options object
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
HoneyryderChuck authored
Fixing timeouts performance regression See merge request os85/httpx!282
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
responses can now expose the IP address used to connect to the peer server to fetch the response from.
-
HoneyryderChuck authored
test for follow redirect with relative paths Closes #252 See merge request os85/httpx!287
-
HoneyryderChuck authored
Add Response#peer_address and ErrorResponse#peer_address Closes #251 See merge request os85/httpx!286
-
Tiago authored
-
HoneyryderChuck authored
add support in json mime type checker for application/hal+json Closes #260 See merge request os85/httpx!288
-
Tiago authored
-
Thomas Hurst authored
Per Github issue #18, this causes a linear performance decrease, with each connection slightly slowing the next.
-
Tiago authored
there are situations where a connection may already be closed before dns response is received for it. such an example is connection coalescing, when happy eyeballs takes over, first address arrives, a coalescing situation is detected, and then the connection and it's happy eyeballs cousin are both closed, **before** the cound connection has been resolved
-
Tiago authored
due to how read timeouts are added on request transitions, timers may enter the pool **before** a new tick happens, and are therefore accounted for when the timers are fired after the current tick. This patch resets the timer, which will force a new tick before they may fire again.
-
Tiago authored
the previous patch allowed the callback to be called only once, whereas this one will be long-lived for the duration of the connection
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
HoneyryderChuck authored
Fix close callback leak See merge request !289
-
Tiago authored
-
HoneyryderChuck authored
DNS retries to native resolver Closes #257 See merge request os85/httpx!293
-
HoneyryderChuck authored
reset timer baseline interval when adding new timers Closes #261 See merge request os85/httpx!290
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
HoneyryderChuck authored
fix super call in sentry adapter Closes #265 See merge request !294
-
Tiago authored
-
Tiago authored
-
Tiago authored
-
Tiago authored
stream responses weren't following redirects when both plugins were loaded. This was due to the stream callback object not being passed across the redirect chain.
-
Tiago authored
-
-
HoneyryderChuck authored
Remove dependency on mutex_m Closes #274 See merge request os85/httpx!298
-
Tiago authored
-
Earlopain authored
-
HoneyryderChuck authored
fix: stream + follow_redirects plugins working now Closes #271 See merge request os85/httpx!299
-
Tiago authored
this is an old vuln fixed in curl (https://github.com/advisories/GHSA-7xmh-mw7w-rr97), which has been fixed for a long time, where credentials via authorization header would be resent on all follow location requests; this limits it to same-origin redirects; an option, "auth_to_other_origins", can be used to keep original behaviour
-
HoneyryderChuck authored
remove authorization header when redirecting to different-origin urls Closes #273 See merge request os85/httpx!300
-
HoneyryderChuck authored
Add rubocop-md to check ruby code blocks See merge request !301
-
Tiago authored
the name resolution code was making the usage of IPs dependent on the existence of a DNS resolver, but there are situations where users use the IP directly, and in such a case, when IPv4-only DNS is possible **but** IPv6 loopback/link-local is available, one should still provide support for it
-
HoneyryderChuck authored
fix usage of IPv6 in urls in systems with IPv6 set up but no outer connectivity Closes #277 See merge request os85/httpx!302
-
Tiago authored
httpx uses throw/catch in order to save from so-called early resolve errors, i.e. errors which may happen before the name resolution process is either early-complete or setup, such as when there are no nameservers (internet turned off), and the requests were piped into the connection, which means they're outside of the 'on_error' callback reach. there errors were only covered on the initial send flow, i.e. in other situations when new connections may have to be established ad may early-fail, the throw would not be caught, and would reach user code
-
Tiago authored
-
Earlopain authored
-
HoneyryderChuck authored
Fix auth plugins wiki links See merge request !303
-
Tiago authored
-
Tiago authored
while stream requests are lazy, they were being nonetheless enqueued, before any function would be called. this was not great behaviour, as they could perhaps never been called, it also interfered with how other plugins inferred finished responses, such as the webmock adapter and follow_redirects. Another flaw in the grpc plugin was fixed as a result, given that bidirectional streams were actually being buffered
-
Tiago authored
-
HoneyryderChuck authored
stream plugin fix: do not preempt request Closes #278 See merge request os85/httpx!304
-
Tiago authored
-
Tiago authored