[ruby-core:89872] [Ruby trunk Bug#15318] net/imap socket backward compatibility broken in ruby 2.5+

From: pdahorek@...
Date: 2018-11-19 10:52:42 UTC
List: ruby-core #89872
Issue #15318 has been updated by ahorek (Pavel Rosick箪).


ok, IMAP uses Socket.tcp instead of TCPSocket, so if you patch TCPSocket directly it won't work anymore.

the intention was to get rid of Timeout.timeout {} and make these libraries fully async

there are simmilar pending changes for POP3 and other protocols:
https://bugs.ruby-lang.org/issues/12928
https://bugs.ruby-lang.org/issues/12435
I think the main blocker is that getaddrinfo isn't async and resolv.rb is much slower.

----------------------------------------
Bug #15318: net/imap socket backward compatibility broken in ruby 2.5+
https://bugs.ruby-lang.org/issues/15318#change-74937

* Author: karis10 (bug reporter)
* Status: Feedback
* Priority: Normal
* Assignee: shugo (Shugo Maeda)
* Target version: 
* ruby -v: 
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
Hi,
I use net/pop and net/imap libraries and sometimes I need my pop/imap connections to be socksified or proxified (through TCPSocket initialize method modifications: https://github.com/Shopify/socksify-ruby). Upgrading to ruby 2.5.3 from 2.4.4 I've found that TCPSocket interface was changed in favor of raw sockets by this patch: https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/58549/diff/lib/net/imap.rb the reason was this issue: https://bugs.ruby-lang.org/issues/13379

And after migrating from 2.4.4 to 2.5.3 and a bit of debugging I've found that standard library behavior was internally _silently_ broken. In 2.5.3 net/pop library still can be normally proxified, but not net/imap.



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

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