Hmm - I think a better approach might be to use the custom code feature
I'm adding for 3.2.  That way you can create a file with your various 
Doc_AddRoot
commands, plus anything else you need, and drop it into the tclhttpd/custom
directory.  That code will be loaded automatically during startup,
and you can change the code directory via the command line.

Could you try out that 3.2 feature and think about how it compares with
what you've done?  For the moment you'll need
ftp://ftp.ajubasolutions.com/pub/tcl/httpd/tclhttpd3.2-snapshot.tar.gz (or 
.zip)
ftp://ftp.ajubasolutions.com/pub/tcl/tcllib/tcllib0.7-shapshot.tar.gz

>>>petrus vloet said:
 > This is a multi-part message in MIME format.
 > --------------80DC0CA92C346559315408F7
 > Content-Type: text/plain; charset=us-ascii
 > Content-Transfer-Encoding: 7bit
 > 
 > 
 > Made a patch so I donot have to hack  every time the addRoot stuff in
 > tclhttpd.tcl but give it as an argument to httpd.tcl
 > 
 > or
 > 
 > by add a few lines in tclhttpd.rc
 > 
 > Config addRoot  {
 >  /ssu     /usr/local/www/docs/ssu   1
 >  /extdocs /usr/local/www/docs/extdocs 1
 >  /sxcdocs /usr/local/www/docs/sxcdocs 1
 >  /htdig   /usr/local/www/docs/htdig 1
 >  /cgi-don-libes /usr/local/www/docs/cgi-don-libes 1
 >  /nk2000        /usr/local/www/docs/nk2000 1
 >  /toolbox       /usr/local/www/docs/toolbox12 1
 > }
 > 
 > 
 > A cleaner hack for hdocs_2 !!
 > 
 > An example call (piet + my.rc) + the following sources are changed to
 > support this feature:
 > httpd.tcl
 > httpdthread.tcl
 > tclhttpd.rc
 > 
 > These sources are deltas to tclhttpd3.1.0
 > 
 > --
 > #-------With best regards,    Mit freundlichen Gruessen,    Met
 > vriendelijke groet,  ------
 > # Piet Vloet
 > # Siemens AG Austria
 > # Boschstrasse 10       Phone : +43-51707-42906
 > # A-1190 Vienna         Fax   : +43-51707-52606
 > # mailto:[EMAIL PROTECTED]
 > WWW:http://www.siemens.at
 > 
 > 
 > --------------80DC0CA92C346559315408F7
 > Content-Type: application/x-tcl;
 >  name="httpd.tcl"
 > Content-Transfer-Encoding: 7bit
 > Content-Disposition: inline;
 >  filename="httpd.tcl"
 > 
 > #!/bin/sh
 > #
 > # Tcl HTTPD
 > #
 > # This is the main script for an HTTP server. 
 > # To test out of the box, do
 > # tclsh httpd.tcl -debug 1
 > # or
 > # wish httpd.tcl -debug 1
 > #
 > # For a quick spin, just pass the appropriate settings via the command line.
 > # For fully custom operation, see the notes in README_custom.
 > #
 > # A note about the code structure:
 > # httpd.tcl  This file, which is the main startup script.  It does
 > #            command line processing, sets up the auto_path, and
 > #            loads tclhttpd.rc and httpdthread.tcl.  This file also opens
 > #            the server listening sockets and does setuid, if possible.
 > # tclhttpd.rc        This has configuration settings like port and host, and
      other
 > #            server-wide calls like Url_PrefixInstall. It
 > #            is sourced one time by the server during start up.
 > # httpdthread.tcl    This has the bulk of the initialization code.  It is
 > #            split out into its own file because it is loaded by
 > #            by each thread: the main thread and any worker threads
 > #            created by the "-threads N" command line argument.
 > # ../lib     The script library that contains most of the TclHttpd
 > #            implementation
 > # ../tcllib  The Standard Tcl Library.  TclHttpd ships with a copy
 > #            of this library because it depends on it.  If you already
 > #            have copy installed TclHttpd will attempt to find it.
 > #
 > # TclHttpd now requires Tcl 8.0 or higher because it depends on some
 > #    modules in the Standard Tcl Library (tcllib) that use namespaces.
 > #    In practice, some of the modules in tcllib may depend on
 > #    new string commands introduced in Tcl 8.2 and 8.3.  However,
 > #    the server core only depends on the base64 and ncgi packages
 > #    that may/should be/are compatible with Tcl 8.0
 > #
 > # Copyright (c) 1997 Sun Microsystems, Inc.
 > # Copyright (c) 1998-2000 Scriptics Corporation
 > #
 > # See the file "license.terms" for information on usage and redistribution
 > # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
 > #
 > # RCS: @(#) $Id: httpd.tcl,v 1.27 2000/08/23 20:39:40 welch Exp $
 > #
 > # \
 > exec tclsh8.3 "$0" ${1+"$@"}
 > 
 > ############
 > # auto_path
 > ############
 > 
 > # Configure the auto_path so we can find the script library.
 > # home is the directory containing this script
 > 
 > set home [string trimright [file dirname [info script]] ./]
 > set home [file join [pwd] $home]
 > 
 > # Auto-detect the configuration
 > # 1. Development - look for $home/../lib and $home/../../tcllib/modules
 > # 2. Standalone install - look for $home/../lib/tclhttpd $home/tcllib
 > # 3. Tcl package install - look for $tcl_library/../tclhttpd
 > 
 > set v 3.1.0
 > 
 > if {[file exist [file join $home ../lib/httpd.tcl]]} {
 >     # Cases 1 and 2
 >     set Config(lib) [file join $home ../lib]
 > } elseif {[file exist [file join $home ../lib/tclhttpd$v]]} {
 >     set Config(lib) [file join $home ../lib/tclhttpd$v]
 > } else {
 >     tcl_findLibrary tclhttpd $v $v version.tcl TCL_HTTPD_LIBRARY Config(lib)
 > }
 > if {![info exist Config(lib)]} {
 >     error "Cannot find TclHttpd library in auto_path:\n[join $auto_path \n]"
 > }
 > # Put the library in front in case there is both the development
 > # library and an installed library
 > 
 > set auto_path [concat [list $Config(lib)] $auto_path]
 > 
 > # Search around for the Standard Tcl Library
 > 
 > if {![catch {package require base64 2.0}]} {
 >     # Already available in environment
 > } elseif {[file exist [file join $home ../tcllib]]} {
 >     lappend auto_path [file join $home ../tcllib]
 > } else {
 >     # Look for the CVS development sources
 >     set cvs [lindex [lsort -decreasing \
 >      [glob -nocomplain [file join $home ../../tcllib*]]] 0]
 >     if {[file exist [file join $cvs modules]]} {
 >      lappend auto_path [file join $cvs modules]
 >     } elseif {[file exist [file join $cvs pkgIndex.tcl]]} {
 >      lappend auto_path $cvs
 >     } else {
 >      error "Cannot find Standard Tcl Library in auto_path:\n[join $auto_path
      \n]"
 >     }
 > }
 > 
 > set Config(home) $home
 > unset home
 > 
 > # Add operating-specific directories to the auto_path for
 > # the binary extensions
 > 
 > regsub -all { } $tcl_platform(os) {} tmp
 > foreach dir [list \
 >      [file join $Config(lib) Binaries $tmp] \
 >      [file join $Config(lib) Binaries $tmp $tcl_platform(osVersion)] \
 >      ] {
 >     if {[file isdirectory $dir]} {
 >      lappend auto_path $dir
 >     }
 > }
 > unset tmp dir
 > 
 > ##############
 > # Config file
 > ##############
 > 
 > # Load the configuration file into the Config array
 > # First, we preload a couple of defaults
 > 
 > set Config(docRoot) [file join [file dirname $Config(home)] htdocs]
 > set Config(library) [file join [file dirname $Config(home)] htdocs/libtml]
 > set Config(main) [file join $Config(home) httpdthread.tcl]
 > set Config(debug) 0
 > 
 > # The configuration bootstrap goes like this:
 > # 1) Look on the command line for a -config rcfile name argument
 > # 2) Load this configuration file via the config module
 > # 3) Process the rest of the command line arguments so the user
 > #       can override things in the rc file.
 > 
 > set ix [lsearch $argv -config]
 > if {$ix >= 0} {
 >     incr ix
 >     set Config(config) [lindex $argv $ix]
 > } else {
 >     set Config(config) [file join $Config(home) tclhttpd.rc]
 > }
 > 
 > package require httpd
 > package require httpd::config
 > namespace import config::cget
 > config::init $Config(config) Config
 > 
 > # The Config array now reflects the info in the configuration file
 > 
 > #########################
 > # command line arguments
 > #########################
 > 
 > # Merge command line args into the Config array
 > 
 > package require cmdline
 > array set Config [cmdline::getoptions argv [list \
 >         [list config.arg       [cget config]       {Configuration File}] \
 >         [list main.arg         [cget main]         {Per-Thread Tcl script}] 
     \
 >         [list docRoot.arg      [cget docRoot]      {Root directory for docum
     ents}] \
 >      [list addRoot.arg      [cget addRoot]      {AddRoots for documents}] \
 >         [list port.arg         [cget port]         {Port number server is to
      listen on}] \
 >         [list host.arg         [cget host]         {Server name, should be f
     ully qualified}] \
 >         [list ipaddr.arg       [cget ipaddr]       {Interface server should 
     bind to}] \
 >         [list https_port.arg   [cget https_port]   {SSL Port number}] \
 >         [list https_host.arg   [cget https_host]   {SSL Server name, should 
     be fully qualified}] \
 >         [list https_ipaddr.arg [cget https_ipaddr] {Interface SSL server sho
     uld bind to}] \
 >         [list webmaster.arg    [cget webmaster]    {E-mail address for error
     s}] \
 >         [list uid.arg          [cget uid]          {User Id that server runs
      under}] \
 >         [list gid.arg          [cget gid]          {Group Id for caching tem
     plates}] \
 >         [list threads.arg      [cget threads]      {Number of worker threads
      (zero for non-threaded)}] \
 >         [list library.arg      [cget library]      {Directory list where cus
     tom packages and auto loads are}] \
 >      [list debug.arg        0                {If true, start interactive com
     mand loop}] \
 >     ] \
 >     "usage: httpd.tcl options:"]
 > 
 > if {[string length $Config(library)]} {
 >     lappend auto_path $Config(library)
 > }
 > 
 > if {$Config(debug)} {
 >     puts stderr "auto_path:\n[join $auto_path \n]"
 >     if {[catch {package require httpd::stdin}]} {
 >      puts "No command loop available"
 >      set Config(debug) 0
 >     }
 > }
 > 
 > ###################
 > # Start the server
 > ###################
 > 
 > package require httpd::version               ;# For Version proc
 > package require httpd::utils         ;# For Stderr
 > package require httpd::counter               ;# Fix Httpd_Init and move to m
     ain.tcl
 > package require httpd::mtype         ;# Fix Httpd_Init and move to main.tcl
 > 
 > Httpd_Init
 > 
 > # Override the defaults wired into Httpd_Init
 > # Smashing these parameters is a crock -
 > # Httpd should use the config module directly
 > 
 > foreach x {SSL_REQUEST SSL_REQUIRE SSL_CERTFILE SSL_KEYFILE
 >              SSL_CADIR SSL_CAFILE USE_SSL2 USE_SSL3 USE_TLS1 SSL_CIPHERS} {
 >     set Httpd($x) [cget $x]
 > }
 > 
 > # Open the listening sockets
 > 
 > Httpd_Server $Config(port) $Config(host) $Config(ipaddr)
 > append startup "httpd started on port $Config(port)\n"
 > 
 > if {![catch {package require tls}]} {
 >     if {[catch {
 >      Httpd_SecureServer $Config(https_port) $Config(https_host) $Config(http
     s_ipaddr)
 >      append startup "secure httpd started on SSL port $Config(https_port)\n"
 >     } err]} {
 >      append startup "SSL startup failed: $err"
 >     }
 > }
 > 
 > # Try to increase file descriptor limits
 > 
 > if [catch {
 >     package require limit
 >     set Config(limit) [cget MaxFileDescriptors]
 >     limit $Config(limit)
 > } err] {
 >     Stderr $err
 >     set Config(limit) default
 > }
 > Stderr "Running with $Config(limit) file descriptor limit"
 > 
 > # Try to change UID to tclhttpd so we can write template caches
 > 
 > # Try to get TclX, if present
 > catch {load {} TclX}         ;# From statically linked shell
 > catch {package require TclX} ;# From dynamically linked DLL
 > catch {package require setuid}       ;# TclHttpd extension
 > 
 > if {"[info command id]" == "id"} {
 >     # Emulate TclHttpd C extension with TclX commands
 >     proc setuid {uid gid} {
 >      id groupid $gid
 >      id userid $uid
 >     }
 > }
 > if ![catch {
 >     setuid $Config(uid) $Config(gid)
 > }] {
 >     Stderr "Running as user $Config(uid)"
 > }
 > 
 > # Initialize worker thread pool, if requested
 > 
 > if {$Config(threads) > 0} {
 >     package require Thread           ;# C extension
 >     package require httpd::threadmgr         ;# Tcl layer on top
 >     Stderr "Threads enabled"
 >     Thread_Init $Config(threads)
 > } else {
 >     # Stub out Thread_Respond so threadmgr isn't required
 >     proc Thread_Respond {args} {return 0}
 >     proc Thread_Enabled {} {return 0}
 > }
 > 
 > ##################################
 > # Main application initialization
 > ##################################
 > 
 > if {[catch {source $Config(main)} message]} then {
 >     global errorInfo
 >     set error "Error processing main startup script \"[file nativename $Conf
     ig(main)]\"."
 >     append error "\n$errorInfo"
 >     error $error
 > }
 > 
 > # The main thread owns the log
 > 
 > Log_SetFile          [cget LogFile]
 > Log_FlushMinutes     [cget LogFlushMinutes]
 > Log_Flush
 > 
 > # Start up the user interface and event loop.
 > 
 > if {[info exists tk_version]} {
 >     package require httpd::srvui
 >     SrvUI_Init "Tcl HTTPD $Httpd(version)"
 > }
 > Stderr $startup
 > if {$Config(debug)} {
 >     if {[info commands "console"] == "console"} {
 >      console show
 >     } else {
 >      Stdin_Start "httpd % "
 >      Httpd_Shutdown
 >     }
 > } else {
 >     vwait forever
 > }
 > 
 > --------------80DC0CA92C346559315408F7
 > Content-Type: application/x-tcl;
 >  name="httpdthread.tcl"
 > Content-Transfer-Encoding: 7bit
 > Content-Disposition: inline;
 >  filename="httpdthread.tcl"
 > 
 > # httpdthread.tcl
 > #
 > # This script has the per-thread initialization for TclHttpd.
 > # The httpd.tcl startup script will call this for the main thread,
 > # and then (if applicable) each worker thread will source this
 > # file to initialize itself.
 > 
 > # Copyright (c) 1997 Sun Microsystems, Inc.
 > # Copyright (c) 1998-2000 Scriptics Corporation
 > #
 > # See the file "license.terms" for information on usage and redistribution
 > # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
 > #
 > # RCS: @(#) $Id: httpdthread.tcl,v 1.7 2000/08/28 21:10:21 welch Exp $
 > 
 > # Note about per-thread vs. per-application.  Essentially all
 > # the "package require" commands are needed in all the threads,
 > # while it might be possible to limit the various initialization
 > # calls to only the main thread.  However, it isn't easy to tell,
 > # so we initialize all threads to ensure that configuration state
 > # both affects the URL dispatch done by the main thread, and is
 > # visible to the worker threads.
 > 
 > # Standard Library dependencies
 > package require ncgi
 > package require html
 > 
 > # Core modules
 > package require httpd           ;# Protocol stack
 > package require httpd::version               ;# Version number
 > package require httpd::url           ;# URL dispatching
 > package require httpd::mtype           ;# Mime types
 > Mtype_ReadTypes              [file join $Config(lib) mime.types]
 > package require httpd::counter         ;# Statistics
 > package require httpd::utils           ;# junk
 > 
 > package require httpd::redirect      ;# URL redirection
 > package require httpd::auth            ;# Basic authentication
 > package require httpd::log             ;# Standard logging
 > 
 > if {$Config(threads) > 0} {
 >     package require Thread           ;# C extension
 >     package require httpd::threadmgr         ;# Tcl layer on top
 > }
 > 
 > # Image maps are done either using a Tk canvas (!) or pure Tcl.
 > 
 > if {[info exists tk_version]} {
 >     package require httpd::ismaptk
 > } else {
 >     package require httpd::ismaptcl
 > }
 > # These packages are required for "normal" web servers
 > 
 > # doc
 > # provides access to files on the local file systems.
 > 
 > package require httpd::doc
 > 
 > # Doc_Root defines the top-level directory, or folder, for
 > # your web-visible file structure.
 > 
 > Doc_Root                     $Config(docRoot)
 > 
 > # Merge in a second file system into the URL tree.
 > 
 > set htdocs_2 [file join [file dirname [info script]] ../htdocs_2]
 > if {[file isdirectory $htdocs_2]} {
 >     Doc_AddRoot /addroot     $htdocs_2
 > }
 > 
 > # Maps the file system directory into the URL subtree starting at virtual.
 >  
 > if {[info exists Config(addRoot)]} {
 >       foreach { virtual directory inThread } $Config(addRoot) {
 >              if {[file isdirectory $directory]} {
 >               Doc_AddRoot $virtual $directory  $inThread
 >                      }
 >              }
 > }
 > 
 > # Merge in TclPro docs, if present
 > set htdocs_2 [file join $Config(docRoot) ../../doc/html]
 > if {[file isdirectory $htdocs_2]} {
 >     Doc_AddRoot /tclpro      $htdocs_2
 > }
 > 
 > # Doc_TemplateInterp determines which interpreter to use when
 > # interpreting templates.
 > 
 > Doc_TemplateInterp           {}
 > 
 > # Doc_IndexFile defines the name of the default index file
 > # in each directory.  Its value is a glob pattern.
 > 
 > Doc_IndexFile                        index.{tml,html,shtml,thtml,htm,subst}
 > 
 > # Doc_PublicHtml turns on the mapping from ~user to the
 > # specified directory under their home directory.
 > 
 > Doc_PublicHtml                       public_html
 > 
 > # Doc_CheckTemplates causes the processing of text/html files to
 > # first look aside at the corresponding .tml file and check if it is
 > # up-to-date.  If the .tml (or its dependent files) are newer than
 > # the HTML file, the HTML file is regenerated from the template.
 > 
 > Doc_CheckTemplates           1
 > 
 > # This simply adds the library to your auto_path so it can be
 > # accessible to the scripts run by the template pages.
 > 
 > Doc_TemplateLibrary          $Config(library)
 > 
 > # Doc_ErrorPage registers a template to be used when a page raises an
 > # uncaught Tcl error.  This is a crude template that is simply passed throug
     h
 > # subst at the global level.  In particular,  it does not have the
 > # full semantics of a .tml template.
 > 
 > Doc_ErrorPage                        /error.html
 
 > # Doc_NotFoundPage registers a template to be used when a 404 not found
 > # error occurs.  Like Doc_ErrorPage, this page is simply subst'ed.
 > 
 > Doc_NotFoundPage             /notfound.html
 > 
 > # Doc_Webmaster returns the value last passed into it.
 > # Designed to be used in page templates where contact email is needed.
 > 
 > Doc_Webmaster                        $Config(webmaster)
 > 
 > package require httpd::dirlist               ;# Directory listings
 > package require httpd::include               ;# Server side includes
 > 
 > package require httpd::cgi           ;# Standard CGI
 > Cgi_Directory                        /cgi-bin
 > 
 > package require httpd::direct                ;# Application Direct URLs
 > 
 > package require httpd::status                ;# Built in status counters
 > Status_Url                   /status /images
 > 
 > package require httpd::mail          ;# Crude email form handlers
 > Mail_Url                     /mail
 > 
 > package require httpd::admin         ;# Url-based administration
 > Admin_Url                    /admin
 > 
 > package require httpd::session               ;# Session state module (better
      Safe-Tcl)
 > 
 > package require httpd::debug         ;# Debug utilites
 > Debug_Url                    /debug
 > 
 > package require httpd::redirect      ;# Url redirection tables
 > Redirect_Init                        /redirect
 > 
 > if {[catch {
 >     Auth_AccessFile  .htaccess       ;# Enable Basic Auth
 > } err]} {
 >     catch {puts "No .htaccess support: $err"}
 > }
 > 
 > # This is currently broken
 > if {0} {
 >     package require httpd::safetcl   ;# External process running safetcl she
     lls
 > }
 > 
 > if {[catch {
 >     # These packages are for the SNMP demo application
 >     # "snmp" is a poorly-named module that generates HTML forms to view
 >     #        MIB info
 >     # "Tnm" is the SNMP interface from the Scotty extension
 > 
 >     package require httpd::snmp
 >     package require httpd::telnet
 >     package require Tnm
 >     Stderr "SNMP Enabled"
 > }]} {
 > }
 > 
 > 
 > --------------80DC0CA92C346559315408F7
 > Content-Type: text/plain; charset=us-ascii;
 >  name="tclhttpd.rc"
 > Content-Transfer-Encoding: 7bit
 > Content-Disposition: inline;
 >  filename="tclhttpd.rc"
 > 
 > # tclhttpd.rc
 > #
 > # This is the default configuration file for TclHttpd
 > #
 > # Note - you should assume that all the paramters listed here 
 > # are required in one place or another.  If you want to "delete"
 > # a parameter you should set the associated value to the
 > # empty string, which is written either "" or {}
 > #
 > # This file is processed in a safe interpreter.  The only side
 > # effects it has are through the Config command.  Given two arguments,
 > # the Config command sets a parameter.  With a single argument,
 > # it returns the value of that parameter.
 > 
 > # Config parameters in all lower-case have a command line
 > # argument alternative (see httpd.tcl)
 > # You can specify a value on the command line to override
 > # what is in this configuration file.
 > 
 > # docRoot - the name of the file system directory containing
 > # the root of your document tree.  This is conditional so you
 > # can run from the source distribution or after doing "make install"
 > 
 > foreach d [list \
 >      [file join [Config home] ../htdocs] \
 >      [file join [Config home] ../tclhttpd/htdocs]] {
 >     if {[file isdirectory $d]} {
 >      Config docRoot $d
 >     }
 > }
 > 
 > # addRoot - Offers you the possibility to define additional URL subtrees.
 > # This is conditional.
 > # This mechanism maps the file system "directory" into the URL starting at v
     irtual.
 > # The last parameter has to be defined as True if the document handlers shou
     ld run in a thread
 >  
 > #Config addRoot  {
 > #  /virtual     /directory   1
 > #}
 > 
 > # uid - the server executes as the following user ID.
 > # If you have TclX available, these can be user names.
 > # If you use the simple "setuid" extension, this must be a number.
 > 
 > Config uid           50
 > 
 > # gid - the server executes as the following group ID.
 > # If you are using .tml templates then the server will try
 > # to cache corresponding .html files.  Put the server into
 > # the group that has write permission to the htdocs area
 > # so it can do this.  If it cannot write the cache files it
 > # just has to process the template on every URL request.
 > 
 > Config gid           50
 > 
 > # host - the name of the server (i.e., www.yourcompany.com)
 > # This should be fully qualified.
 > 
 > Config host          [info hostname]
 > 
 > # https_host - the name of the server (i.e., www.yourcompany.com)
 > # This should be fully qualified.
 > 
 > Config https_host    [info hostname]
 > 
 > # port - the listening port for the server for HTTP requests.
 > # The standard web port is 80.
 > 
 > Config port          8015
 > 
 > # https_port - the listening port for the server for HTTPS requests.
 > # The standard SSL port is 443.
 > 
 > Config https_port    8016
 > 
 > # ipaddr - the IP address of the server's end of the HTTP socket.
 > # Only specify this if you have a machine with several IP addresses
 > # and you want the server to only listen on one IP address.
 > # If this is the empty string, then it will listen on all
 > # network interfaces for connections.
 > 
 > Config ipaddr        {}
 > 
 > # https_ipaddr - ditto, but for https (i.e., SSL) connections
 > 
 > Config https_ipaddr  {}
 > 
 > # webmaster - an email address for error mailings
 > 
 > Config webmaster     webmaster@[info hostname]
 > 
 > # library - additional directory to add to the auto_path
 > # If you add custom code to the server, put it in this directory.
 > 
 > Config library               [file join [Config docRoot] libtml]
 > 
 > # main - Main per-thread startup script.
 > 
 > Config main          [file join [Config home] httpdthread.tcl]
 > 
 > # threads - the maximum number of worker threads to create.
 > # If 0, then no threads are ever used.
 > 
 > Config threads               0
 > 
 > #####################
 > 
 > # The parameters below here are not settable via the command line
 > 
 > # LogFile - the file used for standard logging informaation.
 > # This is actually the prefix of the name.  The current date stamp
 > # is append to this file, and it is rolled every night at midnight
 > 
 > Config LogFile       [file join /tmp log[Config port]_ ]
 > 
 > # LogFlushMinutes - how frequently the log file is flushed to disk.
 > # Use 0 to have each URL request cause a log flush.
 > 
 > Config LogFlushMinutes 1
 > 
 > # MaxFileDescriptors - the maximum number of file descriptors the
 > # server can have open.  This impacts the number of simultaneous
 > # client requests it can have open.
 > 
 > Config MaxFileDescriptors    256
 > 
 > #########################
 > # SSL Configuration
 > 
 > # SSL_REQUEST - should the server ask for certificates from clients?
 > 
 > Config SSL_REQUEST   0
 > 
 > # SSL_REQUIRE - should the server require certificates?
 > 
 > Config SSL_REQUIRE   0
 > 
 > # SSL_CADIR - the directory containing Certificate Authority
 > # certificate files.  If you have only one such file, you can use
 > # SSL_CAFILE described below.
 > 
 > Config SSL_CADIR     [file join [file dirname [Config home]] certs]
 > 
 > # SSL_CAFILE - the file containing the Certificate Authority
 > # certificate.  If this is empty, then the directory specified by
 > # SSL_CADIR is scanned for certificate files.
 > 
 > Config SSL_CAFILE    ""
 > 
 > # SSL_CERTFILE - The server's certificate.
 > 
 > Config SSL_CERTFILE  [file join [Config SSL_CADIR] server.pem]
 > 
 > # SSL_KEYFILE - The server's key file.  If this is empty,
 > # then just use the SSL_CERTFILE
 > 
 > Config SSL_KEYFILE   [file join [Config SSL_CADIR] skey.pem]
 > 
 > # USE_SSL2 - Allow the use of SSL version 2 
 > # (You cannot get this with a "no patents" build of OpenSSL)
 > 
 > Config USE_SSL2              1
 > 
 > # USE_SSL3 - Allow the use of SSL version 3
 > 
 > Config USE_SSL3              1
 > 
 > # USE_TLS1 - ??
 > 
 > Config USE_TLS1              0
 > 
 > # SSL_CIPHERS - list of SSL ciphers to support.  If this is empty,
 > # then all the ciphers supported by the SSL implementation are available.
 > 
 > Config SSL_CIPHERS   {}
 > 
 > 
 > --------------80DC0CA92C346559315408F7
 > Content-Type: text/plain; charset=us-ascii;
 >  name="my.rc"
 > Content-Transfer-Encoding: 7bit
 > Content-Disposition: inline;
 >  filename="my.rc"
 > 
 > # tclhttpd.rc
 > #
 > # This is the default configuration file for TclHttpd
 > #
 > # Note - you should assume that all the paramters listed here 
 > # are required in one place or another.  If you want to "delete"
 > # a parameter you should set the associated value to the
 > # empty string, which is written either "" or {}
 > #
 > # This file is processed in a safe interpreter.  The only side
 > # effects it has are through the Config command.  Given two arguments,
 > # the Config command sets a parameter.  With a single argument,
 > # it returns the value of that parameter.
 > 
 > # Config parameters in all lower-case have a command line
 > # argument alternative (see httpd.tcl)
 > # You can specify a value on the command line to override
 > # what is in this configuration file.
 > 
 > # docRoot - the name of the file system directory containing
 > # the root of your document tree.  This is conditional so you
 > # can run from the source distribution or after doing "make install"
 > 
 > foreach d [list \
 >      [file join [Config home] ../htdocs] \
 >      [file join [Config home] ../tclhttpd/htdocs]] {
 >     if {[file isdirectory $d]} {
 >      Config docRoot $d
 >     }
 > }
 > 
 > #
 > #
 > #
 > 
 > Config addRoot  {
 >  /ssu     /usr/local/www/docs/ssu   1
 >  /extdocs /usr/local/www/docs/extdocs 1
 >  /sxcdocs /usr/local/www/docs/sxcdocs 1
 >  /htdig   /usr/local/www/docs/htdig 1
 >  /cgi-don-libes /usr/local/www/docs/cgi-don-libes 1
 >  /nk2000        /usr/local/www/docs/nk2000 1
 >  /toolbox       /usr/local/www/docs/toolbox12 1
 > }
 > 
 > # uid - the server executes as the following user ID.
 > # If you have TclX available, these can be user names.
 > # If you use the simple "setuid" extension, this must be a number.
 > 
 > Config uid           595
 > 
 > # gid - the server executes as the following group ID.
 > # If you are using .tml templates then the server will try
 > # to cache corresponding .html files.  Put the server into
 > # the group that has write permission to the htdocs area
 > # so it can do this.  If it cannot write the cache files it
 > # just has to process the template on every URL request.
 > 
 > Config gid           50
 > 
 > # host - the name of the server (i.e., www.yourcompany.com)
 > # This should be fully qualified.
 > 
 > Config host          [info hostname]
 > 
 > # https_host - the name of the server (i.e., www.yourcompany.com)
 > # This should be fully qualified.
 > 
 > Config https_host    [info hostname]
 > 
 > # port - the listening port for the server for HTTP requests.
 > # The standard web port is 80.
 > 
 > Config port          8015
 > 
 > # https_port - the listening port for the server for HTTPS requests.
 > # The standard SSL port is 443.
 > 
 > Config https_port    8016
 > 
 > # ipaddr - the IP address of the server's end of the HTTP socket.
 > # Only specify this if you have a machine with several IP addresses
 > # and you want the server to only listen on one IP address.
 > # If this is the empty string, then it will listen on all
 > # network interfaces for connections.
 > 
 > Config ipaddr        {}
 > 
 > # https_ipaddr - ditto, but for https (i.e., SSL) connections
 > 
 > Config https_ipaddr  {}
 > 
 > # webmaster - an email address for error mailings
 > 
 > Config webmaster     [EMAIL PROTECTED]
 > 
 > # library - additional directory to add to the auto_path
 > # If you add custom code to the server, put it in this directory.
 > 
 > Config library               [file join [Config docRoot] libtml]
 > 
 > # main - Main per-thread startup script.
 > 
 > Config main          [file join [Config home] httpdthread.tcl]
 > 
 > # threads - the maximum number of worker threads to create.
 > # If 0, then no threads are ever used.
 > 
 > Config threads               0
 > 
 > #####################
 > 
 > # The parameters below here are not settable via the command line
 > 
 > # LogFile - the file used for standard logging informaation.
 > # This is actually the prefix of the name.  The current date stamp
 > # is append to this file, and it is rolled every night at midnight
 > 
 > Config LogFile       [file join /tmp log[Config port]_ ]
 > 
 > # LogFlushMinutes - how frequently the log file is flushed to disk.
 > # Use 0 to have each URL request cause a log flush.
 > 
 > Config LogFlushMinutes 1
 > 
 > # MaxFileDescriptors - the maximum number of file descriptors the
 > # server can have open.  This impacts the number of simultaneous
 > # client requests it can have open.
 > 
 > Config MaxFileDescriptors    256
 > 
 > #########################
 > # SSL Configuration
 > 
 > # SSL_REQUEST - should the server ask for certificates from clients?
 > 
 > Config SSL_REQUEST   0
 > 
 > # SSL_REQUIRE - should the server require certificates?
 > 
 > Config SSL_REQUIRE   0
 > 
 > # SSL_CADIR - the directory containing Certificate Authority
 > # certificate files.  If you have only one such file, you can use
 > # SSL_CAFILE described below.
 > 
 > Config SSL_CADIR     [file join [file dirname [Config home]] certs]
 > 
 > # SSL_CAFILE - the file containing the Certificate Authority
 > # certificate.  If this is empty, then the directory specified by
 > # SSL_CADIR is scanned for certificate files.
 > 
 > Config SSL_CAFILE    ""
 > 
 > # SSL_CERTFILE - The server's certificate.
 > 
 > Config SSL_CERTFILE  [file join [Config SSL_CADIR] server.pem]
 > 
 > # SSL_KEYFILE - The server's key file.  If this is empty,
 > # then just use the SSL_CERTFILE
 > 
 > Config SSL_KEYFILE   [file join [Config SSL_CADIR] skey.pem]
 > 
 > # USE_SSL2 - Allow the use of SSL version 2 
 > # (You cannot get this with a "no patents" build of OpenSSL)
 > 
 > Config USE_SSL2              1
 > 
 > # USE_SSL3 - Allow the use of SSL version 3
 > 
 > Config USE_SSL3              1
 > 
 > # USE_TLS1 - ??
 > 
 > Config USE_TLS1              0
 > 
 > # SSL_CIPHERS - list of SSL ciphers to support.  If this is empty,
 > # then all the ciphers supported by the SSL implementation are available.
 > 
 > Config SSL_CIPHERS   {}
 > 
 > 
 > --------------80DC0CA92C346559315408F7
 > Content-Type: text/plain; charset=us-ascii;
 >  name="piet"
 > Content-Transfer-Encoding: 7bit
 > Content-Disposition: inline;
 >  filename="piet"
 > 
 > #!/bin/csh 
 > # TCLHTTPD VERSION: 3.0.2
 > #setenv TCL_HTTPD_LIBRARY /usr/local/www/lib/tclhttpd3.0.0
 > 
 > set ROOT=/usr/local/www/server310
 > 
 > ${ROOT}/bin/httpd.tcl -docRoot /usr/local/www/docs/htdocs -addRoot " /ssu   
       /usr/local/www/docs/ssu   1 \
 >  /extdocs /usr/local/www/docs/extdocs 1 \
 >  /sxcdocs /usr/local/www/docs/sxcdocs 1 \
 >  /htdig   /usr/local/www/docs/htdig 1 \
 >  /cgi-don-libes /usr/local/www/docs/cgi-don-libes 1 \
 >  /nk2000        /usr/local/www/docs/nk2000 1 \
 >  /toolbox       /usr/local/www/docs/toolbox12 1 \
 > " -library ${ROOT}/lib -webmaster [EMAIL PROTECTED] &
 > 
 > # TCLHTTPD VERSION 2.3.7
 > #/usr/local/www/tclhttpd2.3.7/bin/httpd.tcl -docRoot /usr/local/www/docs/htd
     ocs -config /usr/local/www/config/tclhttpd2.rc &
 > 
 > --------------80DC0CA92C346559315408F7--
 > 

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


Reply via email to