From: msnomer Date: 2002-05-20T01:08:51+09:00 Subject: Broken protocol.rb behavior? There seems to be a problem with ReadAdapter, unless I'm doing something very stupid with breaking out of a loop. Here is my entire program: > #!/usr/bin/ruby > require 'net/pop' > > MSGPAT = /^\$\$\$X(.*)/ > > i = 0 > Net::POP3.start('pop server', 110, 'user', 'pass') {|pop| > if pop.mails.empty? then > puts 'no mail.' > else > pop.each_mail do |m| # or "pop.mails.each ..." > m.all { |line| > if line =~ MSGPAT > break > end > } > i += 1 > end > puts "#{pop.mails.size} mails popped." > end > } Running it gets the following backtrace: > /usr/lib/ruby/1.6/net/pop.rb:456:in `get_reply': undefined method `strip' for > nil (NameError) > from /usr/lib/ruby/1.6/net/protocol.rb:275:in `check_reply' > from /usr/lib/ruby/1.6/net/protocol.rb:287:in `getok' > from /usr/lib/ruby/1.6/net/pop.rb:423:in `retr' > from /usr/lib/ruby/1.6/net/pop.rb:423:in `atomic' > from /usr/lib/ruby/1.6/net/pop.rb:423:in `retr' > from /usr/lib/ruby/1.6/net/pop.rb:361:in `pop' > from ./test1.rb:12 > from ./test1.rb:11:in `each' > from /usr/lib/ruby/1.6/net/pop.rb:318:in `each_mail' > from ./test1.rb:11 > from ./test1.rb:7:in `start' > from /usr/lib/ruby/1.6/net/protocol.rb:49:in `start' > from /usr/lib/ruby/1.6/net/protocol.rb:49:in `start' > from ./test1.rb:7 This error happens IFF the m.all loop is broken out of. So, is something very weird going on, or am I doing something wrong? If the former, what's a workaround, or, if the latter, what am I doing wrong? This is a relatively recent change in behavior, which tends to make me leans towards ReadAdapter being broken rather than my code. -- meredith "If you want me to leave, you can put your hands on my hot tight little body and make me." - Spike, IWMTLY "Everyone's getting spanked but me!" - Willow, The I In Team