net-http-persistent 4.0.3 → 4.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dda1829232ea53f61dd44b4added8e65777661bb9c2bb8f4c49014c7dbbe3d1d
4
- data.tar.gz: 9321f0aad6dbc328d2612212321e9f2daa8cad2330f677208c55089676f666e7
3
+ metadata.gz: 182064ce89718e66d95177021a7005adeb6e1d4299925e90fc6ac2a537dc533d
4
+ data.tar.gz: ef7588300c587a1f71e49496ed6131acdf3cad110fa6653acab3779f5f01e3ee
5
5
  SHA512:
6
- metadata.gz: 9ca608a9a2f899b0ac3636d848f4581085fae57eec74527ed457e21a6c1988d909123cd4d4e102ab77d53a3839e9778adc140ecdff9d57d5f1dcbcd2c2d69c5c
7
- data.tar.gz: 03622a828eea0b5266511a39afc8bafdccf41d1e7e572cf04e0e23548104307d857b33bdaa387ed12ef46f8fd890762a8d39fa3ac9a4e2ca7d70026cd9bfd1b5
6
+ metadata.gz: 14c95c55ea8c89616d13917ba1fb9b05253181fd7007cf5aa03ab03c8e9987e8d4dc936b21481bf37f810df5931994ea6e5dc2eb6c259ab6591f2cfa75bff24f
7
+ data.tar.gz: e7560d360ac6b20b750a19f6b84c7e5f8656e44962fbb8223ae1295e18dea513456df99c268fa06c2909b9c7e1c4e96655b7055432032d1044187ce07a2ba40b
data/History.txt CHANGED
@@ -1,4 +1,16 @@
1
- === 4.0.2 / 2024-09-09
1
+ === 4.0.5 / 2024-12-04
2
+
3
+ Bug fixes:
4
+
5
+ * Allow setting extra_chain_cert=
6
+
7
+ === 4.0.4 / 2024-09-09
8
+
9
+ Bug fixes:
10
+
11
+ * Allow setting verify_hostname to false
12
+
13
+ === 4.0.3 / 2024-09-09
2
14
 
3
15
  Bug fixes:
4
16
 
@@ -65,6 +65,7 @@ autoload :OpenSSL, 'openssl'
65
65
  # #ca_path :: Directory with certificate-authorities
66
66
  # #cert_store :: An SSL certificate store
67
67
  # #ciphers :: List of SSl ciphers allowed
68
+ # #extra_chain_cert :: Extra certificates to be added to the certificate chain
68
69
  # #private_key :: The client's SSL private key
69
70
  # #reuse_ssl_sessions :: Reuse a previously opened SSL session for a new
70
71
  # connection
@@ -181,7 +182,7 @@ class Net::HTTP::Persistent
181
182
  ##
182
183
  # The version of Net::HTTP::Persistent you are using
183
184
 
184
- VERSION = '4.0.3'
185
+ VERSION = '4.0.5'
185
186
 
186
187
  ##
187
188
  # Error class for errors raised by Net::HTTP::Persistent. Various
@@ -272,6 +273,11 @@ class Net::HTTP::Persistent
272
273
 
273
274
  attr_reader :ciphers
274
275
 
276
+ ##
277
+ # Extra certificates to be added to the certificate chain
278
+
279
+ attr_reader :extra_chain_cert
280
+
275
281
  ##
276
282
  # Sends debug_output to this IO via Net::HTTP#set_debug_output.
277
283
  #
@@ -592,6 +598,21 @@ class Net::HTTP::Persistent
592
598
  reconnect_ssl
593
599
  end
594
600
 
601
+ if Net::HTTP.method_defined?(:extra_chain_cert=)
602
+ ##
603
+ # Extra certificates to be added to the certificate chain.
604
+ # It is only supported starting from Net::HTTP version 0.1.1
605
+ def extra_chain_cert= extra_chain_cert
606
+ @extra_chain_cert = extra_chain_cert
607
+
608
+ reconnect_ssl
609
+ end
610
+ else
611
+ def extra_chain_cert= _extra_chain_cert
612
+ raise "extra_chain_cert= is not supported by this version of Net::HTTP"
613
+ end
614
+ end
615
+
595
616
  ##
596
617
  # Creates a new connection for +uri+
597
618
 
@@ -1001,7 +1022,7 @@ class Net::HTTP::Persistent
1001
1022
  connection.verify_depth = @verify_depth
1002
1023
  connection.verify_mode = @verify_mode
1003
1024
  connection.verify_hostname = @verify_hostname if
1004
- @verify_hostname && connection.respond_to?(:verify_hostname=)
1025
+ @verify_hostname != nil && connection.respond_to?(:verify_hostname=)
1005
1026
 
1006
1027
  if OpenSSL::SSL::VERIFY_PEER == OpenSSL::SSL::VERIFY_NONE and
1007
1028
  not Object.const_defined?(:I_KNOW_THAT_OPENSSL_VERIFY_PEER_EQUALS_VERIFY_NONE_IS_WRONG) then
