[#41778] [Bug #3515] FreeBSD wrongly raises ECONNRESET on close(2) — Yui NARUSE <redmine@...>

Bug #3515: FreeBSD wrongly raises ECONNRESET on close(2)

12 messages 2010/07/02

[ruby-dev:41888] [Feature:trunk] improvement of sample in lib/imap.rb: --starttls option

From: Nobuyoshi Nakada <nobu@...>
Date: 2010-07-29 03:16:53 UTC
List: ruby-dev #41888
なかだです。

lib/net/imap.rbを直接実行すると使える簡易IMAPクライアントを、
starttlsに対応させてみました。


Index: lib/net/imap.rb
===================================================================
--- lib/net/imap.rb	(revision 28780)
+++ lib/net/imap.rb	(working copy)
@@ -3472,7 +3472,8 @@ if __FILE__ == $0
   $auth = "login"
   $ssl = false
+  $starttls = false

   def usage
-    $stderr.print <<EOF
+    <<EOF
 usage: #{$0} [options] <host>

@@ -3481,4 +3482,5 @@ usage: #{$0} [options] <host>
   --user=USER                   specifies user
   --auth=AUTH                   specifies auth type
+  --starttls                    use starttls
   --ssl                         use ssl
 EOF
@@ -3511,4 +3513,5 @@ EOF
                      ['--user', GetoptLong::REQUIRED_ARGUMENT],
                      ['--auth', GetoptLong::REQUIRED_ARGUMENT],
+                     ['--starttls', GetoptLong::NO_ARGUMENT],
                      ['--ssl', GetoptLong::NO_ARGUMENT])
   begin
@@ -3523,20 +3526,20 @@ EOF
       when "--ssl"
         $ssl = true
+      when "--starttls"
+        $starttls = true
       when "--debug"
         Net::IMAP.debug = true
       when "--help"
         usage
-        exit(1)
+        exit
       end
     end
   rescue
-    usage
-    exit(1)
+    abort usage
   end

   $host = ARGV.shift
   unless $host
-    usage
-    exit(1)
+    abort usage
   end

@@ -3543,4 +3546,5 @@
   imap = Net::IMAP.new($host, :port => $port, :ssl => $ssl)
   begin
+    imap.starttls if $starttls
     password = get_password
     imap.authenticate($auth, $user, password)


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread

Prev Next