diff options
author | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-01-16 07:56:06 +0000 |
---|---|---|
committer | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-01-16 07:56:06 +0000 |
commit | 4cdb0a3fcf8245b3bfad9cae7c85f2a20380e7b6 (patch) | |
tree | 79687c48910ef61118df6effa535dd8a7c16bc79 /lib/net | |
parent | 0440dedcbc81b5489a75a2a63a082fc8b30b0e36 (diff) |
aamine
* lib/net/protocol.rb: ignore EOFError for read
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/net')
-rw-r--r-- | lib/net/protocol.rb | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/lib/net/protocol.rb b/lib/net/protocol.rb index 2af9aa9095..b9fa49971a 100644 --- a/lib/net/protocol.rb +++ b/lib/net/protocol.rb @@ -504,9 +504,13 @@ module Net @pipe << "reading #{len} bytes...\n" if @pipe; pipeoff rsize = 0 - while rsize + @buffer.size < len do - rsize += writeinto( dest, @buffer.size ) - fill_rbuf + begin + while rsize + @buffer.size < len do + rsize += writeinto( dest, @buffer.size ) + fill_rbuf + end + rescue EOFError + len = rsize end writeinto( dest, len - rsize ) @@ -534,14 +538,17 @@ module Net def readuntil( target ) - while true do - idx = @buffer.index( target ) - break if idx - fill_rbuf - end - dest = '' - writeinto( dest, idx + target.size ) + begin + while true do + idx = @buffer.index( target ) + break if idx + fill_rbuf + end + writeinto( dest, idx + target.size ) + rescue EOFError + writeinto( dest, @buffer.size ) + end dest end |