Tcl Powered!NeoWebScript

Home
 
Download
User Info
New User FAQ
Tutorials
Demos
Commands
Variables
Troubleshooting
Sysop Info
Sysop FAQ
Theory
Installation
Management
Tests
Troubleshooting
Feedback
Resources
Release Notes
Credits
Disclaimer
NeoWebScript™ Release Notes

3.2 | 3.1 | 3.0 | 2.3 | 2.2 | 2.1 | 2.0 | 1.0 | 1.0 beta 1 | 0.96 beta 6

NeoWebScript™ 3.2

Fixed "HTTP/1.1 Continue" bug. Thanks to Will Wagner for this patch.

Backed out the "::safe::interpCreate" method of creating safe interpreters in favor of the "interp create -safe" method which is much faster. This should increase performance of NeoWebScript code by 500%+.

Re-implemented unknown.tcl to compensate for loss of its functionality after the interp change. Acts the same as NeoWebScript 2.3.

Updated some of the documentation to include commands which have been present but undocumented to this point.

NeoWebScript™ 3.1

Includes Windows NT and Windows 9x versions. License is open source.

Upgraded to

  • Tcl 8.1.1
  • TclX 8.1.1
  • Neo 8.1.1
  • Itcl 3.0.1
  • Db 2.7.5
  • Gd 1.2
Overhauled most of the installation procedures, including moving several "build" shell scripts to proper Makefiles.

Modularized the NeoWebScript application. Including:

  • mod_neoscript runs with the neo-server-parsed handler, rather than the server-parsed handler. This means better integration with stock Apache distributions.
  • configure scripts and Makefiles allow for mod_neoscript to get built as a sharable module, allowing for easy "drop-in" upgrades of stock Apache installations.
  • All of the components needed for NeoWebScript are now in separate packages, meaning that users with Tcl, TclX, Db, and Apache already installed on their machines can just install the module. This means that we no longer *have* to distribute a tens-of-megabytes distribution.
  • mod_neoscript acts more like a module than previous releases.
Along with the upgrade to Db 2.7.5, the Neo package has been upgraded to support the new Db library. Note: Db 2.X files are not compatible with Db 1.X. You will need to upgrade those db files using the helper programs provided with the Db library. In addition, the Db library was changed sometime previous to 2.7.X. As such, our interface changed as well. You cannot link our new Neo interface (neoXdb.c) with Db libraries previous to 2.7.

Import fix to Sleepycat db-2.4.14 in db/db.c to uninitialized variable. RRK

12/16/98 Fix broken authentication in modules/mod_auth_tcl.c due to interface change. RRK

NeoWebScript™ 3.0

Integration with Apache 1.3.2 and Tcl 8.0.3. Released on Oct. 12, 1998. Release license shifted to open source on June 11, 1999.

New commands: dbdump, dbimport, delete_nc, display_graphic_num, flush_page, incr0, make_cookie, manage_passwords, rename_nc, reset_nc

Fixes: All tests and demos now use the <nws></nws> container tags.

NeoWebScript™ 2.3

Integration with Apache 1.2.4 and 1.2.5.

New commands: dump_vars, escape_attribute, import_switch_args, is_num, lremove. Also, gm_timestr_822 is back.

NeoWebScript™ pseudo-safe commands: file, glob, open, read_file, source.

Fixes: tests and demos that did not work properly, a smarter install script, lots of bug fixes in the safe interpreter, Neo Forms that now tolerate non-HTML characters.

NeoWebScript™ 2.2

Integration with Apache 1.2.0 and 1.2.1. This is the major point of this release. Released on June 24, 1997.

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 server-side tags <nws></nws> to work around Apache server-side includes' end-of-tag delineation problem. See the Sysop FAQ for more details.

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 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, ForbidUserSubdir.

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

NeoWebScript™ 1.0

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).

Release June 28, 1996.

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, load_virtual now use standard Apache access and authorization mechanisms to validate access.

include_file, 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 command, 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.


Copyright © 1995-1999 NeoSoft Inc., 1770 St. James Place, Suite 500, Houston, TX 77056 USA. All Rights Reserved