2077 Commits

Author SHA1 Message Date
HoneyryderChuck
56743923f6 enable publishing of coverage 2023-04-28 15:45:18 +01:00
HoneyryderChuck
75867115b2 removing webmock cap, disabling datadog telemetry instead 2023-04-28 13:02:03 +01:00
HoneyryderChuck
4eee045b02 downgrading webmock even more 2023-04-28 12:04:06 +01:00
HoneyryderChuck
5f079f8fc0 downgrading to webmock 3.18.0
Identifying an issue when running datadog and webmock in tandem, and
running webmock 3.18.1.
2023-04-28 11:23:43 +01:00
HoneyryderChuck
ce6c1d2ce5 Merge branch 'issue-217' into 'master'
Removing HTTPX::Registry and its usage internally

Closes #217

See merge request os85/httpx!249
2023-04-28 09:16:45 +00:00
HoneyryderChuck
899b2df94f only test integrations with latest ruby, some telemetry stuff firing from the datadog sdk... 2023-04-27 23:47:55 +01:00
HoneyryderChuck
bbf257477b Removing HTTPX::Registry and its usage internally
These internnal registries were a bit magical to use, difficult to
debug, not thread-safe, and overall a nuisance when it came to type
checking. So long.
2023-04-27 22:49:20 +01:00
HoneyryderChuck
613e95d5f4 Merge branch 'issue-225' into 'master'
native resolver falls back to tcp dns when receiving truncated packet

Closes #225

See merge request os85/httpx!246
2023-04-26 22:18:37 +00:00
HoneyryderChuck
387798fc1a refining soomme signatures 2023-04-26 23:05:45 +01:00
HoneyryderChuck
5b5a360cb8 add absolute domain to bottom of candidates instead 2023-04-25 22:46:54 +01:00
HoneyryderChuck
04c5b39600 dns errors: raise error immediately on nxdomain error
no need to loop into candidates.
2023-04-25 22:46:54 +01:00
HoneyryderChuck
f56f77d836 add udp read IO logging 2023-04-25 22:46:54 +01:00
HoneyryderChuck
55d9139a59 native resolver: clean up candidate queries
dns resolution puts candidate queries in the pipeline, in case the first
one misses, but it wasn't cleaning them up in all situations.
2023-04-25 22:46:54 +01:00
HoneyryderChuck
6bd2fb138e adding native resolver metrics to internal telemetry plugin 2023-04-25 22:46:54 +01:00
HoneyryderChuck
d699526ec2 updated signatures of IO objects 2023-04-25 22:46:54 +01:00
HoneyryderChuck
6aacc9b0eb native resolver falls back to tcp dns when receiving truncated packet
yet another compliance fix for the DNS protocol; while udp is the
preferred transport, in case a truncated response is received, the
resolver will switch to tcp, and performm the DNS query again.

This introduces a new resolver option, `:socket_type`, which is `:udp`
by default.
2023-04-25 22:46:54 +01:00
HoneyryderChuck
5bba381bb8 added test for resolving a domain which results in a large/truncated UDP response packet 2023-04-25 22:46:54 +01:00
HoneyryderChuck
ab3bc3ea18 Merge branch 'fix-23-image' into 'master'
fix CI ruby 2.3 build which could not download iptables package

See merge request os85/httpx!248
2023-04-25 21:45:29 +00:00
HoneyryderChuck
62a241b22e fix CI ruby 2.3 build which could not download iptables package 2023-04-25 22:34:05 +01:00
HoneyryderChuck
8db1557827 Merge branch 'fix-webmock-adapter-enable-disable-issue' into 'master'
Fix WebMock adapter so that it gets disabled when WebMock gets disabled

See merge request os85/httpx!247
2023-04-25 07:25:08 +00:00
Kevin Elliott
5108a6247f Fix WebMock adapter so that it gets disabled when WebMock gets disabled 2023-04-25 07:25:07 +00:00
HoneyryderChuck
a3add3c721 Merge branch 'fix-no-proxy' into 'master'
fix proxy discovery using proxy env vars

See merge request os85/httpx!242
2023-04-24 10:35:47 +00:00
HoneyryderChuck
673d210fd8 fix tests not being adjusted 2023-04-18 02:34:11 +03:00
HoneyryderChuck
1bc5d49d1d bugfix: sentry adapter breadcrumbs didn't work
wrong variable used, and wrong error message accessors. Added
regressioon tests with breadcrumbs enabled and error response test.
2023-04-18 02:09:12 +03:00
HoneyryderChuck
ee4caa552b bugfix: digest auth enabled session wasn't working if session did not have digest credentials setup yet 2023-04-18 02:08:21 +03:00
HoneyryderChuck
ba21f83827 improve coverage of cookie and aws authentication tests 2023-04-18 02:06:47 +03:00
HoneyryderChuck
5747bcab3a Merge branch 'issue-220' into 'master'
retries: allow for resuming requests using ranges

