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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/io/endpoint/ssl_endpoint.rb +11 -1
- data/lib/io/endpoint/version.rb +1 -1
- data/lib/io/endpoint/wrapper.rb +10 -0
- data.tar.gz.sig +0 -0
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13d2f1f030ef02d8e3af3a6c610fd163cce181414f38873b65f89f121631f030
|
4
|
+
data.tar.gz: 699ee178c94c8a4bb6bfb16e4cbdb32f1d6c59939b40d5ce415cacc790f5fa88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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)
|
data/lib/io/endpoint/version.rb
CHANGED
data/lib/io/endpoint/wrapper.rb
CHANGED
@@ -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.
|
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-
|
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.
|
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
|