net-http 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +3 -5
- data/Gemfile +1 -0
- data/Gemfile.lock +11 -1
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/lib/net/http/generic_request.rb +2 -4
- data/lib/net/http.rb +24 -15
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3218ca14e4d201668faf051c7e2920054e7e02410ade361a466ce614a662d69f
|
4
|
+
data.tar.gz: 0331ab0f1b2d9160faa5842f892780d9d933bdbc5102608a5cfc51b2d116f043
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '02074786b78a941fedbd736b6fcf987f31f3c5b33a3215bc4f7017bed37188cb33cdfe1d69c6a35f81377f91858772cb020c14286f3413c48b341853062574ff'
|
7
|
+
data.tar.gz: e5612a685ba130029da39e40085b2b15be9e4ce65093846c51b1d96ea924860c1b7224e0cd05eba188bf2e648a07e8daa3fe0d227f3a7c8aa3e5ea18307f23f0
|
data/.github/workflows/test.yml
CHANGED
@@ -7,18 +7,16 @@ jobs:
|
|
7
7
|
name: build (${{ matrix.ruby }} / ${{ matrix.os }})
|
8
8
|
strategy:
|
9
9
|
matrix:
|
10
|
-
ruby: [ 2.7, 2.6, head ]
|
10
|
+
ruby: [ '3.0', 2.7, 2.6, head ]
|
11
11
|
os: [ ubuntu-latest, macos-latest ]
|
12
12
|
runs-on: ${{ matrix.os }}
|
13
13
|
steps:
|
14
|
-
- uses: actions/checkout@
|
14
|
+
- uses: actions/checkout@v2
|
15
15
|
- name: Set up Ruby
|
16
16
|
uses: ruby/setup-ruby@v1
|
17
17
|
with:
|
18
18
|
ruby-version: ${{ matrix.ruby }}
|
19
19
|
- name: Install dependencies
|
20
|
-
run:
|
21
|
-
gem install bundler --no-document
|
22
|
-
bundle install
|
20
|
+
run: bundle install
|
23
21
|
- name: Run test
|
24
22
|
run: rake test
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,15 +1,24 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
net-http (0.1.
|
4
|
+
net-http (0.1.1)
|
5
|
+
net-protocol
|
6
|
+
uri
|
5
7
|
|
6
8
|
GEM
|
7
9
|
remote: https://rubygems.org/
|
8
10
|
specs:
|
11
|
+
io-wait (0.1.0)
|
12
|
+
net-protocol (0.1.0)
|
13
|
+
io-wait
|
14
|
+
timeout
|
9
15
|
power_assert (1.1.5)
|
10
16
|
rake (13.0.1)
|
11
17
|
test-unit (3.3.5)
|
12
18
|
power_assert
|
19
|
+
timeout (0.1.1)
|
20
|
+
uri (0.10.1)
|
21
|
+
webrick (1.7.0)
|
13
22
|
|
14
23
|
PLATFORMS
|
15
24
|
ruby
|
@@ -18,6 +27,7 @@ DEPENDENCIES
|
|
18
27
|
net-http!
|
19
28
|
rake
|
20
29
|
test-unit
|
30
|
+
webrick
|
21
31
|
|
22
32
|
BUNDLED WITH
|
23
33
|
2.1.4
|
data/README.md
CHANGED
data/Rakefile
CHANGED
@@ -9,7 +9,7 @@ end
|
|
9
9
|
|
10
10
|
task :sync_tool do
|
11
11
|
require 'fileutils'
|
12
|
-
FileUtils.cp "../ruby/tool/lib/
|
12
|
+
FileUtils.cp "../ruby/tool/lib/core_assertions.rb", "./test/lib"
|
13
13
|
FileUtils.cp "../ruby/tool/lib/envutil.rb", "./test/lib"
|
14
14
|
FileUtils.cp "../ruby/tool/lib/find_executable.rb", "./test/lib"
|
15
15
|
end
|
@@ -143,7 +143,7 @@ class Net::HTTPGenericRequest
|
|
143
143
|
end
|
144
144
|
|
145
145
|
if host = self['host']
|
146
|
-
host.sub!(/:.*/
|
146
|
+
host.sub!(/:.*/m, ''.freeze)
|
147
147
|
elsif host = @uri.host
|
148
148
|
else
|
149
149
|
host = addr
|
@@ -202,9 +202,7 @@ class Net::HTTPGenericRequest
|
|
202
202
|
IO.copy_stream(f, chunker)
|
203
203
|
chunker.finish
|
204
204
|
else
|
205
|
-
|
206
|
-
# If sock.io is an SSLSocket, copy_stream will hit SSL_write()
|
207
|
-
IO.copy_stream(f, sock.io)
|
205
|
+
IO.copy_stream(f, sock)
|
208
206
|
end
|
209
207
|
end
|
210
208
|
|
data/lib/net/http.rb
CHANGED
@@ -388,12 +388,11 @@ module Net #:nodoc:
|
|
388
388
|
class HTTP < Protocol
|
389
389
|
|
390
390
|
# :stopdoc:
|
391
|
-
VERSION = "0.
|
391
|
+
VERSION = "0.2.0"
|
392
392
|
Revision = %q$Revision$.split[1]
|
393
393
|
HTTPVersion = '1.1'
|
394
394
|
begin
|
395
395
|
require 'zlib'
|
396
|
-
require 'stringio' #for our purposes (unpacking gzip) lump these together
|
397
396
|
HAVE_ZLIB=true
|
398
397
|
rescue LoadError
|
399
398
|
HAVE_ZLIB=false
|
@@ -524,14 +523,13 @@ module Net #:nodoc:
|
|
524
523
|
#
|
525
524
|
# { "cmd" => "search", "q" => "ruby", "max" => "50" }
|
526
525
|
#
|
527
|
-
# This method also does Basic Authentication
|
526
|
+
# This method also does Basic Authentication if and only if +url+.user exists.
|
528
527
|
# But userinfo for authentication is deprecated (RFC3986).
|
529
528
|
# So this feature will be removed.
|
530
529
|
#
|
531
530
|
# Example:
|
532
531
|
#
|
533
532
|
# require 'net/http'
|
534
|
-
# require 'uri'
|
535
533
|
#
|
536
534
|
# Net::HTTP.post_form URI('http://www.example.com/search.cgi'),
|
537
535
|
# { "q" => "ruby", "max" => "50" }
|
@@ -973,6 +971,12 @@ module Net #:nodoc:
|
|
973
971
|
private :do_start
|
974
972
|
|
975
973
|
def connect
|
974
|
+
if use_ssl?
|
975
|
+
# reference early to load OpenSSL before connecting,
|
976
|
+
# as OpenSSL may take time to load.
|
977
|
+
@ssl_context = OpenSSL::SSL::SSLContext.new
|
978
|
+
end
|
979
|
+
|
976
980
|
if proxy? then
|
977
981
|
conn_addr = proxy_address
|
978
982
|
conn_port = proxy_port
|
@@ -982,14 +986,13 @@ module Net #:nodoc:
|
|
982
986
|
end
|
983
987
|
|
984
988
|
D "opening connection to #{conn_addr}:#{conn_port}..."
|
985
|
-
|
986
|
-
|
987
|
-
|
988
|
-
|
989
|
-
|
990
|
-
|
991
|
-
|
992
|
-
}
|
989
|
+
begin
|
990
|
+
s = Socket.tcp conn_addr, conn_port, @local_host, @local_port, connect_timeout: @open_timeout
|
991
|
+
rescue => e
|
992
|
+
e = Net::OpenTimeout.new(e) if e.is_a?(Errno::ETIMEDOUT) #for compatibility with previous versions
|
993
|
+
raise e, "Failed to open TCP connection to " +
|
994
|
+
"#{conn_addr}:#{conn_port} (#{e.message})"
|
995
|
+
end
|
993
996
|
s.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
|
994
997
|
D "opened"
|
995
998
|
if use_ssl?
|
@@ -1020,7 +1023,6 @@ module Net #:nodoc:
|
|
1020
1023
|
end
|
1021
1024
|
end
|
1022
1025
|
end
|
1023
|
-
@ssl_context = OpenSSL::SSL::SSLContext.new
|
1024
1026
|
@ssl_context.set_params(ssl_parameters)
|
1025
1027
|
@ssl_context.session_cache_mode =
|
1026
1028
|
OpenSSL::SSL::SSLContext::SESSION_CACHE_CLIENT |
|
@@ -1180,7 +1182,8 @@ module Net #:nodoc:
|
|
1180
1182
|
# The username of the proxy server, if one is configured.
|
1181
1183
|
def proxy_user
|
1182
1184
|
if ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE && @proxy_from_env
|
1183
|
-
proxy_uri&.user
|
1185
|
+
user = proxy_uri&.user
|
1186
|
+
unescape(user) if user
|
1184
1187
|
else
|
1185
1188
|
@proxy_user
|
1186
1189
|
end
|
@@ -1189,7 +1192,8 @@ module Net #:nodoc:
|
|
1189
1192
|
# The password of the proxy server, if one is configured.
|
1190
1193
|
def proxy_pass
|
1191
1194
|
if ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE && @proxy_from_env
|
1192
|
-
proxy_uri&.password
|
1195
|
+
pass = proxy_uri&.password
|
1196
|
+
unescape(pass) if pass
|
1193
1197
|
else
|
1194
1198
|
@proxy_pass
|
1195
1199
|
end
|
@@ -1200,6 +1204,11 @@ module Net #:nodoc:
|
|
1200
1204
|
|
1201
1205
|
private
|
1202
1206
|
|
1207
|
+
def unescape(value)
|
1208
|
+
require 'cgi/util'
|
1209
|
+
CGI.unescape(value)
|
1210
|
+
end
|
1211
|
+
|
1203
1212
|
# without proxy, obsolete
|
1204
1213
|
|
1205
1214
|
def conn_address # :nodoc:
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-http
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NARUSE, Yui
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-protocol
|
@@ -89,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0'
|
91
91
|
requirements: []
|
92
|
-
rubygems_version: 3.
|
92
|
+
rubygems_version: 3.3.0.dev
|
93
93
|
signing_key:
|
94
94
|
specification_version: 4
|
95
95
|
summary: HTTP client api for Ruby.
|