From: pdahorek@... Date: 2018-11-19T16:05:50+00:00 Subject: [ruby-core:89882] [Ruby trunk Bug#15318] net/imap socket backward compatibility broken in ruby 2.5+ Issue #15318 has been updated by ahorek (Pavel Rosick��). It wasn't intentional, but I think you shouldn't depend on TCPSocket anyway. 1/ Net::IMAP doesn't expose @socket in a public api 2/ it isn't documented that Net::IMAP will always use TCPSocket @nobu what's your opinion? we should at least unify net/* libraries. any idea how to help socksify to use this pattern without patching TCPSocket directly? ``` Socksify::proxy('127.0.0.1', 1080) do |_| imap = Net::IMAP.new('imap.host.com', 143) end ``` #12435 will also break other protocols and I think we can't avoid that without changing socksify's code... ---------------------------------------- Bug #15318: net/imap socket backward compatibility broken in ruby 2.5+ https://bugs.ruby-lang.org/issues/15318#change-74953 * 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: