>>>Jacob Levy said:
 > Brent
 > 
 > Platform: Win98, Tcl/Tk 8.3.2, TclHttpd 3.1.0.
 > 
 > Several small nits/questions:
 > 
 > The end of the httpd.tcl script is a vwait. When you source this into
 > another script, the outter script doesn't continue past the point where
 > httpd.tcl is sourced. Removing the vwait and putting it at the end of
 > the outter script fixes this. Is it the intent that people should edit
 > and modify httpd.tcl?

Yes, although I've just now rev'ed to 3.2 and added a cleaner way to
drop code into the server so you don't have to modify the main script.
In practice, however, I wouldn't be shocked to hear that you modify
the startup code in a truely custom, embedded situtation.  For our
Ajuba server we have our own startup sequence that is peculiar to
our application.

 > httpd.tcl also cannot be sourced multiple times. It complains that cget
 > is already exported into some namespace.

It'll also try to start the server listening sockets and fail as well.
This script is a "main program", not a subroutine.

 > When a URL domain URL gets called as a POST action from some form, the
 > query data is not set. For example:
 > HTML:
 >    <form method=post action=/mine/doit>
 >     ...
 >     </form>
 > 
 > Tcl:
 > 
 >    Url_PrefixInstall /mine [list myhandler /mine]
 >     proc myhandler {prefix sock postfix} {
 >         upvar #0 Httpd$sock data
 > 
 >         if {[string compare $data(proto) "POST"] == 0} {
 >             # Oops, the $data(query) field is empty in this case, must
 >             # get at the data with Url_ReadPost?
 >         }
 >     }

The Httpd_ReadPostData interface was recently added to do this -
in earlier versions the server always read all the post data,
but in some applications the domain handler wants more control.
There are also async variants  - skim the lib/httpd.tcl code
and see how it is used in the doc.tcl code as well.

--      Brent Welch     <[EMAIL PROTECTED]>
        http://www.ajubasolutions.com
        Scriptics changes to Ajuba Solutions
        scriptics.com => ajubasolutions.com


Reply via email to