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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a306a97039eef1800016a611dee36fa0d342b5f234bf6e0a512d981abd12ce8d
4
- data.tar.gz: 39583accf1ec3b888c4e368eb0d3cf41add46ebfd18a6d7dcbea1cc69712f219
3
+ metadata.gz: 3218ca14e4d201668faf051c7e2920054e7e02410ade361a466ce614a662d69f
4
+ data.tar.gz: 0331ab0f1b2d9160faa5842f892780d9d933bdbc5102608a5cfc51b2d116f043
5
5
  SHA512:
6
- metadata.gz: 21ab016c4d12100c405aec7b8426d81f4a88ac2bc7019353d729837d17e3a95899df04818f787319c32f29b349b7527b7903a65a897e8353382d5461070465c7
7
- data.tar.gz: 38593be710550d52aaf31d50d746e7f5da92fb1c3d4b451968bda3c0af9b033acefc2fd404f6a083025d340d8abebd7d2061fa77343f081b78bd48c19aa82b39
6
+ metadata.gz: '02074786b78a941fedbd736b6fcf987f31f3c5b33a3215bc4f7017bed37188cb33cdfe1d69c6a35f81377f91858772cb020c14286f3413c48b341853062574ff'
7
+ data.tar.gz: e5612a685ba130029da39e40085b2b15be9e4ce65093846c51b1d96ea924860c1b7224e0cd05eba188bf2e648a07e8daa3fe0d227f3a7c8aa3e5ea18307f23f0
@@ -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@master
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
@@ -4,3 +4,4 @@ gemspec
4
4
 
5
5
  gem "rake"
6
6
  gem "test-unit"
7
+ gem "webrick"
data/Gemfile.lock CHANGED
@@ -1,15 +1,24 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- net-http (0.1.0)
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
@@ -1,4 +1,4 @@
1
- # Net::Http
1
+ # Net::HTTP
2
2
 
3
3
  Net::HTTP provides a rich library which can be used to build HTTP
4
4
  user-agents. For more details about HTTP see
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/test/unit/core_assertions.rb", "./test/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!(/:.*/s, ''.freeze)
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
- # copy_stream can sendfile() to sock.io unless we use SSL.
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.1.1"
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 iff +url+.user exists.
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
- s = Timeout.timeout(@open_timeout, Net::OpenTimeout) {
986
- begin
987
- TCPSocket.open(conn_addr, conn_port, @local_host, @local_port)
988
- rescue => e
989
- raise e, "Failed to open TCP connection to " +
990
- "#{conn_addr}:#{conn_port} (#{e.message})"
991
- end
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.1.1
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: 2020-12-22 00:00:00.000000000 Z
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.2.2
92
+ rubygems_version: 3.3.0.dev
93
93
  signing_key:
94
94
  specification_version: 4
95
95
  summary: HTTP client api for Ruby.