[#61822] Plan Developers Meeting Japan April 2014 — Zachary Scott <e@...>

I would like to request developers meeting around April 17 or 18 in this mo=

14 messages 2014/04/03
[#61825] Re: Plan Developers Meeting Japan April 2014 — Urabe Shyouhei <shyouhei@...> 2014/04/03

It's good if we have a meeting then.

[#61826] Re: Plan Developers Meeting Japan April 2014 — Zachary Scott <e@...> 2014/04/03

Regarding openssl issues, I=E2=80=99ve discussed possible meeting time with=

[#61833] Re: Plan Developers Meeting Japan April 2014 — Martin Bo煬et <martin.bosslet@...> 2014/04/03

Hi,

[ruby-core:62064] [ruby-trunk - Bug #9750] [Open] OpenSSL::SSL::SSLServer can not accept a Socket as it's first parameter

From: sstelfox+rubybugs@...
Date: 2014-04-16 17:42:15 UTC
List: ruby-core #62064
Issue #9750 has been reported by Sam Stelfox.

----------------------------------------
Bug #9750: OpenSSL::SSL::SSLServer can not accept a Socket as it's first parameter
https://bugs.ruby-lang.org/issues/9750

* Author: Sam Stelfox
* Status: Open
* Priority: Normal
* Assignee: 
* Category: ext/openssl
* Target version: current: 2.2.0
* ruby -v: ruby 2.2.0dev (2014-04-16 trunk 45603) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
This could potentially be an issue with a lack of documentation, in which case this may be more appropriate as a feature request.

The first parameter of OpenSSL::SSL::SSLServer#initialize takes a TCPServer without any issue, however, when provided with an instance of Socket that has been created with Socket::SOCK_STREAM (so a standard TCP socket) it breaks with a "wrong argument type Array (expected File)" when attempting to accept a new client. I tracked this down to the difference in return values from TCPServer#accept (returns just a file descriptor) and Socket#accept (which returns an array of file descriptor and address info) and I believe it would be fairly easy to adjust the SSLServer to be able to handle both.

I've attached some sample standalone code that demonstrates the issue and has a work around based on a subclass'd version of SSLServer that can handle both TCPServer and Socket objects. The important lines are 45-58 as well as 85-86. Everything else is setup and support too get those running or are comments. When running without modification it will demonstrate the error. By swapping the comments on 85-86 you can use the adjusted version of SSLServer#accept.

Please let me know if there are any questions, or concerns. I'm happy to help in anyway around this issue.

---Files--------------------------------
ssl_server_issue_example.rb (3.38 KB)


-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next