1930 Commits

Author SHA1 Message Date
HoneyryderChuck
6815053ca8 Merge branch 'issue-201' into 'master'
webdav

Closes #201

See merge request honeyryderchuck/httpx!219
2022-08-14 09:39:40 +00:00
HoneyryderChuck
535a30db25 fixing issues around typing 2022-08-13 16:34:02 +01:00
HoneyryderChuck
c70209db4b added xml transcoder
capabilities to encod/decode xml, expects nokogiri.
2022-08-13 15:42:46 +01:00
HoneyryderChuck
49d6cc4da4 remove http verb checks, strictness does not benefit experimentation 2022-08-13 15:30:37 +01:00
HoneyryderChuck
eb3d3f9048 implementation of the webdav plugin 2022-08-13 15:30:37 +01:00
HoneyryderChuck
f8f62b6710 Merge branch 'issue-204' 2022-08-10 23:12:23 +01:00
HoneyryderChuck
bee57ff1b6 bumped version to 0.20.5 2022-08-10 23:11:18 +01:00
HoneyryderChuck
c580812eb9 show coverage of extensions 2022-08-10 23:03:49 +01:00
HoneyryderChuck
e6502c534e fixing wrong var name in extension 2022-08-10 23:03:26 +01:00
HoneyryderChuck
2edb00c3d6 Merge branch 'issue-190' into 'master'
Circuit breaker plugin

Closes #190

See merge request honeyryderchuck/httpx!214
2022-08-08 21:32:34 +00:00
HoneyryderChuck
99a9e1c138 fix circuit breaker:
* circuit break the uri (instead of the whole origin) if the timeout is
  only on requests;
* improved cached responses loop;
* organized components into separate files
2022-08-08 22:19:48 +01:00
HoneyryderChuck
8f8febc10e sig fixes 2022-08-08 22:19:20 +01:00
HoneyryderChuck
3b9cbec8d9 unix socket deprecation message and doc fixes 2022-08-07 22:24:57 +01:00
HoneyryderChuck
c31ded54e1 circuit breaker plugin 2022-08-07 22:24:57 +01:00
HoneyryderChuck
7819079b71 fixes on existing plugin option checks 2022-08-07 22:24:57 +01:00
HoneyryderChuck
daf9fcee1d Merge branch 'issue-151' into 'master'
New http timeouts

Closes #151

See merge request honeyryderchuck/httpx!212
2022-08-07 14:03:39 +00:00
HoneyryderChuck
71cb66e287 added missing options sig 2022-08-07 14:43:29 +01:00
HoneyryderChuck
3f9c165d51 added request_timeout 2022-08-06 23:20:21 +01:00
HoneyryderChuck
c907942c9c unique domains for altsvc cache tests 2022-08-06 22:30:46 +01:00
HoneyryderChuck
d92de449ef backporting infinite method 2022-08-06 22:30:46 +01:00
HoneyryderChuck
7ee4c5f6d3 teaching errors how to dump 2022-08-06 22:30:46 +01:00
HoneyryderChuck
452657c805 Added the read_timeout and write_timeout timeouts
These are deadline oriented for the request and response, i.e. a write
timeout tracks the full time it takes to write the request, whereas the
read timeout does the same for receiving the response.

For back-compat, they're infinite by default. v1 may change that, and
will have to provide a safe fallback for endless "stream" requests and
responses.
2022-08-06 22:30:46 +01:00
HoneyryderChuck
f4e393af40 Response#finished? and Response.finish!
these new functions allow to mark an incomplete response as closed, such
as when a timeout happens. finishing also freezes the response headers.
2022-08-06 22:30:46 +01:00
HoneyryderChuck
ee49d7452c added tests for read and write timeout 2022-08-06 22:30:46 +01:00
HoneyryderChuck
330866f102 Merge branch 'issue-203' into 'master'
Added support for multiple JSON parsers

Closes #203

See merge request honeyryderchuck/httpx!218
2022-08-06 21:29:24 +00:00
HoneyryderChuck
25b949cf66 Added support for multiple JSON parsers
When available, httpx will either use `multi_json`, `oj`, or `yajl`,
before it falls back to default `json`.
2022-08-05 22:57:06 +01:00
HoneyryderChuck
12573a16a5 removed support for application/dns-json mime type in the DoH resolver 2022-08-05 22:57:06 +01:00
HoneyryderChuck
6336379837 added support for other json parsers 2022-08-05 22:57:06 +01:00
HoneyryderChuck
b27f51c0f9 Merge branch 'issue-202' into 'master'
introducing the :no_proxy option

Closes #202

