summaryrefslogtreecommitdiff
path: root/lib/net
diff options
context:
space:
mode:
authoraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-01-16 07:56:06 +0000
committeraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-01-16 07:56:06 +0000
commit4cdb0a3fcf8245b3bfad9cae7c85f2a20380e7b6 (patch)
tree79687c48910ef61118df6effa535dd8a7c16bc79 /lib/net
parent0440dedcbc81b5489a75a2a63a082fc8b30b0e36 (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.rb27
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