diff options
Diffstat (limited to 'ext/openssl/lib/openssl/buffering.rb')
-rw-r--r-- | ext/openssl/lib/openssl/buffering.rb | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/ext/openssl/lib/openssl/buffering.rb b/ext/openssl/lib/openssl/buffering.rb index 6ddec099bf..031af4baa3 100644 --- a/ext/openssl/lib/openssl/buffering.rb +++ b/ext/openssl/lib/openssl/buffering.rb @@ -16,7 +16,7 @@ module Buffering include Enumerable - attr_accessor :sync, :sync_close + attr_accessor :sync BLOCK_SIZE = 1024*16 # @@ -158,7 +158,12 @@ module Buffering def puts(*args) s = "" - args.each{ |arg| s << arg.to_s + $/ } + args.each{|arg| + s << arg.to_s + unless /#{$/}\Z/o =~ s + s << $/ + end + } do_write(s) nil end @@ -183,9 +188,7 @@ module Buffering end def close - flush + flush rescue nil sysclose - @sync_close ||= false - @io.close if @sync_close end end |