Hi Alex,

I have the following code:

===

(load "@lib/http.l" "@lib/xhtml.l" "@lib/form.l")

(de done ()
   (msg "done")
   (html 0 "done" NIL NIL
      "Finito" ) )

(de start ()
   (html 0 "start" NIL NIL
      (prin "<form action=\"@done\" method=\"post\">
<input type=\"hidden\" value=\"v1\" name=\"n1\"/>
<input type=\"hidden\" value=\"v2\" name=\"n2\"/>
<input type=\"submit\" value=\"Done 1\"/>
</form>")
      (prin "<form action=\"@done\" method=\"post\" 
enctype=\"multipart/form-data\">
<input type=\"hidden\" value=\"v1\" name=\"n1\"/>
<input type=\"hidden\" value=\"v2\" name=\"n2\"/>
<input type=\"submit\" value=\"Done 2\"/>
</form>")
      (<post> NIL "@done"
         (<hidden> 'n1 'v1)
         (<hidden> 'n2 'v2)
         (<submit> "Done 3") ) ) )

(server 8080 "@start")

===

It works if I press "Done 2" or "Done 3" button.  It hangs if I press
"Done 1".

It seems to me that picolisp hangs in the else branch of the following
code in http.l, 'http' function:

                  (if (and *MPartLim *MPartEnd)
                     (_htMultipart)
                     (for L (split (line) '&)
                        (when (cdr (setq L (split L "=")))
                           (_htSet (car L) (ht:Pack (cadr L))) ) ) )

It "unhangs" when I press stop button in the browser so I think it
hangs inside the 'line' call waiting for eol or eof but the browser
did not sent any of these...

Any ideas what is wrong and how to fix it?

Thank you,

Tomas
-- 
UNSUBSCRIBE: mailto:[EMAIL PROTECTED]

Reply via email to