2001032300 release
diff --git a/NEWS b/NEWS
index d9a1eca..84e6e7d 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@
--------------------------------------------------------------------------------
- Fixed <Tcl>...</Tcl>, these should be placed outside of <Directory>/<Location> directives. Everything in <Tcl>...</Tcl> is added to a global variable and then made local to the namespace of the file, this is due to several problems with handling configuration, mainly that exection would either result in a "this directive doesn't belong here" or a problem with the configuration not being built yet as in an EXEC_ON_READ.
- Fixed a bug in ap_create_environment.
+- Fixed a bug with writing <Tcl>...</Tcl> logic to the local namespace [2001032300]
Changes in 1.0d6
--------------------------------------------------------------------------------
@@ -27,6 +28,7 @@
6. libapreq (doesn't appear to be ported to 2.0 completley yet...)
7. Decide what goals need to be acheived for release 1.0
8. Make necessary changes along with Apache 2.0 revisions.
+9. Look into TCL threads. A preliminary investigation to enabling TCL threads caused SEGVs randomly...?
Map
--------------------------------------------------------------------------------
@@ -40,7 +42,7 @@
|
- 1.0d3 -| more of API exposed, new config option, inital checkin to CVS
|
-- 1.0d4 -| Documentation, 99% of API exposed
+- 1.0d4 -| Documentation, 90% of API exposed
|
- 1.0d5 -| constants commands in ::apache namespace, mmap checking, test
| script
diff --git a/README b/README
index 6a532c0..060af4d 100644
--- a/README
+++ b/README
@@ -2,7 +2,8 @@
-----------------------------------
This documentation referes to mod_tcl 1.0d7.
-Please see tcl.apache.org and www.fractal.net for more information.
+Please see tcl.apache.org for more information.
+
Configuration Directives
------------------------
diff --git a/tcl_core.c b/tcl_core.c
index adb6a27..a734b12 100644
--- a/tcl_core.c
+++ b/tcl_core.c
@@ -236,6 +236,11 @@
{
char **xx, *z = apr_pstrdup(cmd->pool, "");
char l[MAX_STRING_LEN];
+ const char *err = ap_check_cmd_context(cmd, NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+
+ if (err != NULL) {
+ return err;
+ }
while (!(ap_cfg_getline(l, MAX_STRING_LEN, cmd->config_file))) {
if (!strncasecmp(l, "</Tcl>", 6)) {
@@ -544,12 +549,14 @@
interp = NULL;
}
+ free(raw_tcl);
+
return APR_SUCCESS;
}
static void tcl_init_handler(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
{
- ap_add_version_component(pconf, "mod_tcl/1.0dPRE7-2001032000");
+ ap_add_version_component(pconf, "mod_tcl/1.0dPRE7-2001032300");
}
static int run_handler(request_rec *r, int hh)
@@ -646,7 +653,9 @@
}
}
- run_script(interp, "namespace eval %s { %s }", r->filename, raw_tcl);
+ if (raw_tcl) {
+ run_script(interp, "namespace eval %s { %s }", r->filename, raw_tcl);
+ }
}
else if (st.st_mtime > fptr->st.st_mtime) {
int fd;