Project

General

Profile

Actions

Bug #9125

closed

Net::SMTP - invalid method raised when attempting to connect using STARTTLS

Added by pveselov (Pawel Veselov) over 10 years ago. Updated about 10 years ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
[ruby-core:58418]

Description

Simple attempt (in irb):

require 'net/smtp'
smtp = Net::SMTP.new('server', 587)
mtp.enable_starttls()
smtp.start()

NoMethodError: undefined method success?' for "200 dummy reply code":String from /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/smtp.rb:949:in check_response'
from /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/smtp.rb:554:in do_start' from /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/smtp.rb:525:in start'
from (irb):9
from /usr/local/rvm/rubies/ruby-2.0.0-p247/bin/irb:13:in `'

The problem is with the critical() method, the method returns the "dummy response" if there already was a pending error.
The fix is to replace the line of:

  return '200 dummy reply code' if @error_occured

to

  return Response.parse('200 dummy reply code') if @error_occured

Alternatively, one can have a "canned" dummy response instance, but that may be unnecessary considering this only happens in error path.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0