Fixes for Grasshopper runtime
authorEyal Alalouf <eyala@mainsoft.com>
Thu, 8 Sep 2005 12:58:14 +0000 (12:58 -0000)
committerEyal Alalouf <eyala@mainsoft.com>
Thu, 8 Sep 2005 12:58:14 +0000 (12:58 -0000)
svn path=/trunk/mcs/; revision=49694

mcs/class/System.Web/System.Web.Hosting/ChangeLog
mcs/class/System.Web/System.Web.Hosting/ServletWorkerRequest.jvm.cs

index 0226a26429e3583cfda23919a7d56723648dfae7..b5fe05c849137a28dadd61292e92ce1a573c1f33 100644 (file)
@@ -1,3 +1,6 @@
+2005-07-24  Eyal Alalouf  <eyala@mainsoft.com>
+       * ServletWorkerRequest.jvm.cs: Implement SendResponseFromFile
+
 2005-07-24  Eyal Alalouf  <eyala@mainsoft.com>
        * ServletWorkerRequest.jvm.cs: Put Console.WriteLine in #if DEBUG
 
index 9b63751200160be55d839b4465c2c20070a4e7b1..f9e04e56a7d7be411932975fb43c3eaf25767029 100644 (file)
@@ -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)