logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

r9975 - trunk/libraries/koala/sources/koala: msg#00035

Subject: r9975 - trunk/libraries/koala/sources/koala
Author: andreas
Date: Sat Sep 24 17:48:02 2005
New Revision: 9975

Modified:
   trunk/libraries/koala/sources/koala/headers.dylan
   trunk/libraries/koala/sources/koala/responders.dylan
   trunk/libraries/koala/sources/koala/server.dylan
Log:
bug: 7219

 * increase the default maximum POST request size to 16M
 * disable /koala/shutdown handler
 * decode URL encoding after splitting request parameters, not before


Modified: trunk/libraries/koala/sources/koala/headers.dylan
==============================================================================
--- trunk/libraries/koala/sources/koala/headers.dylan   (original)
+++ trunk/libraries/koala/sources/koala/headers.dylan   Sat Sep 24 17:48:02 2005
@@ -17,7 +17,7 @@
 define variable *header-buffer-growth-amount* :: limited(<integer>, min: 1) = 
1024;
 
 // Max size of data in a POST.
-define variable *max-post-size* :: false-or(<integer>) = 16384;
+define variable *max-post-size* :: false-or(<integer>) = 16*1024*1024;
 
 // The buffer/epos values are for internal use, wouldn't expect to doc 'em.
 define function read-message-headers (stream :: <stream>,

Modified: trunk/libraries/koala/sources/koala/responders.dylan
==============================================================================
--- trunk/libraries/koala/sources/koala/responders.dylan        (original)
+++ trunk/libraries/koala/sources/koala/responders.dylan        Sat Sep 24 
17:48:02 2005
@@ -49,6 +49,7 @@
 // Shutdown the server.  You definately don't want this active in a 
 // production setting.
 //
+/*
 define responder shutdown-responder ("/koala/shutdown")
     (request, response)
   let stream = output-stream(response);
@@ -57,6 +58,7 @@
   force-output(stream);
   stop-server(abort: #t);
 end;
+*/
 
 // Load a module
 //

Modified: trunk/libraries/koala/sources/koala/server.dylan
==============================================================================
--- trunk/libraries/koala/sources/koala/server.dylan    (original)
+++ trunk/libraries/koala/sources/koala/server.dylan    Sat Sep 24 17:48:02 2005
@@ -654,8 +654,8 @@
         request.request-url := substring(buffer, bpos, qpos | epos);
         if (qpos)
           log-debug("Request query string = %s", copy-sequence(buffer, start: 
qpos + 1, end: epos));
-          let query = decode-url(buffer, qpos + 1, epos);
-          extract-query-values(query, 0, size(query), 
request.request-query-values)
+          extract-query-values(buffer, qpos + 1, epos,
+                               request.request-query-values)
         end;
         let bpos = skip-whitespace(buffer, epos, eol);
         let vpos = whitespace-position(buffer, bpos, eol) | eol;
@@ -732,7 +732,8 @@
     let content = decode-url(buffer, 0, content-length);
     // By the time we get here request-query-values has already been bound to 
a <string-table>
     // containing the URL query values.  Now we augment it with any form 
values.
-    extract-query-values(content, 0, content.size, 
request.request-query-values);
+    extract-query-values(buffer, 0, content-length,
+                         request.request-query-values);
     request-content(request) := content
   // ---TODO: Deal with content types intelligently.  For now this'll have to 
do.
   elseif (member?(content-type, #["text/xml", "text/html", "text/plain"],
@@ -997,7 +998,7 @@
   end;
 end extract-request-version;
 
-// Turn a string like "foo=8&bar=&baz=zzz" into a <string-table> with the 
"obvious" keys/vals.
+/ Turn a string like "foo=8&bar=&baz=zzz" into a <string-table> with the 
"obvious" keys/vals.
 // Note that in the above example string "bar" maps to "", not #f.
 //---TODO: Find out if the query keys are case-sensitive in the HTTP spec and 
make sure this
 //         does the right thing.
@@ -1007,8 +1008,8 @@
   local method extract-key/val (beg :: <integer>, fin :: <integer>)
           let eq-pos = char-position('=', buffer, beg, fin);
           when (eq-pos & (eq-pos > beg))
-            let key = substring(buffer, beg, eq-pos);
-            let val = substring(buffer, eq-pos + 1, fin);
+            let key = decode-url(buffer, beg, eq-pos);
+            let val = decode-url(buffer, eq-pos + 1, fin);
             values(key, val)
           end
         end;
-- 
Gd-chatter mailing list
Gd-chatter@xxxxxxxxxxxxxxxx
https://gauss.gwydiondylan.org/mailman/listinfo/gd-chatter



<Prev in Thread] Current Thread [Next in Thread>