]> gitweb.factorcode.org Git - factor.git/commitdiff
make mime parsing return a single hashtable instead of several different ones
authorDoug Coleman <doug.coleman@gmail.com>
Mon, 26 Jan 2009 21:23:49 +0000 (15:23 -0600)
committerDoug Coleman <doug.coleman@gmail.com>
Mon, 26 Jan 2009 21:23:49 +0000 (15:23 -0600)
basis/http/server/server.factor
basis/mime/multipart/multipart-tests.factor
basis/mime/multipart/multipart.factor

index 8a5e695a70a541ad5b746a9ed549f9fbedc091e3..c9ec2c7f3e8b3f2b80d2b55f18d166424266fd45 100755 (executable)
@@ -42,7 +42,7 @@ ERROR: no-boundary ;
     ";" split1 nip
     "=" split1 nip [ no-boundary ] unless* ;
 
-: read-multipart-data ( request -- form-variables uploaded-files )
+: read-multipart-data ( request -- mime-parts )
     [ "content-type" header ]
     [ "content-length" header string>number ] bi
     unlimit-input
@@ -55,7 +55,7 @@ ERROR: no-boundary ;
 
 : parse-content ( request content-type -- post-data )
     [ <post-data> swap ] keep {
-        { "multipart/form-data" [ read-multipart-data assoc-union >>params ] }
+        { "multipart/form-data" [ read-multipart-data >>params ] }
         { "application/x-www-form-urlencoded" [ read-content query>assoc >>params ] }
         [ drop read-content >>data ]
     } case ;
index e1bf0483bcff84cd44afec52cf6e51f035ff3577..f4156fac9e848dd0de90b7b102ddb90376764e9e 100644 (file)
@@ -20,11 +20,11 @@ IN: mime.multipart.tests
 
 [ t ] [
     mime-test-stream [ upload-separator parse-multipart ] with-input-stream
-    nip "\"up.txt\"" swap key?
+    "\"up.txt\"" swap key?
 ] unit-test
 
 [ t ] [
     mime-test-stream [ upload-separator parse-multipart ] with-input-stream
-    drop "\"text1\"" swap key?
+    "\"text1\"" swap key?
 ] unit-test
 
index 1cea707862f8b6326781f2e3c4c9308130ec3930..1b5ce74620592faf7e2386d6b121b12134dfddaf 100755 (executable)
@@ -16,8 +16,7 @@ header
 content-disposition bytes
 filename temp-file
 name name-content
-uploaded-files
-form-variables ;
+mime-parts ;
 
 TUPLE: mime-file headers filename temporary-path ;
 TUPLE: mime-variable headers key value ;
@@ -25,8 +24,7 @@ TUPLE: mime-variable headers key value ;
 : <multipart> ( mime-separator -- multipart )
     multipart new
         swap >>mime-separator
-        H{ } clone >>uploaded-files
-        H{ } clone >>form-variables ;
+        H{ } clone >>mime-parts ;
 
 ERROR: bad-header bytes ;
 
@@ -87,16 +85,16 @@ ERROR: end-of-stream multipart ;
     ] [
         [ [ header>> ] [ filename>> ] [ temp-file>> ] tri mime-file boa ]
         [ filename>> ]
-        [ uploaded-files>> set-at ] tri
+        [ mime-parts>> set-at ] tri
     ] if ;
 
-: save-form-variable ( multipart -- )
+: save-mime-part ( multipart -- )
     dup name>> empty-name? [
         drop
     ] [
         [ [ header>> ] [ name>> ] [ name-content>> ] tri mime-variable boa ]
         [ name>> ]
-        [ form-variables>> set-at ] tri
+        [ mime-parts>> set-at ] tri
     ] if ;
 
 : dump-mime-file ( multipart filename -- multipart )
@@ -124,7 +122,7 @@ ERROR: unknown-content-disposition multipart ;
     ] [
         "name" lookup-disposition [
             [ dup mime-separator>> dump-string >>name-content ] dip
-            >>name dup save-form-variable
+            >>name dup save-mime-part
         ] [
              unknown-content-disposition
         ] if*
@@ -157,6 +155,6 @@ ERROR: no-content-disposition multipart ;
     read-header
     dup end-of-stream?>> [ process-header parse-multipart-loop ] unless ;
 
-: parse-multipart ( separator -- form-variables uploaded-files )
+: parse-multipart ( separator -- mime-parts )
     <multipart> parse-beginning parse-multipart-loop
-    [ form-variables>> ] [ uploaded-files>> ] bi ;
+    mime-parts>> ;