Modules on this page
- dqd_threadpool
- dqd_utils
- dqd_log
- nscache
- dqd_db2 (needs updating)
- dqd_tclpages (obsolete)
- dqd_dirindex (obsolete)
Other stuff on this page
Other pages
The source for some of these things can be viewed here.
These are some modules I have written for AOLserver 3.0 and later.
- dqd_threadpool: Thread Pool and Job Queue Management (Browse source)
- This module manages one or more thread pools and job
queues. A Tcl program (such as an ADP or a Tcl page) can add
Tcl scripts to the job queue. The queue has a pool of worker
threads which execute the jobs asynchronously. The Tcl
program can retrieve the results of the jobs after they have
finished executing.
Change history:
- 2004/10/15: Release 1.1. Use AOLserver 4.0.8 Makefile.
- 2000/11/22: Release 1.0.
- dqd_utils: Various Utilities (Browse source)
- This module adds several Tcl commands to AOLserver:
- dqd_internalredirect - a wrapper around the C API function Ns_ConnRedirect. This lets you send back the contents of a different URL (from the same server) without letting the client know.
- dqd_md5 - computes MD5 hashes (cryptographic checksums).
- dqd_nssetToList - extracts an ns_set's values into a Tcl list.
- unlist - assigns the elements of a Tcl list to individual Tcl variables, efficiently. Yes, I left off the dqd_ prefix on this one.
- dqd_detachfile and dqd_attachfile - share a Tcl channel across requests/threads/interpreters.
- dqd_register_proxy - register a proc to handle proxy requests from browsers
- dqd_rowsToXml - convert database rows to XML
- dqd_rowsToJavaScript - convert database rows to JavaScript
Change history:
- 2006/11/02: Release 1.7. Escape newlines in dqd_rowsToJavaScript.
- 2005/05/28: Release 1.6. Remove extra commas from dqd_rowsToJavaScript output to make Safari like it better and to make it JSON-compliant.
- 2005/05/26: Release 1.5. dqd_rowsToXml, dqd_rowsToJavaScript.
- 2004/10/15: Release 1.4. Drop support for Tcl 7. Use AOLserver 4.0.8 Makefile.
- 2001/01/04: Release 1.3. dqd_register_proxy.
- 2000/07/06: Release 1.2. Finally got around to making this compile with AOLserver 3.0 final due to e-mail from Li Chen.
- 2000/03/08: Release 1.1. dqd_detachfile, dqd_attachfile.
- 2000/01/20: Release 1.0. Added dqd_md5, dqd_nssetToList, unlist.
- 1999/10/18: Original unnumbered release.
- dqd_log: External Logging (Browse source)
- This module allows AOLserver to send access log entries
directly to an external program. I wrote it so that I could
manage my access logs with multilog.
Change history:
- 2003/10/16: Release 2.3. Do not crash under AOLserver 4.
- 2003/10/15: Release 2.2. Use AOLserver 4.0.8 Makefile.
- 2003/03/06: Release 2.1. Fixed some typos in the documentation.
- 2001/05/14: Release 2.0. Incompatible change. Now writes to a specified fd instead of running a program.
- 2001/01/20: Release 1.1. Added AccelAddresses.
- 2000/09/18: Release 1.0.
- nscache: Tcl commands for using NsCache C API (Browse source)
-
This is a module that provides Tcl commands for accessing
AOLserver 3's NsCache API. An NsCache is a hash table that
automatically manages either its memory usage or the
lifetimes of its contents. I originally wrote this module
while at ArsDigita and included it in the ArsDigita
AOLserver distribution. Since the collapse of ArsDigita it
seems to be difficult to come by. Perhaps some kind soul
will put it in sourceforge...
This module is sometimes referred to as
ns_cache
. I mention that here so search engines will find this page when you search forns_cache
. - dqd_db2: DB2 Database Driver (Browse source)
- This is a database driver that lets AOLserver 3.0 access DB2
Universal Database version 6.1 (and maybe other versions). It
includes support for accessing character and binary large objects
(CLOBs and BLOBs).
Note: this will not compile out of the box with AOLserver 3.0 final. I wrote this back when AOLserver 3.0 was in beta, and the makefiles were changed since then, so this won't compile out of the box anymore. I don't use DB2 anymore or have it installed, so I haven't bothered fixing it. If you need to get this working and need help, send me e-mail.
Change history:
- 1999/12/22: Release 1.0.1. Fix typo in the sample nsd.tcl contained in README. Thanks to Dave Weis.
- 1999/10/18: Release 1.0.
- dqd_tclpages: Tcl Pages (obsolete)
- AOLserver 2.3 allowed you to put .tcl files in your PageRoot.
When a visitor requested the file, AOLserver would run the file
as a Tcl script. For some reason, they removed this capability
from the original release of AOLserver 3.0. This module adds the
capability back in to AOLserver 3.0. Of course then they went and
put the feature back in with release 3.0b6, so this module is now
obsolete.
Change history:
- 1999/12/15: Release 1.1. Removed AtClose support to fix compile problems with AOLserver 3.0b4.
- 1999/08/07: Fixed possible memory leak where I forgot to call Ns_DStringFree.
- 1999/08/06: Fixes for clean Solaris compile. Thanks to markd@arsdigita.com.
- dqd_dirindex: Dynamic Directory Indexing (obsolete)
- This module allows AOLserver to dynamically generate indexes
for directories that don't have index files (e.g. index.html).
AOLserver 2.3.3 had this capability but it was removed in
the first release of AOLserver 3.0. This module restores the
capability. But then they went and put the feature back in
starting with release 3.0b6, so this module is now obsolete.
Change history:
- 2000/01/28: Release 1.0.
- ini2tcl: ini to Tcl config translator (Browse source)
- This perl script translates AOLserver .ini configuration files
into .tcl configuration files, preserving comments and
indentation. It does a significantly better job than the
translate-ini script that comes with AOLserver.
Sample usage:
perl ini2tcl < nsd.ini > nsd.tcl
Change history:
- 2000/03/08: Release 1.0.
- Sample Bug Report for AOLserver (Browse source)
- This tarball contains the bug report I sent to
DCI when I found and fixed a bug in the ADP
processor. I use it as a template for all the bug
reports I send. It contains a self-contained
test case (including a complete nsd.tcl), a
patch, and an HTML file with a description of
the bug and instructions on how to run the test
case.