X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem%2FSystem.Net%2FResponseStream.cs;h=b414f00a5acaea08b94281c1f95ad761b1b129b5;hb=9d17307d3bbc1233e8ccce1173fe4497e64504f6;hp=104aef3173deb13bf077c8f3c0fed5135b2ecc2f;hpb=c39d7ce9985a7067c1cbf44188007c9433901940;p=mono.git diff --git a/mcs/class/System/System.Net/ResponseStream.cs b/mcs/class/System/System.Net/ResponseStream.cs index 104aef3173d..b414f00a5ac 100644 --- a/mcs/class/System/System.Net/ResponseStream.cs +++ b/mcs/class/System/System.Net/ResponseStream.cs @@ -25,7 +25,9 @@ // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // -#if NET_2_0 + +#if NET_2_0 && SECURITY_DEP + using System.IO; using System.Net.Sockets; using System.Text; @@ -34,18 +36,19 @@ namespace System.Net { // FIXME: Does this buffer the response until Close? // What happens when we set content-length to X and write X-1 bytes then close? // what if we don't set content-length at all? - class ResponseStream : NetworkStream + class ResponseStream : Stream { HttpListenerResponse response; bool ignore_errors; bool disposed; bool trailer_sent; + Stream stream; - internal ResponseStream (Socket sock, HttpListenerResponse response, bool ignore_errors) : - base (sock, false) + internal ResponseStream (Stream stream, HttpListenerResponse response, bool ignore_errors) { this.response = response; this.ignore_errors = ignore_errors; + this.stream = stream; } public override bool CanRead { @@ -94,17 +97,17 @@ namespace System.Net { { string str = String.Format ("{0:x}\r\n{1}", size, final ? "\r\n" : ""); byte [] b = Encoding.ASCII.GetBytes (str); - base.Write (b, 0, b.Length); + stream.Write (b, 0, b.Length); } internal void InternalWrite (byte [] buffer, int offset, int count) { if (ignore_errors) { try { - base.Write (buffer, offset, count); + stream.Write (buffer, offset, count); } catch { } } else { - base.Write (buffer, offset, count); + stream.Write (buffer, offset, count); } } @@ -124,7 +127,7 @@ namespace System.Net { InternalWrite (buffer, offset, count); try { if (chunked) - base.Write (crlf, 0, 2); + stream.Write (crlf, 0, 2); } catch { } } @@ -141,7 +144,7 @@ namespace System.Net { if (response.SendChunked) WriteChunkSize (count, false); } catch { } - return base.BeginWrite (buffer, offset, count, cback, state); + return stream.BeginWrite (buffer, offset, count, cback, state); } public override void EndWrite (IAsyncResult ares) @@ -151,14 +154,14 @@ namespace System.Net { if (ignore_errors) { try { - base.EndWrite (ares); + stream.EndWrite (ares); if (response.SendChunked) - base.Write (crlf, 0, 2); + stream.Write (crlf, 0, 2); } catch { } } else { - base.EndWrite (ares); + stream.EndWrite (ares); if (response.SendChunked) - base.Write (crlf, 0, 2); + stream.Write (crlf, 0, 2); } }