From: usa@... Date: 2016-03-24T07:19:25+00:00 Subject: [ruby-core:74511] [Ruby trunk Bug#12044] net/ftp.rb: add NullSocket#closed? to fix closing not yet opened connection Issue #12044 has been updated by Usaku NAKAMURA. Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN to 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED ---------------------------------------- Bug #12044: net/ftp.rb: add NullSocket#closed? to fix closing not yet opened connection https://bugs.ruby-lang.org/issues/12044#change-57632 * Author: Anthony Dmitriyev * Status: Closed * Priority: Normal * Assignee: ruby-core * ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin14] * Backport: 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED ---------------------------------------- Hi there, I've opened a PR for this issue on GitHub: https://github.com/ruby/ruby/pull/1232 An instance of `NullSocket` is stored in a `@sock` variable of a new `Net::FTP`, it also has a `#close` method (that obviously does nothing), but it is never called, because a wrapping `Net::FTP#close` checks that `@sock and not @sock.closed?` which crashes with `FTPConnectionError` because there is no method `#closed?` on `NullSocket`. This PR adds it and a test to verify that it works. Below is the way to reproduce the error in the IRB. As you can see it's quite confusing, you'd expect `#closed?` not to raise an error, but return `true` instead. ~~~ >> ftp = Net::FTP.new => #, @binary=true, @passive=true, @debug_mode=false, @resume=false, @sock=#, @logged_in=false, @open_timeout=nil, @read_timeout=60> >> ftp.close Net::FTPConnectionError: not connected from /usr/local/var/rbenv/versions/2.3.0/lib/ruby/2.3.0/net/ftp.rb:1277:in `method_missing' from /usr/local/var/rbenv/versions/2.3.0/lib/ruby/2.3.0/net/ftp.rb:1168:in `close' from (irb):6 from /usr/local/var/rbenv/versions/2.3.0/bin/irb:11:in `
' >> ftp.closed? Net::FTPConnectionError: not connected from /usr/local/var/rbenv/versions/2.3.0/lib/ruby/2.3.0/net/ftp.rb:1277:in `method_missing' from /usr/local/var/rbenv/versions/2.3.0/lib/ruby/2.3.0/net/ftp.rb:1184:in `closed?' from (irb):7 from /usr/local/var/rbenv/versions/2.3.0/bin/irb:11:in `
' ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: