lib/bunny/cruby/ssl_socket.rb in bunny-2.6.2 vs lib/bunny/cruby/ssl_socket.rb in bunny-2.6.3
- old
+ new
@@ -6,11 +6,24 @@
# TLS-enabled TCP socket that implements convenience
# methods found in Bunny::Socket.
class SSLSocket < OpenSSL::SSL::SSLSocket
- READ_RETRY_EXCEPTION_CLASSES = [Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitReadable]
- WRITE_RETRY_EXCEPTION_CLASSES = [Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitWritable]
+ READ_RETRY_EXCEPTION_CLASSES = if defined?(IO::EAGAINWaitReadable)
+ # Ruby 2.1+
+ [Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitReadable,
+ IO::EAGAINWaitReadable, IO::EWOULDBLOCKWaitReadable]
+ else
+ # 2.0
+ [Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitReadable]
+ end
+ WRITE_RETRY_EXCEPTION_CLASSES = if defined?(IO::EAGAINWaitWritable)
+ [Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitWritable,
+ IO::EAGAINWaitWritable, IO::EWOULDBLOCKWaitWritable]
+ else
+ # 2.0
+ [Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitWritable]
+ end
# Reads given number of bytes with an optional timeout
#
# @param [Integer] count How many bytes to read
# @param [Integer] timeout Timeout