io-endpoint 0.10.2 → 0.11.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: 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