diff options
Diffstat (limited to 'ext/openssl/lib')
-rw-r--r-- | ext/openssl/lib/openssl/buffering.rb | 11 | ||||
-rw-r--r-- | ext/openssl/lib/openssl/ssl.rb | 9 |
2 files changed, 15 insertions, 5 deletions
diff --git a/ext/openssl/lib/openssl/buffering.rb b/ext/openssl/lib/openssl/buffering.rb index fdbd71bc0c..6fcb143fc8 100644 --- a/ext/openssl/lib/openssl/buffering.rb +++ b/ext/openssl/lib/openssl/buffering.rb @@ -54,14 +54,19 @@ module Buffering public - def read(size=nil) + def read(size=nil, buf=nil) fill_rbuff unless defined? @rbuffer @eof ||= nil until @eof break if size && size <= @rbuffer.size fill_rbuff end - consume_rbuff(size) + ret = consume_rbuff(size) || "" + if buf + buf.replace(ret) + ret = buf + end + (size && ret.empty?) ? nil : ret end def gets(eol=$/) @@ -164,7 +169,7 @@ module Buffering s = "" args.each{|arg| s << arg.to_s - unless /#{$/}\Z/o =~ s + unless /#{$/}\z/o =~ s s << $/ end } diff --git a/ext/openssl/lib/openssl/ssl.rb b/ext/openssl/lib/openssl/ssl.rb index 811a935509..629109a1de 100644 --- a/ext/openssl/lib/openssl/ssl.rb +++ b/ext/openssl/lib/openssl/ssl.rb @@ -14,7 +14,8 @@ $Id$ =end -require 'openssl/buffering' +require "openssl" +require "openssl/buffering" module OpenSSL module SSL @@ -42,6 +43,10 @@ module OpenSSL def closed? to_io.closed? end + + def do_not_reverse_lookup=(flag) + to_io.do_not_reverse_lookup = flag + end end class SSLSocket @@ -63,7 +68,7 @@ module OpenSSL @svr end - def listen(basklog=5) + def listen(backlog=5) @svr.listen(backlog) end |