faraday-net_http 2.0.3 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/faraday/adapter/net_http.rb +34 -56
- data/lib/faraday/net_http/version.rb +1 -1
- metadata +21 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d9a033eff57867fb6f0d7ef439a1a218ce10dcfad224979f1af82f96e8fa201
|
4
|
+
data.tar.gz: bce85e35b8871f4ec9ba42410043bd74608ce577ea5221f4397ee0929b2be03b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 733173b97da6b8f8043dec130ddabb32f7f5e94673a095029d5d52b9b74326f34dee5fd2a6fcbcb91908d6168bce08ae22b2997d1c8e2124de3680f5c9e60bc4
|
7
|
+
data.tar.gz: e845d5bd38188d95f680a42b3ab78c06e8c485dcb27a6768ad4f4366208ca176b24db1ef657bfd3cb5c72c9b32440b4d536910bba36a454bfea52214a68f08a1
|
@@ -62,22 +62,13 @@ module Faraday
|
|
62
62
|
|
63
63
|
def call(env)
|
64
64
|
super
|
65
|
-
|
65
|
+
connection(env) do |http|
|
66
66
|
perform_request(http, env)
|
67
67
|
rescue *NET_HTTP_EXCEPTIONS => e
|
68
68
|
raise Faraday::SSLError, e if defined?(OpenSSL) && e.is_a?(OpenSSL::SSL::SSLError)
|
69
69
|
|
70
70
|
raise Faraday::ConnectionFailed, e
|
71
71
|
end
|
72
|
-
|
73
|
-
save_response(env, http_response.code.to_i,
|
74
|
-
encoded_body(http_response), nil,
|
75
|
-
http_response.message) do |response_headers|
|
76
|
-
http_response.each_header do |key, value|
|
77
|
-
response_headers[key] = value
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
72
|
@app.call env
|
82
73
|
rescue Timeout::Error, Errno::ETIMEDOUT => e
|
83
74
|
raise Faraday::TimeoutError, e
|
@@ -102,53 +93,37 @@ module Faraday
|
|
102
93
|
end
|
103
94
|
|
104
95
|
def perform_request(http, env)
|
105
|
-
if env
|
106
|
-
|
107
|
-
|
108
|
-
http_response = request_with_wrapped_block(http, env) do |chunk|
|
109
|
-
if chunk.bytesize.positive? || size.positive?
|
110
|
-
yielded = true
|
111
|
-
size += chunk.bytesize
|
112
|
-
env[:request].on_data.call(chunk, size)
|
113
|
-
end
|
96
|
+
if env.stream_response?
|
97
|
+
http_response = env.stream_response do |&on_data|
|
98
|
+
request_with_wrapped_block(http, env, &on_data)
|
114
99
|
end
|
115
|
-
env[:request].on_data.call(+'', 0) unless yielded
|
116
|
-
# Net::HTTP returns something,
|
117
|
-
# but it's not meaningful according to the docs.
|
118
100
|
http_response.body = nil
|
119
|
-
http_response
|
120
101
|
else
|
121
|
-
request_with_wrapped_block(http, env)
|
102
|
+
http_response = request_with_wrapped_block(http, env)
|
122
103
|
end
|
104
|
+
env.response_body = encoded_body(http_response)
|
105
|
+
env.response.finish(env)
|
106
|
+
http_response
|
123
107
|
end
|
124
108
|
|
125
109
|
def request_with_wrapped_block(http, env, &block)
|
126
|
-
if (env[:method] == :get) && !env[:body]
|
127
|
-
# prefer `get` to `request` because the former handles gzip (ruby 1.9)
|
128
|
-
request_via_get_method(http, env, &block)
|
129
|
-
else
|
130
|
-
request_via_request_method(http, env, &block)
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
def request_via_get_method(http, env, &block)
|
135
110
|
# Must use Net::HTTP#start and pass it a block otherwise the server's
|
136
111
|
# TCP socket does not close correctly.
|
137
112
|
http.start do |opened_http|
|
138
|
-
opened_http.
|
113
|
+
opened_http.request create_request(env) do |response|
|
114
|
+
save_http_response(env, response)
|
115
|
+
|
116
|
+
response.read_body(&block) if block_given?
|
117
|
+
end
|
139
118
|
end
|
140
119
|
end
|
141
120
|
|
142
|
-
def
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
response.read_body(&block)
|
149
|
-
end
|
150
|
-
else
|
151
|
-
opened_http.request create_request(env)
|
121
|
+
def save_http_response(env, http_response)
|
122
|
+
save_response(
|
123
|
+
env, http_response.code.to_i, nil, nil, http_response.message, finished: false
|
124
|
+
) do |response_headers|
|
125
|
+
http_response.each_header do |key, value|
|
126
|
+
response_headers[key] = value
|
152
127
|
end
|
153
128
|
end
|
154
129
|
end
|
@@ -167,6 +142,7 @@ module Faraday
|
|
167
142
|
http.ssl_version = ssl[:version] if ssl[:version]
|
168
143
|
http.min_version = ssl[:min_version] if ssl[:min_version]
|
169
144
|
http.max_version = ssl[:max_version] if ssl[:max_version]
|
145
|
+
http.verify_hostname = ssl[:verify_hostname] if verify_hostname_enabled?(http, ssl)
|
170
146
|
end
|
171
147
|
|
172
148
|
def configure_request(http, req)
|
@@ -192,26 +168,24 @@ module Faraday
|
|
192
168
|
def ssl_cert_store(ssl)
|
193
169
|
return ssl[:cert_store] if ssl[:cert_store]
|
194
170
|
|
195
|
-
|
196
|
-
|
197
|
-
OpenSSL::X509::Store.new.tap(&:set_default_paths)
|
198
|
-
end
|
171
|
+
# Use the default cert store by default, i.e. system ca certs
|
172
|
+
@ssl_cert_store ||= OpenSSL::X509::Store.new.tap(&:set_default_paths)
|
199
173
|
end
|
200
174
|
|
201
175
|
def ssl_verify_mode(ssl)
|
202
176
|
ssl[:verify_mode] || begin
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
177
|
+
if ssl.fetch(:verify, true)
|
178
|
+
OpenSSL::SSL::VERIFY_PEER
|
179
|
+
else
|
180
|
+
OpenSSL::SSL::VERIFY_NONE
|
181
|
+
end
|
182
|
+
end
|
209
183
|
end
|
210
184
|
|
211
185
|
def encoded_body(http_response)
|
212
186
|
body = http_response.body || +''
|
213
|
-
/\bcharset
|
214
|
-
content_charset = ::Encoding.find(match.
|
187
|
+
/\bcharset=([^;]+)/.match(http_response['Content-Type']) do |match|
|
188
|
+
content_charset = ::Encoding.find(match[1].strip)
|
215
189
|
body = body.dup if body.frozen?
|
216
190
|
body.force_encoding(content_charset)
|
217
191
|
rescue ArgumentError
|
@@ -219,6 +193,10 @@ module Faraday
|
|
219
193
|
end
|
220
194
|
body
|
221
195
|
end
|
196
|
+
|
197
|
+
def verify_hostname_enabled?(http, ssl)
|
198
|
+
http.respond_to?(:verify_hostname=) && ssl.key?(:verify_hostname)
|
199
|
+
end
|
222
200
|
end
|
223
201
|
end
|
224
202
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday-net_http
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan van der Pas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -16,14 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.5'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: net-http
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
description: Faraday adapter for Net::HTTP
|
28
42
|
email:
|
29
43
|
- janvanderpas@gmail.com
|
@@ -42,7 +56,7 @@ licenses:
|
|
42
56
|
metadata:
|
43
57
|
homepage_uri: https://github.com/lostisland/faraday-net_http
|
44
58
|
source_code_uri: https://github.com/lostisland/faraday-net_http
|
45
|
-
changelog_uri: https://github.com/lostisland/faraday-net_http/releases/tag/
|
59
|
+
changelog_uri: https://github.com/lostisland/faraday-net_http/releases/tag/v3.1.0
|
46
60
|
post_install_message:
|
47
61
|
rdoc_options: []
|
48
62
|
require_paths:
|
@@ -51,14 +65,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
51
65
|
requirements:
|
52
66
|
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
68
|
+
version: 3.0.0
|
55
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
70
|
requirements:
|
57
71
|
- - ">="
|
58
72
|
- !ruby/object:Gem::Version
|
59
73
|
version: '0'
|
60
74
|
requirements: []
|
61
|
-
rubygems_version: 3.
|
75
|
+
rubygems_version: 3.5.3
|
62
76
|
signing_key:
|
63
77
|
specification_version: 4
|
64
78
|
summary: Faraday adapter for Net::HTTP
|