[#83107] Alias Enumerable#include? to Enumerable#includes? — Alberto Almagro <albertoalmagro@...>

Hello,

9 messages 2017/10/04

[ruby-core:83315] Re: [Ruby trunk Bug#14013] [PATCH] Webrick 60172 fix

From: Eric Wong <normalperson@...>
Date: 2017-10-16 20:14:31 UTC
List: ruby-core #83315
Odd, so using IO#wait_*able methods doesn't work for you, but
IO.select does?  Can you try the following patch?

It's basically your patch with "writable" spelled correctly:

```
diff --git a/lib/webrick/server.rb b/lib/webrick/server.rb
index 2d678273e5..25d507b67d 100644
--- a/lib/webrick/server.rb
+++ b/lib/webrick/server.rb
@@ -299,8 +299,10 @@ def start_thread(sock, &block)
               # we must call OpenSSL::SSL::SSLSocket#accept_nonblock until
               # it stop returning wait_* symbols:
               case ret = sock.accept_nonblock(exception: false)
-              when :wait_readable, :wait_writable
-                sock.to_io.__send__(ret)
+              when :wait_readable
+                IO.select([sock])
+              when :wait_writable
+                IO.select(nil, [sock])
               else
                 break
               end while true
```

I guess your original didn't loop on "while true", either, but
it really should (to properly finish the negotiation).  There's
also no need to call .to_io with IO.select, as it's already done
transparently.

(The reason I favor IO#wait_readable and IO#wait_writable is
 it is optimized under Linux)

I won't be using proprietary services like GitHub, so I'll let
you handle the testing.  Can you repeat this failure on a local
machine or using something like ssh?

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next