Index: openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl,v diff -u -r1.16 -r1.17 --- openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl 14 Sep 2002 11:21:43 -0000 1.16 +++ openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl 14 Sep 2002 12:20:43 -0000 1.17 @@ -1061,11 +1061,23 @@ } -get { - if { [info exists ad_conn($var)] } { - return $ad_conn($var) - } else { - return [ns_conn $var] - } + # Special handling for the form, because "ns_conn form" can + # cause the server to hang until the socket times out. This + # happens on pages handling multipart form data, where + # ad_page_contract already has called ns_getform and has + # retrieved all data from the client. ns_getform has its + # own caching, so calling it instead of [ns_conn form] + # is OK. + + if { $var == "form" } { + return [ns_getform] + } + + if { [info exists ad_conn($var)] } { + return $ad_conn($var) + } else { + return [ns_conn $var] + } } default {