See merge request honeyryderchuck/httpx!217
2022-08-05 21:56:35 +00:00
HoneyryderChuck
43016795f3 introducing the :no_proxy option
can be passed in the `:proxy` option hash, and receives domains, as
strings, which requests should not go through the proxy.
2022-08-05 22:37:52 +01:00
HoneyryderChuck
39beff84ab added ability to check if request has been proxied 2022-08-04 14:02:44 +01:00
HoneyryderChuck
7c1ed56714 fixing local proxy list 2022-08-04 14:01:47 +01:00
HoneyryderChuck
da0ef24b09 bumped version to 0.24.4 v0.20.4 2022-08-01 22:46:41 +01:00
HoneyryderChuck
8359d6b007 Merge branch 'issue-200' into 'master'
response_cache: fixes and improvements

Closes #200

See merge request honeyryderchuck/httpx!216
2022-08-01 17:50:21 +00:00
HoneyryderChuck
e691cbdf5e Merge branch 'github-issue-5' into 'master'
fix for loop on resolution and retry on new connection

See merge request honeyryderchuck/httpx!215
2022-08-01 17:49:45 +00:00
HoneyryderChuck
61c36c4ef9 response cache: caching several instances for the same URL
by relying on vary header, this should have the effect of not
overflowinng, and doing what the user wants.
2022-08-01 18:40:21 +01:00
HoneyryderChuck
f48f4e414a Fixes and improvements on the response_cache plugin
The following improvements were done:

* only cacheable status codes are allowed now (200, 203, 300, 301, 410)
* only responses considered fresh are cached; fresh response means:
  * no-store directive not present in cache-control
  * response hasn’t expired (when s-maxage, max-age or expires are
      present)
2022-08-01 17:40:05 +01:00
HoneyryderChuck
122b75a14c fixing hackernews script 2022-07-31 19:07:41 +01:00
HoneyryderChuck
b0777c61e5 fix for loop on resolution and retry on new connection
A certain behaviour was observed, when performing some tests using the
hackernews script, where after a failed request on a non-initiated
connection, a new DNS resolution would be emitted, although the
connection still had other IPs to try on. This led to a cascading
behaviour where the DNS response would fill up the connection with the
same repeated IPs and trigger coalescing, which would loop indefinitely
after emitting the resolve event.

This was fixed by not allowing DNS resolution on already resolved names,
to propagate to connections which already contain the advertised IPs.

This seems to address the github issue 5, which description matches the
observed behaviour.
2022-07-31 19:07:41 +01:00
HoneyryderChuck
32a81f2025 fix: response cache now also takes verb into account when caching
The previous strategy was working only with URLs. This strategy would
fall flat if the same url could be used with several HTTP verbs.
2022-07-31 17:03:30 +01:00
HoneyryderChuck
534b3eb91b bumped version to 0.20.3 v0.20.3 2022-07-03 23:54:45 +01:00
HoneyryderChuck
c10cead33c Merge branch 'issue-197' into 'master'
Doh: initialize the dns resolver, so name candidate calculation actually works...

Closes #197

See merge request honeyryderchuck/httpx!213
2022-07-03 22:53:40 +00:00
HoneyryderChuck
da9993f7e0 another rubocop, anoter linting hel... 2022-07-03 23:42:45 +01:00
HoneyryderChuck
2935724a16 makinng sure the nameserver list is a list 2022-07-03 00:28:15 +01:00
HoneyryderChuck
1e2cf12f6e Doh: initialize the dns resolver, so name candidate calculation actually works for non-absolute domains 2022-07-03 00:20:28 +01:00
HoneyryderChuck
c5b3d849ce bumped version to 0.20.2 v0.20.2 2022-06-23 08:40:40 +03:00
HoneyryderChuck
c6777f5a46 Merge branch 'issue-195' into 'master'
fixing selector timeout errors closing all connections and ignoring resolvers

Closes #195

See merge request honeyryderchuck/httpx!210
2022-06-23 05:36:04 +00:00
HoneyryderChuck
6c911768fe fixing selector timeout errors closing all connections and ignoring
resolvers

All kinds of errors happening during the select loop, will be handled as
abrupt select loop errors, and terminate all connections; this also
includes timmeout errors. This is not ideal, for some reasons:
connection timeout errors happening on the loop close all connections,
although it may be only triggered for one (or a subset of) connection
for which the timeout should trigger; second, errors on the DS channel
propagate errors to connections indirectly (the emission mentioned
above), wrongly (connections for different hostnames not yet queried,
will also fail with timeout), and won't clean the resolver state (so
subsequent queries will be done for the same hostname which failed in
the first place).

This fix is a first step to solving this problem. It does not totally
address the first, but i'll fix dealing with errors from the second
use-case.
2022-06-22 02:09:26 +03:00
HoneyryderChuck
d8e5894979 bumped version to 0.20.1 v0.20.1 2022-06-21 16:31:52 +03:00
HoneyryderChuck
eb0a50afb1 Merge branch 'issue-195' into 'master'
bugfix for unregistering connections timing out while resolving

Closes #195

See merge request honeyryderchuck/httpx!209
2022-06-21 13:10:52 +00:00