io-endpoint 0.10.2 → 0.11.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54e99e42b471fa6902626afb86c9ad63d41156d2e31a4da02d690578a10d30ee
4
- data.tar.gz: e3e1848fee0cc45166f00d7c795afa0498ce63bbd76eb57f532e9c970f2d2f2d
3
+ metadata.gz: 13d2f1f030ef02d8e3af3a6c610fd163cce181414f38873b65f89f121631f030
4
+ data.tar.gz: 699ee178c94c8a4bb6bfb16e4cbdb32f1d6c59939b40d5ce415cacc790f5fa88
5
5
  SHA512:
6
- metadata.gz: 83de2a35af8131ef790632de7b7406f86223cbf0786878106b220c5b5b59b4793dd5b20fad04471becfe81208f852134c767793f69ac8eeb20f75788859a1773
7
- data.tar.gz: db8fe3a0c4b0b827d4c4d940dd41060226e7abdd16db2be07d0c566ee38c80760a803d5af397538b007271a35b5f24a9d4b231ca006b006389e225577ee61099
6
+ metadata.gz: 74db4f5cf9a32b099d67378948aaf731d1709661a93bfe440226bf461f0195b6093fa2258fb9d54f17f0ad79b0f99e8a09b68db69fb57c3e65bb3b19f728a1fe
7
+ data.tar.gz: cc1be6161c818a0085c6f0d0b4fb802adf5f634bfb55640ab89e79cf2c0cc1a1da5207b34ac75083c6e7ec9a358fc9fc2d84ac077668e7cb39971ed2ad6d9722
checksums.yaml.gz.sig CHANGED
Binary file
@@ -10,6 +10,14 @@ require 'openssl'
10
10
 
11
11
  module OpenSSL
12
12
  module SSL
13
+ class SSLSocket
14
+ unless method_defined?(:start)
15
+ def start
16
+ self.accept
17
+ end
18
+ end
19
+ end
20
+
13
21
  module SocketForwarder
14
22
  unless method_defined?(:close_on_exec=)
15
23
  def close_on_exec=(value)
@@ -113,7 +121,9 @@ module IO::Endpoint
113
121
  end
114
122
 
115
123
  def make_server(io)
116
- ::OpenSSL::SSL::SSLServer.new(io, self.context)
124
+ ::OpenSSL::SSL::SSLServer.new(io, self.context).tap do |server|
125
+ server.start_immediately = false
126
+ end
117
127
  end
118
128
 
119
129
  def make_socket(io)
@@ -5,6 +5,6 @@
5
5
 
6
6
  class IO
7
7
  module Endpoint
8
- VERSION = "0.10.2"
8
+ VERSION = "0.11.0"
9
9
  end
10
10
  end
@@ -165,6 +165,16 @@ module IO::Endpoint
165
165
  end
166
166
 
167
167
  async do
168
+ # Some sockets, notably SSL sockets, need application level negotiation before they are ready:
169
+ if socket.respond_to?(:start)
170
+ begin
171
+ socket.start
172
+ rescue
173
+ socket.close
174
+ raise
175
+ end
176
+ end
177
+
168
178
  yield socket, address
169
179
  end
170
180
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: io-endpoint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.2
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -37,7 +37,7 @@ cert_chain:
37
37
  Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
38
38
  voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
39
39
  -----END CERTIFICATE-----
40
- date: 2024-04-24 00:00:00.000000000 Z
40
+ date: 2024-06-23 00:00:00.000000000 Z
41
41
  dependencies: []
42
42
  description:
43
43
  email:
@@ -81,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  requirements: []
84
- rubygems_version: 3.5.3
84
+ rubygems_version: 3.5.11
85
85
  signing_key:
86
86
  specification_version: 4
87
87
  summary: Provides a separation of concerns interface for IO endpoints.
metadata.gz.sig CHANGED
Binary file