From 81996fee78a4de704feb09891eafced8b017fcde Mon Sep 17 00:00:00 2001 From: Gonzalo Paniagua Javier Date: Fri, 3 Dec 2004 06:24:59 +0000 Subject: [PATCH] 2004-12-03 Gonzalo Paniagua Javier * NetworkStream.cs: Write should ensure that writes all the contents of the buffer. Fixes bug #70123. Besos para Miguelito. svn path=/trunk/mcs/; revision=36989 --- mcs/class/System/System.Net.Sockets/ChangeLog | 5 +++++ mcs/class/System/System.Net.Sockets/NetworkStream.cs | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/mcs/class/System/System.Net.Sockets/ChangeLog b/mcs/class/System/System.Net.Sockets/ChangeLog index ce596517605..1b23d2800ad 100644 --- a/mcs/class/System/System.Net.Sockets/ChangeLog +++ b/mcs/class/System/System.Net.Sockets/ChangeLog @@ -1,3 +1,8 @@ +2004-12-03 Gonzalo Paniagua Javier + + * NetworkStream.cs: Write should ensure that writes all the contents + of the buffer. Fixes bug #70123. Besos para Miguelito. + 2004-10-14 Dick Porter * Socket.cs (Sockets ): Set Accept()ed socket blocking status to diff --git a/mcs/class/System/System.Net.Sockets/NetworkStream.cs b/mcs/class/System/System.Net.Sockets/NetworkStream.cs index 2a965dcdf2f..178589f3cca 100644 --- a/mcs/class/System/System.Net.Sockets/NetworkStream.cs +++ b/mcs/class/System/System.Net.Sockets/NetworkStream.cs @@ -163,8 +163,8 @@ namespace System.Net.Sockets try { retval = socket.BeginReceive (buffer, offset, size, 0, callback, state); - } catch { - throw new IOException ("BeginReceive failure"); + } catch (Exception e) { + throw new IOException ("BeginReceive failure", e); } return retval; @@ -310,7 +310,10 @@ namespace System.Net.Sockets throw new ArgumentOutOfRangeException("offset+size exceeds the size of buffer"); try { - socket.Send (buffer, offset, size, 0); + int count = 0; + while (size - count > 0) { + count += socket.Send (buffer, offset + count, size - count, 0); + } } catch (Exception e) { throw new IOException ("Write failure", e); } -- 2.25.1