rxio 1.2.2 → 1.2.3

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
  SHA1:
3
- metadata.gz: f13337de7a44b082d96467f20dde9252ed2951fd
4
- data.tar.gz: 90b34e1beec96333f80d2918dfc4c4cffd7efce7
3
+ metadata.gz: e24aeca7703c5d851ab242ab2aeadbed4e1579b3
4
+ data.tar.gz: 03a7d32a082ace38d4019d44b7a7344d95012ea4
5
5
  SHA512:
6
- metadata.gz: c7be721d92dc697fe7d0ac3905d4708798d71621809f467bdfd494ed3c4ed15522f1d95866857ad184ebff857116b6c4d5e8dc3c46dc962559fa00ba3848f26b
7
- data.tar.gz: 04cf19b64496e7b31e322680f0fba034fab2cd2fc3e54c27013d4628ac9b43f448b2ff101a1138f60ff5ae366514af4f86eb325a8ae1bdd2b100e4c2f0c926f7
6
+ metadata.gz: c4640365e17cea559ba9ab0fe16ac03f5813ab6db0fb143babcaf9ac5e6dc38f8e27d5a73050a3f08dee220926f0828cb4e150e53a8bb9bcb84f857f916e9f65
7
+ data.tar.gz: 576fc4737f981da5bb9a0a7f9245d775248745f2a3a91bda7fba3e510f9e6f364137cc9bd1389357058235f5abf523fa995707ba289615e6ee42337fcc6c5bb4
data/lib/rxio/io_base.rb CHANGED
@@ -47,8 +47,17 @@ module RxIO
47
47
  # Check Endpoint
48
48
  return unless e
49
49
 
50
- # Read Chunk from Socket
51
- chunk = s.read_nonblock CHUNK_SIZE rescue nil
50
+ # OpenSSL doesn't play nice with 'select' because of intermediate buffering.
51
+ # Therefore we loop until we either have an explicit error or a signal to wait.
52
+ done = false
53
+ chunk = ''
54
+ until done || !chunk
55
+ begin
56
+ chunk << s.read_nonblock(CHUNK_SIZE)
57
+ rescue Exception => ex
58
+ if ex.is_a? OpenSSL::SSL::SSLErrorWaitReadable; then done = true; else chunk = nil; end
59
+ end
60
+ end
52
61
 
53
62
  # Drop Endpoint & Abort on Error
54
63
  return drop_endpoint e unless chunk
data/lib/rxio/version.rb CHANGED
@@ -5,5 +5,5 @@
5
5
  module RxIO
6
6
 
7
7
  # Version
8
- VERSION = '1.2.2'
8
+ VERSION = '1.2.3'
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rxio
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eresse