Project

General

Profile

Feature #12077

Updated by tonci (Tonči Damjanić) about 3 years ago

Hello,

Is there a reason why `SSLSocket#read` doesn't work the same as `SSLSocket#sysread` and why there is no `SSLSocket#recv`?

Right now it is impossible to have code agnostic in regards to the socket type.

One solution is to monkey-patch `OpenSSL::SSL::SSLSocket` (see lower) to share the same interface as `TCPSocket`, but given the generic names of monkey-patched functions, I'm not sure if they could result with some leaks or strange behavior.

~~~
class OpenSSL::SSL::SSLSocket
def read(*args)
sysread(*args)
end

def write(*args)
syswrite(*args)
end

def close
sysclose
end
end
~~~

Thoughts?

Back