From: Eyal Alalouf Date: Thu, 8 Sep 2005 12:58:14 +0000 (-0000) Subject: Fixes for Grasshopper runtime X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=828e0f16becc359362f379ef0fdd7f8ce4edc7a5;p=mono.git Fixes for Grasshopper runtime svn path=/trunk/mcs/; revision=49694 --- diff --git a/mcs/class/System.Web/System.Web.Hosting/ChangeLog b/mcs/class/System.Web/System.Web.Hosting/ChangeLog index 0226a26429e..b5fe05c8491 100644 --- a/mcs/class/System.Web/System.Web.Hosting/ChangeLog +++ b/mcs/class/System.Web/System.Web.Hosting/ChangeLog @@ -1,3 +1,6 @@ +2005-07-24 Eyal Alalouf + * ServletWorkerRequest.jvm.cs: Implement SendResponseFromFile + 2005-07-24 Eyal Alalouf * ServletWorkerRequest.jvm.cs: Put Console.WriteLine in #if DEBUG diff --git a/mcs/class/System.Web/System.Web.Hosting/ServletWorkerRequest.jvm.cs b/mcs/class/System.Web/System.Web.Hosting/ServletWorkerRequest.jvm.cs index 9b637512001..f9e04e56a7d 100644 --- a/mcs/class/System.Web/System.Web.Hosting/ServletWorkerRequest.jvm.cs +++ b/mcs/class/System.Web/System.Web.Hosting/ServletWorkerRequest.jvm.cs @@ -388,6 +388,19 @@ namespace System.Web.Hosting public override void SendResponseFromFile (string filename, long offset, long length) { + using (FileStream fs = File.OpenRead (filename)) { + byte [] buffer = new byte [4 * 1024]; + + if (offset != 0) + fs.Position = offset; + + long remain = length; + int n; + while (remain > 0 && (n = fs.Read (buffer, 0, (int) Math.Min (remain, buffer.Length))) != 0){ + remain -= n; + SendResponseFromMemory(buffer, n); + } + } } public override void SendResponseFromMemory (byte [] data, int length)