Closes #220

See merge request os85/httpx!244
2023-04-17 22:20:30 +00:00
HoneyryderChuck
9e355bc3d6 added improved type signatures to retries module 2023-04-18 01:08:39 +03:00
HoneyryderChuck
8105e1128e introduce :buffer_size option
this allows to tweak connection buffer sizes, which may help optimizing
memory usage, and in this case, test the resumable retries.

wip
2023-04-17 18:09:24 +03:00
HoneyryderChuck
cb523794d7 retries: allow for resuming requests using ranges
a new feature is introduced in the `retries` plugin, whereas if an error
occurred midway response payload transfer, and the peer server signaled
(via `"accept-ranges"`) that accepts range requests, the retried request
will attempt to start over from where the previous request left off.
2023-04-17 17:19:41 +03:00
HoneyryderChuck
312e8e83d3 store potentially existing partial response in ErrorResponse, whenever it gets instantiated 2023-04-17 17:19:41 +03:00
HoneyryderChuck
931fc614a1 Merge branch 'issue-219' into 'master'
Request.verb is now an upcased string (ex: "GET")

Closes #219

See merge request os85/httpx!245
2023-04-17 14:19:05 +00:00
HoneyryderChuck
092e594a4b Request.verb is now an upcased string (ex: "GET")
The reference for a request verb is now the string which is used
everywhere else, instead of the symbol corresponding to it. This was an
artifact from the import from httprb, and there is no advantage in it,
since these strings are frozen in most use cases, and the
transformations from symbol to strings being performed everywhere are
prooof that keeping the atom isn't really bringing any benefit.
2023-04-17 16:54:31 +03:00
HoneyryderChuck
dd3fb5e4a7 fixing versions.yml generator 2023-04-01 00:18:32 +01:00
HoneyryderChuck
ecc28e1d55 Merge branch 'version-links-to-website' into 'master'
Version links to website

See merge request os85/httpx!243
2023-03-31 15:54:10 +00:00
HoneyryderChuck
408b91bb1e generating versions.yml for the jekyll website 2023-03-31 16:23:01 +01:00
HoneyryderChuck
7f59b9498e backport URI::Generic.use_proxy? for older rubies 2023-03-30 23:04:48 +01:00
HoneyryderChuck
cbd695fb9c fix proxy discovery using proxy env vars
connections weren't being correctly initiated, as proxies were filtered
for the whole session based on URI.find_proxy for the first call. This
fixes it by:

* applying it to all used uris;
* falling back to proxy options instead;
* apply no_proxy option in case it's used, using
  `URI::Generic.use_proxy?
2023-03-30 22:08:32 +01:00
HoneyryderChuck
df26c97e38 changed http based tests, added #scheme, using it to correctly set no proxy domain 2023-03-29 23:00:50 +01:00
HoneyryderChuck
8652d1978f bump version to 0.22.5 v0.22.5 2023-03-29 00:33:27 +01:00
HoneyryderChuck
5532d8eb73 Merge branch 'errors-native-resolver' into 'master'
happy eyeballs + connection handling fixes

Closes #228

See merge request os85/httpx!241
2023-03-28 23:22:09 +00:00
HoneyryderChuck
ea61cce815 print ruby version in tests 2023-03-29 00:12:19 +01:00
HoneyryderChuck
64903fca4e addded happy eyeballs example, since we can't add tests for it in the CI 2023-03-28 23:56:59 +01:00
HoneyryderChuck
b07117e16e treat tls errors as a connection error which HE2 should handle 2023-03-28 23:56:34 +01:00
HoneyryderChuck
487cac6eef do not test ruby 2.1 and 2.2 in CI
can't build the required docker imaged anymore...
2023-03-28 23:41:37 +01:00
HoneyryderChuck
499a87a8f1 fix sentry call 2023-03-28 02:01:53 +01:00
HoneyryderChuck
f744ae651b force "connect error" path on resolve errors for happy eyeballs
without this, requests may not get merged between connections, and
callbacks aren't called.

multi resolver path gets simplified by this change, given that the
callbacks handle the bulk of happy eyeballs complexity.
2023-03-28 01:50:25 +01:00
HoneyryderChuck
1b0327261f do not rely on send being called just once
the sentry and datadog plugins have been wrongly relying on the
assumption that #send is called just once, when in fact, it can be
called multiple times, both for conn exhaustion, as well as conn merging
(coalescing + happy eyeballs) scenarios.

Because of this, their "on response" callback could be set multiple times, which was confusing. So this fixes the behaviour.

Fixes #228
2023-03-28 01:40:34 +01:00
HoneyryderChuck
707e653883 using callbacks_for? on happy eyeballs error detection path 2023-03-28 01:39:41 +01:00
HoneyryderChuck
73f0d609b0 fix datadog tests, both gem version compare and error type
error type has been wrongly tested sofar. This commit fixes it.
2023-03-28 01:37:06 +01:00