NeoWebScript™ Release Notes

2.2 | 2.1 | 2.0 | 1.0 | 1.0 beta 1 | 0.96 beta 6

NeoWebScript™ 2.2

Integrate with Apache-1.2.0. This is the major point of this release.

Add new command open_mime_file to provide better user access to uploaded data without having to save to an intermediate file.

Add several Tcl procs to allow for authentication to a Postgres database, Berkeley DB file, /etc/passwd, or straight Tcl code. Example .htaccess files included in tests directory (/private/ and /pgprivate/). Note that the postgres library (pg95libpgtcl.tar.gz) in ftp://ftp.neosoft.com/pub/tcl/neowebscript/webtcl/ is compatable with Postgres95, but will work with Postgresql with relatively minor changes.

More tests, and removed some obsolete ones.

NeoWebScript™ 2.1

Support for file uploads.

New handler for dynamic GIF generation. Though mostly generic, we have used this code with Thomas Boutell's gd1.2 , along with several new commands to manipulate a server-side image cache. This extension can also accept query strings.

New handler for generating HTML via the Tcl subst command. The referenced file is swallowed whole by a Tcl read command and passed to subst in the slave interpreter. The result is output to the web browser.

New commands md5, set_header and gm_timestr_822. Set_header is effective only while generating dynamic images.

New directives to allow Tcl-based authentication policies. Literally any resource (database, files, etc.) that Tcl can access, can be the basis for authentication decisions. Includes demo Postgres95 authentication Tcl procs.

Patch in Apache-1.1.3 security release patches.

Verified to work with Tcl7.6.

NeoWebScript™ 2.0

Improve slave unknown procedures so that the master interp can resolve unknown procs inside the slave and redesigned the way that slave procs and aliases are defined. Borrowed from Itcl2.1.

Implement package unknown for slave. Will automatically load a package into the slave if statically loaded in the master.

Port to Apache-1.1.1.

C code to fetch and/or create the safe slave interpreter has been isolated into its own procedure, making writing new handlers easier.

Extended server configuration of user directories, with the commands NeoWebUserConf, UidUserDir, GidUserDir, and ForbidUserSubdir.

Additional data file manipulation, with the commands filemv, filerm and directory_listing.

NeoWebScript™ 1.0 (6/28/96)

Release engineering: Moved more slave-only code to be demand loaded into the slave interpreter from httpd/neoscript-tcl. Cleaned up some bugs from beta release, especially that remote_hostname did not resolve an IP addresses. Make build of Tcl sub-heierarchy more automatic.

directory_listing command now shows space usage for the current directory.

Made NeoWeb*Conf configuration directives exactly the same as the Tcl array variable name (ie. trusted interp variables are now NeoWebDirConf instead of neoWebDirConf and NeoWebServerConf instead of neoWebServerConf).

NeoWebScript™ 1.0 beta 1

Apache code base at latest release level, 1.0.5.

Tcl at current release level, 7.5.

Extended Tcl (TclX) at current release level, 7.5.1. Also moved initialization of Extended Tcl into safe interpreter from to Tcl code using the load command. Allows support of unsafe Tclx commands in supervisor mode.

NeoSoft™ extensions split out from Extended Tcl to make integrating updates easier.

Now has an interface to Postgres 95, the freely redistributable database management system from Berkeley. (Porting/building Postgres so that you can load in the tcl interface is up to you.)

NeoWebScript™ writers can now use object-oriented programming techniques thanks to the inclusion of MIT Object Tcl, OTcl. An experimental class definition based on this.

remote_hostname now takes an optional argument, and will resolve the specified IP number, if present, instead of the IP of the host making the connection to the webserver (the default), if not.

Implementation of unknown procedure (from tcl7.5's init.tcl), and server rooted tcl library (neoscript-tcl) for contributed NeoWebScript™ procedures.

Set variables into trusted interpreter from httpd.conf using NeoWebServerConf directive.

Per directory configuration of trusted interpreter in access.conf using NeoWebDirConf directive. We have implemented a supervisor mode (creates slave interpreter without -safe), and postgres database security using this.

Several bug fixes that eliminate most of the crashes. If not in the web page, now at least access_log should have some indication of problems serving NeoWebScript™ pages.

Changed the format of user DB files to work with array get and array set tcl commands. A script (in conf) called convertdb.tcl is provided to convert old db files if you are already have been using NeoWebScript™. This change also fixed a growing nested braces bug.

Load_response syntax extended and fixed to handle responses with MULTIPLE enabled.

On FreeBSD2.1 (and eventually other systems that support it), setproctitle to URL being accessed so these show in ps.

Name changed to NeoWebScript™.

NeoScript 0.96 beta 6

include_file, include_virtual, load_file, and load_virtual now use standard Apache access and authorization mechanisms to validate access.

include_file and include_virtual, and the standard server-side <!--#include file= and <!--#include virtual= requests can now include webpages containing embedded NeoScript. (Permissions and MIME type must still match for it to work.)

Added "open_post_news" function, which starts a news posting from the webpage owner to the specified newsgroups.

Made building and installing eaiser and removed requirement that code be in /usr/devel.

Added "browser-wise" named counters.

Added "remote_hostname" function. This will return the hostname of the guy at the other side, performing a DNS lookup if necessary (e.g. the server was compiled with minimal DNS.)

Added "estimate_hits_per_hour" function and a demo for it. This returns the estimated number of hits per hour, based on the amount of wall clock time the server took to serve out the last 1000 files.

Add "open_outbound_mail" function which starts mail from the webpage owner to the specified mail address and returns to the safe interpreter a file handle it is to write the body of the mail message to.

Set the users up with their own flat general purpose file area and their own private log areas.

NeoScript capabilities now run out of a copy, basically, of mod_include.c that still supports include, exec, etc, plus several other enhancements, such as C-level counters and random-pick html fragment files.

However you turn on server-side includes, it turns on neoscript. If you do it if for *.html, all of your webpages will (potentially) be NeoScript-enabled, without changing their filenames! (The cost in this case, though, is that the server will incur some extra processing to parse all of the html files, including ones that don't have any sort of server-side functions.) The other way to go us to use .shtml, the standard.

Now up to Tcl 7.5 beta 3.

Now including Safe Extended Tcl commands in the safe interpreter.

Full TclX functionality now available to the Safe Tcl extension writer.