D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
alt
/
ruby34
/
share
/
ri
/
system
/
OpenSSL
/
Buffering
/
Filename :
read_nonblock-i.ri
back
Copy
U:RDoc::AnyMethod[iI"read_nonblock:ETI"%OpenSSL::Buffering#read_nonblock;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph; [I"=Reads at most _maxlen_ bytes in the non-blocking manner.;To:RDoc::Markup::BlankLine o; ; [I"9When no data can be read without blocking it raises ;TI"MOpenSSL::SSL::SSLError extended by IO::WaitReadable or IO::WaitWritable.;T@o; ; [I"JIO::WaitReadable means SSL needs to read internally so read_nonblock ;TI"?should be called again when the underlying IO is readable.;T@o; ; [I"KIO::WaitWritable means SSL needs to write internally so read_nonblock ;TI"@should be called again after the underlying IO is writable.;T@o; ; [I"IOpenSSL::Buffering#read_nonblock needs two rescue clause as follows:;T@o:RDoc::Markup::Verbatim; [I"-# emulates blocking read (readpartial). ;TI"begin ;TI"* result = ssl.read_nonblock(maxlen) ;TI"rescue IO::WaitReadable ;TI" IO.select([io]) ;TI" retry ;TI"rescue IO::WaitWritable ;TI" IO.select(nil, [io]) ;TI" retry ;TI" end ;T:@format0o; ; [I"LNote that one reason that read_nonblock writes to the underlying IO is ;TI"Nwhen the peer requests a new TLS/SSL handshake. See openssl the FAQ for ;TI";more details. http://www.openssl.org/support/faq.html;T@o; ; [ I"OBy specifying a keyword argument _exception_ to +false+, you can indicate ;TI"Ithat read_nonblock should not raise an IO::Wait*able exception, but ;TI"Mreturn the symbol +:wait_writable+ or +:wait_readable+ instead. At EOF, ;TI"6it will return +nil+ instead of raising EOFError.;T: @fileI")ext/openssl/lib/openssl/buffering.rb;T:0@omit_headings_from_table_of_contents_below000[ I"'(maxlen, buf=nil, exception: true);T@5FI"Buffering;TcRDoc::NormalModule00