From 21d1f17d54546a39774fffddfb7756cd8f33cfc8 Mon Sep 17 00:00:00 2001 From: Matt Miller Date: Thu, 24 Nov 2005 19:52:12 +0000 Subject: [PATCH] fix git-svn-id: file:///home/svn/incoming/trunk@3088 4d416f70-5f16-0410-b530-b9f4589650da --- lib/rex/io/stream.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/rex/io/stream.rb b/lib/rex/io/stream.rb index 0dbd7bd6eb..6007026581 100644 --- a/lib/rex/io/stream.rb +++ b/lib/rex/io/stream.rb @@ -31,7 +31,7 @@ module Stream begin fd.syswrite(buf) rescue IOError - return 0 if (fd.abortive_close == true) + return nil if (fd.abortive_close == true) raise $! end @@ -135,6 +135,10 @@ module Stream # Keep writing until our send length drops to zero while (send_len > 0) curr_len = timed_write(send_buf, wait, opts) + + # If the write operation failed due to an IOError, then we fail. + return buf.length - send_len if (curr_len == nil) + send_len -= curr_len send_buf.slice!(0, curr_len) end