@@ -1043,6 +1064,10 @@ application:
1043
1064
  connection.key = @private_key
1044
1065
  end
1045
1066
 
1067
+ if defined?(@extra_chain_cert) and @extra_chain_cert
1068
+ connection.extra_chain_cert = @extra_chain_cert
1069
+ end
1070
+
1046
1071
  connection.cert_store = if @cert_store then
1047
1072
  @cert_store
1048
1073
  else
@@ -1111,7 +1136,7 @@ application:
1111
1136
  end
1112
1137
 
1113
1138
  ##
1114
- # Sets the HTTPS verify_hostname. Defaults to false.
1139
+ # Sets the HTTPS verify_hostname.
1115
1140
 
1116
1141
  def verify_hostname= verify_hostname
1117
1142
  @verify_hostname = verify_hostname
@@ -1131,4 +1156,3 @@ end
1131
1156
 
1132
1157
  require_relative 'persistent/connection'
1133
1158
  require_relative 'persistent/pool'
1134
-
@@ -247,6 +247,14 @@ class TestNetHttpPersistent < Minitest::Test
247
247
  assert_equal 1, @http.ssl_generation
248
248
  end
249
249
 
250
+ def test_extra_chain_cert_equals
251
+ skip 'extra_chain_cert is not supported by Net::HTTP' unless Net::HTTP.method_defined?(:extra_chain_cert)
252
+ @http.extra_chain_cert = :extra_chain_cert
253
+
254
+ assert_equal :extra_chain_cert, @http.extra_chain_cert
255
+ assert_equal 1, @http.ssl_generation
256
+ end
257
+
250
258
  def test_connection_for
251
259
  @http.open_timeout = 123
252
260
  @http.read_timeout = 321
@@ -1343,7 +1351,7 @@ class TestNetHttpPersistent < Minitest::Test
1343
1351
  assert_equal OpenSSL::SSL::VERIFY_NONE, c.verify_mode
1344
1352
  end
1345
1353
 
1346
- def test_ssl_verify_hostname
1354
+ def test_ssl_enable_verify_hostname
1347
1355
  skip 'OpenSSL is missing' unless HAVE_OPENSSL
1348
1356
 
1349
1357
  @http.verify_hostname = true
@@ -1358,6 +1366,34 @@ class TestNetHttpPersistent < Minitest::Test
1358
1366
  assert c.verify_hostname
1359
1367
  end
1360
1368
 
1369
+ def test_ssl_disable_verify_hostname
1370
+ skip 'OpenSSL is missing' unless HAVE_OPENSSL
1371
+
1372
+ @http.verify_hostname = false
1373
+ c = Net::HTTP.new 'localhost', 80
1374
+
1375
+ skip 'net/http doesn\'t provide verify_hostname= method' unless
1376
+ c.respond_to?(:verify_hostname=)
1377
+
1378
+ @http.ssl c
1379
+
1380
+ assert c.use_ssl?
1381
+ assert c.verify_hostname == false
1382
+ end
1383
+
1384
+ def test_ssl_extra_chain_cert
1385
+ skip 'OpenSSL is missing' unless HAVE_OPENSSL
1386
+ skip 'extra_chain_cert is not supported by Net::HTTP' unless Net::HTTP.method_defined?(:extra_chain_cert)
1387
+
1388
+ @http.extra_chain_cert = :extra_chain_cert
1389
+ c = Net::HTTP.new 'localhost', 80
1390
+
1391
+ @http.ssl c
1392
+
1393
+ assert c.use_ssl?
1394
+ assert_equal :extra_chain_cert, c.extra_chain_cert
1395
+ end
1396
+
1361
1397
  def test_ssl_warning
1362
1398
  skip 'OpenSSL is missing' unless HAVE_OPENSSL
1363
1399
 
@@ -1474,4 +1510,3 @@ class TestNetHttpPersistent < Minitest::Test
1474
1510
  end
1475
1511
  end
1476
1512
  end
1477
-
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-http-persistent
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.3
4
+ version: 4.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Hodel
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 2024-09-09 00:00:00.000000000 Z
11
+ date: 2024-12-04 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: connection_pool
@@ -62,6 +63,7 @@ licenses:
62
63
  - MIT
63
64
  metadata:
64
65
  homepage_uri: https://github.com/drbrain/net-http-persistent
66
+ post_install_message:
65
67
  rdoc_options:
66
68
  - "--main"
67
69
  - README.rdoc
@@ -78,7 +80,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
78
80
  - !ruby/object:Gem::Version
79
81
  version: '0'
80
82
  requirements: []
81
- rubygems_version: 3.6.0.dev
83
+ rubygems_version: 3.0.3.1
84
+ signing_key:
82
85
  specification_version: 4
83
86
  summary: Manages persistent connections using Net::HTTP including a thread pool for
84
87
  connecting to multiple hosts