io-endpoint 0.10.2 → 0.10.3

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: afbc41c1af461a0f589ca44c76c181ee916aa15cf3942f6c36f28abfe4074a0e
4
+ data.tar.gz: 4befca414c4f7ab1d3981f3849371f44d9cd2bed59452224decef2c9f49ca476
5
5
  SHA512:
6
- metadata.gz: 83de2a35af8131ef790632de7b7406f86223cbf0786878106b220c5b5b59b4793dd5b20fad04471becfe81208f852134c767793f69ac8eeb20f75788859a1773
7
- data.tar.gz: db8fe3a0c4b0b827d4c4d940dd41060226e7abdd16db2be07d0c566ee38c80760a803d5af397538b007271a35b5f24a9d4b231ca006b006389e225577ee61099
6
+ metadata.gz: 86e753b79efe7ad2438a5ac795db34a10887635835eb80767022cf0228370c6c6e2850f51afccf6d82d6f1f80b79290ecbc44807b6237d0d12d1d1f0d4df000d
7
+ data.tar.gz: 5f5a734cff764e4928d87fdce912278fd49820c4e864a49d092f13df6f4ea7944a28b6a35bae837a6803f381ddbaa9f5b5f6f22e0329af86cc18c9097202b105
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.10.3"
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.10.3
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-05-10 00:00:00.000000000 Z
41
41
  dependencies: []
42
42
  description:
43
43
  email:
metadata.gz.sig CHANGED
Binary file