"path","revision","author","date","csid","comment" "openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl","1.82.2.3","gustafn",2005/12/28 23:29:11,"oacs-5-2:gustafn:20051228232911","Basic compatibility with naviserver 4.99.0 (some packages with filters will need similar fixes) " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.83.2.5","gustafn",2005/12/28 23:29:11,"oacs-5-2:gustafn:20051228232911","Basic compatibility with naviserver 4.99.0 (some packages with filters will need similar fixes) " "openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl","1.82.2.4","gustafn",2006/02/09 22:33:38,"oacs-5-2:gustafn:20060209223338","compatibility update for naviserver 4.99.1 or newer " "openacs-4/packages/acs-bootstrap-installer/installer.tcl","1.22","victorg",2009/08/14 09:13:13,"MAIN:victorg:20090814091313","redefining install_handler proc when NaviServer is used. " "openacs-4/packages/acs-tcl/tcl/aolserver-3-procs.tcl","1.6","gustafn",2010/03/11 11:03:01,"MAIN:gustafn:20100311110301","- improve portability for tcl 8.5 and naviserver " "openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl","1.102","gustafn",2010/03/11 11:03:01,"MAIN:gustafn:20100311110301","- improve portability for tcl 8.5 and naviserver " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.120","gustafn",2010/03/11 11:03:01,"MAIN:gustafn:20100311110301","- improve portability for tcl 8.5 and naviserver " "openacs-4/packages/acs-tcl/tcl/widgets-procs.tcl","1.16","gustafn",2010/03/11 11:03:01,"MAIN:gustafn:20100311110301","- improve portability for tcl 8.5 and naviserver " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.126","victorg",2010/10/15 11:48:36,"MAIN:victorg:20101015114836","In NaviServer usage of ns_startcontent is deprecated instead we use ns_headers to specify the content-type which is added to the connection outputheaders ( which are sent to the client when the first ns_write is called, so no need to use ns_write to write headers to the client before serving the content) " "openacs-4/packages/acs-templating/tcl/query-procs.tcl","1.33","victorg",2012/12/03 09:44:55,"MAIN:victorg:20121203094455","Getting right template-caches manipulation depending on wether we run on NaviServer or AOLServer. " "openacs-4/packages/acs-tcl/tcl/apm-procs.tcl","1.91","gustafn",2012/12/20 15:47:16,"MAIN:gustafn:20121220154716","- don't use regexp when not needed (match is so much faster). - provide context info for naviserver writer threads - reset ""extra_url"", needed for internal redirects on errors. " "openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl","1.107","gustafn",2012/12/20 15:47:16,"MAIN:gustafn:20121220154716","- don't use regexp when not needed (match is so much faster). - provide context info for naviserver writer threads - reset ""extra_url"", needed for internal redirects on errors. " "openacs-4/packages/acs-bootstrap-installer/installer/index.tcl","1.28","gustafn",2013/03/30 21:30:16,"MAIN:gustafn:20130330213016","- naviserver compatiblity fix " "openacs-4/packages/acs-bootstrap-installer/tcl/00-proc-procs.tcl","1.41","gustafn",2013/04/12 16:12:56,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-bootstrap-installer/tcl/30-apm-load-procs.tcl","1.38","gustafn",2013/04/12 16:12:56,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-content-repository/tcl/filter-procs.tcl","1.33","gustafn",2013/04/12 16:12:56,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-content-repository/tcl/publish-procs.tcl","1.10","gustafn",2013/04/12 16:12:56,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-content-repository/www/index.vuh","1.9","gustafn",2013/04/12 16:12:56,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-content-repository/www/doc/guide/publish.html","1.4","gustafn",2013/04/12 16:12:56,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-core-docs/www/files/acs-pgbackup-init.txt","1.4","gustafn",2013/04/12 16:12:56,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-tcl/tcl/navigation-procs.tcl","1.30","gustafn",2013/04/12 16:12:56,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl","1.113","gustafn",2013/04/12 16:12:56,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-templating/tcl/acs-integration-procs.tcl","1.20","gustafn",2013/04/12 16:12:57,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-templating/tcl/debug-procs.tcl","1.6","gustafn",2013/04/12 16:12:57,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-templating/tcl/form-procs.tcl","1.45","gustafn",2013/04/12 16:12:57,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-templating/tcl/util-procs.tcl","1.26","gustafn",2013/04/12 16:12:57,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-templating/www/doc/install.html","1.2","gustafn",2013/04/12 16:12:57,"MAIN:gustafn:20130412161256","- added victor's patch to omit deprecated messages of ""ns_info tcllib"". Background: naviserver supports multiple (virtual) servers, which might have different tcllibs. Therefore, the preferred command to query this was moved to ""ns_server ?-server s? tcllib"" and ""ns_info tcllib"" was deprecated. From the OpenACS point of view, one wants to locate the actual library. Since the variable does not change, it is fine to store it in a per-thread variable which can be efficiently accessed. " "openacs-4/packages/acs-bootstrap-installer/tcl/00-proc-procs.tcl","1.41.2.2","victorg",2013/08/21 11:27:04,"oacs-5-8:victorg:20130821112704","Moving handling NaviServer deprecated ns_info subcommands to 0-acs-init.tcl. " "openacs-4/packages/acs-bootstrap-installer/bootstrap.tcl","1.31.4.1","gustafn",2013/08/23 10:08:48,"oacs-5-8:gustafn:20130823100848","- ensure that bootstrap_write_error work on aolserver and naviserver - ensure sorted loading order of bootstrap files (Tcl's glob does not guarantee order) " "openacs-4/packages/acs-tcl/tcl/apm-file-procs.tcl","1.35.8.3","gustafn",2013/08/26 07:10:52,"oacs-5-8:gustafn:20130826071052","- guard against older versions of naviserver " "openacs-4/packages/acs-admin/www/cache/index.tcl","1.3.10.1","michaels",2013/08/29 22:21:34,"oacs-5-8:michaels:20130829222134","update acs-admin cache page to work with both naviserver and aolserver " "openacs-4/packages/acs-admin/www/cache/index.tcl","1.3.10.2","gustafn",2013/08/30 07:49:24,"oacs-5-8:gustafn:20130830074924","- no need for separate code for AOLServer/NaviServer " "openacs-4/packages/acs-tcl/tcl/defs-procs.tcl","1.62.2.3","gustafn",2013/09/19 10:15:19,"oacs-5-8:gustafn:20130919101519","- modernize tcl - don't do want aolserver/naviserver does anyhow " "openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl","1.90.2.2","gustafn",2013/10/02 10:02:28,"oacs-5-8:gustafn:20131002100228","- simply string expressions - remove unneeded quoting - use ""in"" or not in (ni) operator instead of lsearch - improve domain guessing for naviserver configurations " "openacs-4/packages/acs-mail-lite/tcl/incoming-mail-procs.tcl","1.6.2.1","gustafn",2013/10/02 10:02:28,"oacs-5-8:gustafn:20131002100228","- simply string expressions - remove unneeded quoting - use ""in"" or not in (ni) operator instead of lsearch - improve domain guessing for naviserver configurations " "openacs-4/packages/acs-tcl/tcl/memoize-procs.tcl","1.13.6.3","gustafn",2013/10/24 10:48:26,"oacs-5-8:gustafn:20131024104826","- reimplementation of util_memoize cache for NaviServer. The original implementation of the util-memoize functions was based on ""manual expirations"" (every cached entry was a pair of value + timestamp). This is not needed on naviserver, since NaviServer allows us to specify for every entry directly an expire time, which is implemented internally. The new has the advantage that (a) it is faster, (b) more secure (no race conditions), (c) smaller memory footprint (not only storing the timestamp is not needed; furthermore invalidation of timed-out entries happend in the old version only, when the entry was fetched; in practice (openacs.org) many dead entries where kept, the size wen down by 90%), (d) due to small number of entries the search in the keys is much faster. " "openacs-4/packages/acs-core-docs/www/xml/kernel/ext-auth-design.xml","1.4.8.3","gustafn",2013/12/02 08:14:29,"oacs-5-8:gustafn:20131202081429","- stop renaming predefined AOLserver/NaviServer command ns_sendmai (for the time migration phase, simply overwrite it) - replace calls to deprecated ""ns_sendmail"" to calls to ""acs_mail_lite::send"" " "openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-init.tcl","1.13.6.1","gustafn",2013/12/02 08:14:30,"oacs-5-8:gustafn:20131202081429","- stop renaming predefined AOLserver/NaviServer command ns_sendmai (for the time migration phase, simply overwrite it) - replace calls to deprecated ""ns_sendmail"" to calls to ""acs_mail_lite::send"" " "openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl","1.90.2.3","gustafn",2013/12/02 08:14:30,"oacs-5-8:gustafn:20131202081429","- stop renaming predefined AOLserver/NaviServer command ns_sendmai (for the time migration phase, simply overwrite it) - replace calls to deprecated ""ns_sendmail"" to calls to ""acs_mail_lite::send"" " "openacs-4/packages/acs-subsite/www/admin/users/new.tcl","1.12.6.7","gustafn",2013/12/02 08:14:30,"oacs-5-8:gustafn:20131202081429","- stop renaming predefined AOLserver/NaviServer command ns_sendmai (for the time migration phase, simply overwrite it) - replace calls to deprecated ""ns_sendmail"" to calls to ""acs_mail_lite::send"" " "openacs-4/packages/acs-admin/acs-admin.info","1.45.2.9","gustafn",2014/04/01 18:37:30,"oacs-5-8:gustafn:20140401183730","- The C-library function tmpnam() is deprecated since a while. Therefore naviserver has deprecated ns_tmpnam as well. Therefore we introduce a new function ""ad_tmpnam"" which requires just a minimal change and uses ns_mktemp. " "openacs-4/packages/acs-admin/tcl/apm-admin-procs.tcl","1.18.8.8","gustafn",2014/04/01 18:37:31,"oacs-5-8:gustafn:20140401183730","- The C-library function tmpnam() is deprecated since a while. Therefore naviserver has deprecated ns_tmpnam as well. Therefore we introduce a new function ""ad_tmpnam"" which requires just a minimal change and uses ns_mktemp. " "openacs-4/packages/acs-subsite/acs-subsite.info","1.114.2.8","gustafn",2014/04/01 18:37:31,"oacs-5-8:gustafn:20140401183730","- The C-library function tmpnam() is deprecated since a while. Therefore naviserver has deprecated ns_tmpnam as well. Therefore we introduce a new function ""ad_tmpnam"" which requires just a minimal change and uses ns_mktemp. " "openacs-4/packages/acs-subsite/www/shared/1pixel.tcl","1.5.2.1","gustafn",2014/04/01 18:37:31,"oacs-5-8:gustafn:20140401183730","- The C-library function tmpnam() is deprecated since a while. Therefore naviserver has deprecated ns_tmpnam as well. Therefore we introduce a new function ""ad_tmpnam"" which requires just a minimal change and uses ns_mktemp. " "openacs-4/packages/acs-tcl/acs-tcl.info","1.67.2.11","gustafn",2014/04/01 18:37:31,"oacs-5-8:gustafn:20140401183730","- The C-library function tmpnam() is deprecated since a while. Therefore naviserver has deprecated ns_tmpnam as well. Therefore we introduce a new function ""ad_tmpnam"" which requires just a minimal change and uses ns_mktemp. " "openacs-4/packages/acs-tcl/tcl/00-database-procs.tcl","1.86.2.13","gustafn",2014/04/01 18:37:31,"oacs-5-8:gustafn:20140401183730","- The C-library function tmpnam() is deprecated since a while. Therefore naviserver has deprecated ns_tmpnam as well. Therefore we introduce a new function ""ad_tmpnam"" which requires just a minimal change and uses ns_mktemp. " "openacs-4/packages/acs-tcl/tcl/apm-file-procs.tcl","1.35.8.12","gustafn",2014/04/01 18:37:31,"oacs-5-8:gustafn:20140401183730","- The C-library function tmpnam() is deprecated since a while. Therefore naviserver has deprecated ns_tmpnam as well. Therefore we introduce a new function ""ad_tmpnam"" which requires just a minimal change and uses ns_mktemp. " "openacs-4/packages/acs-tcl/tcl/pdf-procs.tcl","1.2.12.1","gustafn",2014/04/01 18:37:31,"oacs-5-8:gustafn:20140401183730","- The C-library function tmpnam() is deprecated since a while. Therefore naviserver has deprecated ns_tmpnam as well. Therefore we introduce a new function ""ad_tmpnam"" which requires just a minimal change and uses ns_mktemp. " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.133.2.35","gustafn",2014/04/01 18:37:32,"oacs-5-8:gustafn:20140401183730","- The C-library function tmpnam() is deprecated since a while. Therefore naviserver has deprecated ns_tmpnam as well. Therefore we introduce a new function ""ad_tmpnam"" which requires just a minimal change and uses ns_mktemp. " "openacs-4/packages/acs-admin/www/cache/one.tcl","1.3.10.1","gustafn",2014/04/08 20:20:35,"oacs-5-8:gustafn:20140408202035","- fixed user interface for util-memoize cache for NaviServer " "openacs-4/packages/acs-admin/www/cache/show-util-memoize.adp","1.4.16.2","gustafn",2014/04/08 20:20:36,"oacs-5-8:gustafn:20140408202035","- fixed user interface for util-memoize cache for NaviServer " "openacs-4/packages/acs-admin/www/cache/show-util-memoize.tcl","1.3.16.1","gustafn",2014/04/08 20:20:36,"oacs-5-8:gustafn:20140408202035","- fixed user interface for util-memoize cache for NaviServer " "openacs-4/packages/acs-tcl/tcl/document-procs.tcl","1.5.8.2","gustafn",2014/07/30 11:55:00,"oacs-5-8:gustafn:20140730115500","- patch for a subtle difference between aolserver and Naviserver in the handling of ""--"" (nonpos parameter terminator) " "openacs-4/packages/acs-templating/tcl/parse-procs.tcl","1.48.2.9","gustafn",2014/07/30 11:55:01,"oacs-5-8:gustafn:20140730115500","- patch for a subtle difference between aolserver and Naviserver in the handling of ""--"" (nonpos parameter terminator) " "openacs-4/packages/acs-api-browser/www/tcl-proc-view.tcl","1.6.8.3","gustafn",2014/08/03 19:11:11,"oacs-5-8:gustafn:20140803191111","- point to naviserver doc - use util::http::get instead of ns_httpget " "openacs-4/packages/acs-tcl/tcl/http-client-procs.tcl","1.1.2.6","gustafn",2014/08/05 07:14:45,"oacs-5-8:gustafn:20140805071445","- add code to convert timeout value to a value suitable for the underlying implementation (NaviServer or curl) - document timeout values - base deprecated code on util::http::* " "openacs-4/packages/acs-tcl/tcl/http-client-procs.tcl","1.1.2.7","gustafn",2014/08/05 12:11:08,"oacs-5-8:gustafn:20140805121108","- activate spooling to files for versions of naviserver supporting it " "openacs-4/packages/acs-api-browser/tcl/acs-api-documentation-procs.tcl","1.27.8.14","gustafn",2014/09/05 10:18:03,"oacs-5-8:gustafn:20140905101803","- overhaul of prettty-printer: * use CSS styles instead of hard-coded values * get rid of FONT tag * update tcl command list for tcl 8.5 * reactivate links to tcl-commands (of matching version) in pretty printed procs - move configuration variables for external documentation servers to apidoc namespace (reduce redundancy of information) - keep for aolserver user documentation link as they were before, just naviserver users see the naviserver documentation " "openacs-4/packages/acs-api-browser/www/proc-view.tcl","1.6.16.7","gustafn",2014/09/05 10:22:40,"oacs-5-8:gustafn:20140905102240","- fix potential bug, when passed-in proc name contains wild-card character * (""info procs|commands"" return multiple results, ""info args"" raises an error) - enable proc-view to work with tcl-comands and naviserver/aolserver commands as well - fix outdated URLs " "openacs-4/packages/acs-api-browser/tcl/acs-api-documentation-procs.tcl","1.27.8.18","gustafn",2014/09/09 07:42:38,"oacs-5-8:gustafn:20140909074238","- show relevant XQL code instead of all XQL code - provide links to full XQL code - fix handling of absolute vs. relative command names - show SQL code (and Tcl code not defined via apidoc) in sam style - provide tooltips for Tcl commands, NaviServer/AOLserver commands and API calls " "openacs-4/packages/acs-api-browser/www/proc-view.tcl","1.6.16.8","gustafn",2014/09/09 07:42:38,"oacs-5-8:gustafn:20140909074238","- show relevant XQL code instead of all XQL code - provide links to full XQL code - fix handling of absolute vs. relative command names - show SQL code (and Tcl code not defined via apidoc) in sam style - provide tooltips for Tcl commands, NaviServer/AOLserver commands and API calls " "openacs-4/packages/acs-tcl/tcl/security-procs.tcl","1.74.2.22","gustafn",2014/11/19 07:22:26,"oacs-5-8:gustafn:20141119072226","- handle case, where driver is loaded, but not started. Recent NaviServer uses for this case port == 0 " "openacs-4/packages/acs-content-repository/tcl/image-procs.tcl","1.9.4.4","gustafn",2015/04/14 10:23:16,"oacs-5-8:gustafn:20150414102316","- fix inconsistent way to refer to ImageMagick binary (parameter ImageMagickPath vs. image::identify_binary) - fix incorrect way to refer to results of ImageMagick (foreach was dangerous and incorrect) - fix incorrect parameter to ImageMagick (-size geometry) - fix broken switch statement - fix typo in name (image::imagmagick_identify should be imagemagick_identify) - fix incorrect comments - provide default to optional argument of filename_mime_type - try to use built-in support and fall back to external programs (image magick). Built-in support is several hundred times faster. - use NaviServer's extened functionality " "openacs-4/packages/acs-bootstrap-installer/acs-bootstrap-installer.info","1.39.2.2","gustafn",2015/08/20 10:57:13,"oacs-5-9:gustafn:20150820105713","- optional performance boost for site-nodes: the site-node code contains an optional performance booster, that speeds up site-node operations froma factor of 2 to several thousand times. The performance boost ist just available for the time being for PostgreSQL, XOTcl2 and NaviServer and is only activated, when these componentes are available. - bump version numbers " "openacs-4/packages/acs-bootstrap-installer/installer/tcl/0-acs-init.tcl","1.2.2.2","gustafn",2015/08/20 10:57:13,"oacs-5-9:gustafn:20150820105713","- optional performance boost for site-nodes: the site-node code contains an optional performance booster, that speeds up site-node operations froma factor of 2 to several thousand times. The performance boost ist just available for the time being for PostgreSQL, XOTcl2 and NaviServer and is only activated, when these componentes are available. - bump version numbers " "openacs-4/packages/acs-bootstrap-installer/tcl/00-proc-procs.tcl","1.42.2.2","gustafn",2015/08/20 10:57:13,"oacs-5-9:gustafn:20150820105713","- optional performance boost for site-nodes: the site-node code contains an optional performance booster, that speeds up site-node operations froma factor of 2 to several thousand times. The performance boost ist just available for the time being for PostgreSQL, XOTcl2 and NaviServer and is only activated, when these componentes are available. - bump version numbers " "openacs-4/packages/acs-tcl/acs-tcl.info","1.70.2.1","gustafn",2015/08/20 10:57:13,"oacs-5-9:gustafn:20150820105713","- optional performance boost for site-nodes: the site-node code contains an optional performance booster, that speeds up site-node operations froma factor of 2 to several thousand times. The performance boost ist just available for the time being for PostgreSQL, XOTcl2 and NaviServer and is only activated, when these componentes are available. - bump version numbers " "openacs-4/packages/acs-tcl/tcl/site-nodes-procs.tcl","1.93.2.1","gustafn",2015/08/20 10:57:13,"oacs-5-9:gustafn:20150820105713","- optional performance boost for site-nodes: the site-node code contains an optional performance booster, that speeds up site-node operations froma factor of 2 to several thousand times. The performance boost ist just available for the time being for PostgreSQL, XOTcl2 and NaviServer and is only activated, when these componentes are available. - bump version numbers " "openacs-4/packages/acs-api-browser/acs-api-browser.info","1.36.2.8","gustafn",2016/08/02 10:14:41,"oacs-5-9:gustafn:20160802101441","- apidoc::get_doc_url: factor out common code to reduce redundancy - OpenACS PL/SQL API Search: add number ot arguments, modernize adp, better separation of multiple psql functions - fix postgres search url on api-doc/index page - add missing csrf protection to NaviServer/AOLserver search box - bump version number to 5.9.1d3 " "openacs-4/packages/acs-api-browser/lib/search.adp","1.7.2.2","gustafn",2016/08/02 10:14:41,"oacs-5-9:gustafn:20160802101441","- apidoc::get_doc_url: factor out common code to reduce redundancy - OpenACS PL/SQL API Search: add number ot arguments, modernize adp, better separation of multiple psql functions - fix postgres search url on api-doc/index page - add missing csrf protection to NaviServer/AOLserver search box - bump version number to 5.9.1d3 " "openacs-4/packages/acs-api-browser/lib/search.tcl","1.6.12.2","gustafn",2016/08/02 10:14:41,"oacs-5-9:gustafn:20160802101441","- apidoc::get_doc_url: factor out common code to reduce redundancy - OpenACS PL/SQL API Search: add number ot arguments, modernize adp, better separation of multiple psql functions - fix postgres search url on api-doc/index page - add missing csrf protection to NaviServer/AOLserver search box - bump version number to 5.9.1d3 " "openacs-4/packages/acs-api-browser/tcl/acs-api-documentation-procs.tcl","1.30.2.23","gustafn",2016/08/02 10:14:41,"oacs-5-9:gustafn:20160802101441","- apidoc::get_doc_url: factor out common code to reduce redundancy - OpenACS PL/SQL API Search: add number ot arguments, modernize adp, better separation of multiple psql functions - fix postgres search url on api-doc/index page - add missing csrf protection to NaviServer/AOLserver search box - bump version number to 5.9.1d3 " "openacs-4/packages/acs-api-browser/www/plsql-subprogram-one.tcl","1.6.2.2","gustafn",2016/08/02 10:14:41,"oacs-5-9:gustafn:20160802101441","- apidoc::get_doc_url: factor out common code to reduce redundancy - OpenACS PL/SQL API Search: add number ot arguments, modernize adp, better separation of multiple psql functions - fix postgres search url on api-doc/index page - add missing csrf protection to NaviServer/AOLserver search box - bump version number to 5.9.1d3 " "openacs-4/packages/acs-api-browser/www/plsql-subprograms-all-oracle.xql","1.1.30.1","gustafn",2016/08/02 10:14:41,"oacs-5-9:gustafn:20160802101441","- apidoc::get_doc_url: factor out common code to reduce redundancy - OpenACS PL/SQL API Search: add number ot arguments, modernize adp, better separation of multiple psql functions - fix postgres search url on api-doc/index page - add missing csrf protection to NaviServer/AOLserver search box - bump version number to 5.9.1d3 " "openacs-4/packages/acs-api-browser/www/plsql-subprograms-all-postgresql.xql","1.2.24.1","gustafn",2016/08/02 10:14:41,"oacs-5-9:gustafn:20160802101441","- apidoc::get_doc_url: factor out common code to reduce redundancy - OpenACS PL/SQL API Search: add number ot arguments, modernize adp, better separation of multiple psql functions - fix postgres search url on api-doc/index page - add missing csrf protection to NaviServer/AOLserver search box - bump version number to 5.9.1d3 " "openacs-4/packages/acs-api-browser/www/plsql-subprograms-all.adp","1.7.2.1","gustafn",2016/08/02 10:14:41,"oacs-5-9:gustafn:20160802101441","- apidoc::get_doc_url: factor out common code to reduce redundancy - OpenACS PL/SQL API Search: add number ot arguments, modernize adp, better separation of multiple psql functions - fix postgres search url on api-doc/index page - add missing csrf protection to NaviServer/AOLserver search box - bump version number to 5.9.1d3 " "openacs-4/packages/acs-api-browser/www/plsql-subprograms-all.tcl","1.4.28.4","gustafn",2016/08/02 10:14:41,"oacs-5-9:gustafn:20160802101441","- apidoc::get_doc_url: factor out common code to reduce redundancy - OpenACS PL/SQL API Search: add number ot arguments, modernize adp, better separation of multiple psql functions - fix postgres search url on api-doc/index page - add missing csrf protection to NaviServer/AOLserver search box - bump version number to 5.9.1d3 " "openacs-4/packages/acs-api-browser/www/proc-view.tcl","1.10.2.8","gustafn",2016/08/02 10:14:41,"oacs-5-9:gustafn:20160802101441","- apidoc::get_doc_url: factor out common code to reduce redundancy - OpenACS PL/SQL API Search: add number ot arguments, modernize adp, better separation of multiple psql functions - fix postgres search url on api-doc/index page - add missing csrf protection to NaviServer/AOLserver search box - bump version number to 5.9.1d3 " "openacs-4/packages/acs-api-browser/www/tcl-doc-search.adp","1.9.2.3","gustafn",2016/08/02 10:14:41,"oacs-5-9:gustafn:20160802101441","- apidoc::get_doc_url: factor out common code to reduce redundancy - OpenACS PL/SQL API Search: add number ot arguments, modernize adp, better separation of multiple psql functions - fix postgres search url on api-doc/index page - add missing csrf protection to NaviServer/AOLserver search box - bump version number to 5.9.1d3 " "openacs-4/packages/acs-api-browser/www/tcl-doc-search.tcl","1.8.2.3","gustafn",2016/08/02 10:14:41,"oacs-5-9:gustafn:20160802101441","- apidoc::get_doc_url: factor out common code to reduce redundancy - OpenACS PL/SQL API Search: add number ot arguments, modernize adp, better separation of multiple psql functions - fix postgres search url on api-doc/index page - add missing csrf protection to NaviServer/AOLserver search box - bump version number to 5.9.1d3 " "openacs-4/packages/acs-api-browser/www/tcl-proc-view.tcl","1.10.2.4","gustafn",2016/08/02 10:14:41,"oacs-5-9:gustafn:20160802101441","- apidoc::get_doc_url: factor out common code to reduce redundancy - OpenACS PL/SQL API Search: add number ot arguments, modernize adp, better separation of multiple psql functions - fix postgres search url on api-doc/index page - add missing csrf protection to NaviServer/AOLserver search box - bump version number to 5.9.1d3 " "openacs-4/packages/acs-tcl/tcl/http-client-procs.tcl","1.3.2.4","antoniop",2016/10/10 13:38:50,"oacs-5-9:antoniop:20161010133850","Removed use of deprecated ns_ssl API for Naviserver versions newer than 4.99.12 Removed use of util_memoize in favor of ns_memoize " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.140.2.56","gustafn",2017/01/06 11:48:05,"oacs-5-9:gustafn:20170106114805","- use ns_parseurl when available - provide emulation for ns_parseurl for older versions of NaviServer or AOLserver " "openacs-4/packages/acs-subsite/lib/home.adp","1.8.2.2","gustafn",2017/02/04 13:57:09,"oacs-5-9:gustafn:20170204135709","- replace """" by """", since adp parser in AOLserver and NaviServer passes ""/"" as argument to the adp-include. " "openacs-4/packages/acs-subsite/www/group-master.adp","1.18.2.2","gustafn",2017/02/04 13:57:09,"oacs-5-9:gustafn:20170204135709","- replace """" by """", since adp parser in AOLserver and NaviServer passes ""/"" as argument to the adp-include. " "openacs-4/packages/acs-subsite/www/members/user-new.adp","1.9.2.1","gustafn",2017/02/04 13:57:09,"oacs-5-9:gustafn:20170204135709","- replace """" by """", since adp parser in AOLserver and NaviServer passes ""/"" as argument to the adp-include. " "openacs-4/packages/acs-subsite/www/pvt/home.adp","1.29.2.1","gustafn",2017/02/04 13:57:09,"oacs-5-9:gustafn:20170204135709","- replace """" by """", since adp parser in AOLserver and NaviServer passes ""/"" as argument to the adp-include. " "openacs-4/packages/acs-subsite/www/register/email-confirm.adp","1.11.2.2","gustafn",2017/02/04 13:57:09,"oacs-5-9:gustafn:20170204135709","- replace """" by """", since adp parser in AOLserver and NaviServer passes ""/"" as argument to the adp-include. " "openacs-4/packages/acs-subsite/www/register/user-new.adp","1.19.2.1","gustafn",2017/02/04 13:57:09,"oacs-5-9:gustafn:20170204135709","- replace """" by """", since adp parser in AOLserver and NaviServer passes ""/"" as argument to the adp-include. " "openacs-4/packages/acs-admin/www/users/user-add.adp","1.12.2.1","gustafn",2017/02/04 14:13:22,"oacs-5-9:gustafn:20170204141322","- replace """" by """", since adp parser in AOLserver and NaviServer passes ""/"" as argument to the adp-include. " "openacs-4/packages/acs-lang/www/admin/index.adp","1.20.2.3","gustafn",2017/02/04 14:13:22,"oacs-5-9:gustafn:20170204141322","- replace """" by """", since adp parser in AOLserver and NaviServer passes ""/"" as argument to the adp-include. " "openacs-4/packages/acs-lang/www/admin/message-list.adp","1.16.2.3","gustafn",2017/02/04 14:13:22,"oacs-5-9:gustafn:20170204141322","- replace """" by """", since adp parser in AOLserver and NaviServer passes ""/"" as argument to the adp-include. " "openacs-4/packages/acs-lang/www/admin/package-list.adp","1.13.2.1","gustafn",2017/02/04 14:13:22,"oacs-5-9:gustafn:20170204141322","- replace """" by """", since adp parser in AOLserver and NaviServer passes ""/"" as argument to the adp-include. " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.140.2.60","gustafn",2017/03/01 13:59:52,"oacs-5-9:gustafn:20170301135952","Fix compatibility with older versions of NaviServer " "openacs-4/packages/acs-tcl/tcl/00-database-procs.tcl","1.88.2.14","gustafn",2017/03/03 08:03:22,"oacs-5-9:gustafn:20170303080322","Fix issue #3299 : Oracle installs fail on Naviserver due to missing EXIT in SQL scripts " "openacs-4/packages/acs-tcl/tcl/security-procs.tcl","1.78.2.48","gustafn",2017/03/26 15:14:52,"oacs-5-9:gustafn:20170326151452","- push coockie encoding to emulation level (naviserver does this natively, the aolserver variant handles it no the low-level functions) " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.140.2.62","gustafn",2017/03/26 15:14:52,"oacs-5-9:gustafn:20170326151452","- push coockie encoding to emulation level (naviserver does this natively, the aolserver variant handles it no the low-level functions) " "openacs-4/packages/acs-tcl/tcl/00-database-procs.tcl","1.88.2.17","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/admin-procs.tcl","1.23.2.2","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/aolserver-3-procs.tcl","1.7.2.3","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/apm-file-procs.tcl","1.36.2.13","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl","1.109.2.23","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/apm-procs.tcl","1.95.2.12","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/community-core-procs.tcl","1.62.2.10","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/html-email-procs.tcl","1.19.2.3","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/http-auth-procs.tcl","1.3.2.2","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/http-client-procs.tcl","1.3.2.19","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/image-procs.tcl","1.2.2.2","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/install-procs.tcl","1.30.2.2","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/json-procs.tcl","1.6.2.2","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/memoize-procs.tcl","1.14.2.2","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/navigation-procs.tcl","1.32.2.11","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl","1.118.2.43","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/security-procs.tcl","1.78.2.54","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/server-cluster-procs.tcl","1.9.2.2","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/tcl-documentation-procs.tcl","1.36.2.39","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/tdom-procs.tcl","1.3.10.2","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.140.2.74","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/test/acs-tcl-test-procs.tcl","1.41.2.6","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/test/file-test-procs.tcl","1.10.2.4","gustafn",2017/04/22 18:11:54,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/tcl/acs-integration-init.tcl","1.1.1.1.30.2","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/tcl/acs-integration-procs.tcl","1.23.2.5","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/tcl/apm-callback-procs.tcl","1.6.6.2","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/tcl/date-procs.tcl","1.49.2.7","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/tcl/doc-tcl-procs.tcl","1.11.2.5","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/tcl/list-procs.tcl","1.60.2.17","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/tcl/query-procs.tcl","1.34.2.6","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/tcl/richtext-procs.tcl","1.52.2.14","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/tcl/tag-init.tcl","1.39.2.13","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/tcl/wizard-procs.tcl","1.11.2.5","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/www/doc/demo/error.tcl","1.3.2.2","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/www/doc/demo/list5/add-edit.tcl","1.3.2.4","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/www/doc/demo/list6/add-edit.tcl","1.4.2.3","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/www/doc/demo/list7/add-edit.tcl","1.3.2.5","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/www/doc/demo/list8/add-edit.tcl","1.5.2.3","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/www/doc/demo/list9/add-edit.tcl","1.3.2.3","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/www/doc/demo/list9/delete.tcl","1.2.2.5","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/www/doc/exercise/form-sample.tcl","1.5.2.3","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-templating/www/doc/gen/generate-docs.tcl","1.2.2.4","gustafn",2017/04/22 18:15:50,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-admin/www/apm/version-i18n-process-2.tcl","1.19.2.2","gustafn",2017/04/22 18:17:05,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-admin/www/apm/version-i18n.tcl","1.14.2.3","gustafn",2017/04/22 18:17:05,"oacs-5-9:gustafn:20170422181154","Standardize spelling of names of products (Tcl, AOLserver, PostgreSQL, NaviServer) " "openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl","1.118.2.47","gustafn",2017/04/24 09:02:17,"oacs-5-9:gustafn:20170424090217","Add ability to include actual user in the access log (see as well updated sample OpenACS config file in the NaviServer repository) " "openacs-4/packages/acs-content-repository/tcl/revision-procs.tcl","1.32.2.6","gustafn",2017/04/26 18:37:01,"oacs-5-9:gustafn:20170426183701","Support image sizes on png portraits (as supported by NaviServer) " "openacs-4/packages/acs-admin/www/server-restart.tcl","1.4.24.2","gustafn",2017/05/21 09:52:26,"oacs-5-9:gustafn:20170521095226","When the kernel parameter ""NsShutdownWithNonZeroExitCode"" is set (e.g. in the config file) and NaviServer is used, return with a non-zero exit code after ns_shutdown. This lets e.g. windows system to restart the service automatically (the sample config file for openacs in the naviserver archive is updated as an example) " "openacs-4/packages/acs-bootstrap-installer/installer.tcl","1.25.2.7","gustafn",2017/06/03 12:17:17,"oacs-5-9:gustafn:20170603121717","Deal with Mauricio's NaviServer modification (fixes issue #3319) " "openacs-4/packages/acs-tcl/tcl/utilities-procs-aolserver.tcl","1.1","gustafn",2018/02/26 19:07:07,"MAIN:gustafn:20180226190707","factor out naviserver and aolserver specific code " "openacs-4/packages/acs-tcl/tcl/utilities-procs-naviserver.tcl","1.1","gustafn",2018/02/26 19:07:07,"MAIN:gustafn:20180226190707","factor out naviserver and aolserver specific code " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.150","gustafn",2018/02/26 19:07:07,"MAIN:gustafn:20180226190707","factor out naviserver and aolserver specific code " "openacs-4/packages/acs-tcl/tcl/text-html-procs.tcl","1.77","gustafn",2018/03/03 20:42:33,"MAIN:gustafn:20180303204233","Replace ""wrap_string"" by ""ns_reflow_text"", where the latter is a builtin of newer versions of NaviServer. When ""ns_reflow_text"" is not available, provide a scripted version for it. wrap_string is marked as deprecated, since it has no proper prefix, and is less powerful than ns_reflow_text " "openacs-4/packages/acs-tcl/tcl/site-nodes-init.tcl","1.7","gustafn",2018/05/14 13:21:52,"MAIN:gustafn:20180514132152","site-nodes cache reform: use ns_urlsspace instead of brute-force caching. For OpenACS site with recent versions of NaviServer and XOTcl2, cache sitenode information much more efficiently by the built-in URL trie, which supports tree match operations, for tree information. This means that for example for .vuh handlers it is not necessary to cache the full url for obtaining the site-node, like it was until now: 3839 id-/storage/view/installers/windows-installer/installer.htm 3839 id-/storage/view/aolserver/install.tgz 3839 id-/storage/view/tutorial/OpenACS_Tutorial.htm 3839 id-/storage/view/openacs-dotlrn-conference-2007-spring/Methodology_ALPE.pdf 3839 id-/storage/view/xowiki-resources/Assessment.jpg 3839 id-/storage/view/tutorial-page-map.png ... Providing a single entry like ns_urlspace set -key sitenode /storage/* 3839 is sufficient. Why is this needed: current cache sizes of larger sites show 330K (site A) and 390K (site B) cache entries. Matchbase flushes have to gor thhrough all these entries, causing long lock times. Running thhis code at OpenACS.org shows an improvement by a factor of more than 200x. " "openacs-4/packages/acs-tcl/tcl/site-nodes-procs.tcl","1.108","gustafn",2018/05/14 13:21:52,"MAIN:gustafn:20180514132152","site-nodes cache reform: use ns_urlsspace instead of brute-force caching. For OpenACS site with recent versions of NaviServer and XOTcl2, cache sitenode information much more efficiently by the built-in URL trie, which supports tree match operations, for tree information. This means that for example for .vuh handlers it is not necessary to cache the full url for obtaining the site-node, like it was until now: 3839 id-/storage/view/installers/windows-installer/installer.htm 3839 id-/storage/view/aolserver/install.tgz 3839 id-/storage/view/tutorial/OpenACS_Tutorial.htm 3839 id-/storage/view/openacs-dotlrn-conference-2007-spring/Methodology_ALPE.pdf 3839 id-/storage/view/xowiki-resources/Assessment.jpg 3839 id-/storage/view/tutorial-page-map.png ... Providing a single entry like ns_urlspace set -key sitenode /storage/* 3839 is sufficient. Why is this needed: current cache sizes of larger sites show 330K (site A) and 390K (site B) cache entries. Matchbase flushes have to gor thhrough all these entries, causing long lock times. Running thhis code at OpenACS.org shows an improvement by a factor of more than 200x. " "openacs-4/packages/acs-tcl/tcl/apm-procs.tcl","1.110","gustafn",2018/07/01 09:57:02,"MAIN:gustafn:20180701095702","apm reloading reform (part 1) Blueprint reloading updates the blueprint of nsd, which has the consequence the also threads for running scheduled procedures can be updated. So far blueprint reloading is just tested with NaviServer, but should work with AOLserver as well (modulo bugs). To switch between the classic and blueprint reloading, edit acs-tcl/tcl/apm-procs.tcl and set ::apm::reloading to ""classic"" or ""blueprint"". Some functions were refactored to ease this transition. " "openacs-4/packages/acs-tcl/tcl/http-client-procs.tcl","1.30","antoniop",2018/11/29 13:52:37,"MAIN:antoniop:20181129135237","Wrap legacy and current ns_http api behavior in a proc with a common interface in a way that people with newer Naviserver can exploit e.g. ns_http run capabilities (in particular, not being forced to queue and potentially block concurrent HTTP requests) " "openacs-4/packages/acs-tcl/tcl/security-procs.tcl","1.126.2.4","gustafn",2019/02/17 12:19:29,"oacs-5-10:gustafn:20190217121929","- ad_set_cookie: add option ""-samesite"" and use it, when the server supports it (NaviServer 4.99.18) - use ""-samesite strict"" per default on signed cookies Background from NaviServer commit: ns_setcookie: add flag ""-samesite"" with values ""strict|lax|none"" When the flag is set it prevents the browser from sending this cookie along with cross-site requests to mitigate cross site scripting attacks. Permissible values are [term strict], [term lax], or [term none] (default). While the value [term strict] prevents sending the cookie to the target site in all cross-site browsing context, the value of [term lax] allows sending the cookie when the user clicks on regular links. For details, see https://www.owasp.org/index.php/SameSite This cookie flag is not yet part of an RFC, but most major browsers support it. Browsers that do not support it, ignore the flag silently (see https://caniuse.com/#search=samesite). Although most cookies should probably use the flags, in order to provide backward compatibility, the flag can't be activated by default on all cookies. " "openacs-4/packages/acs-tcl/tcl/utilities-procs-aolserver.tcl","1.6.2.1","gustafn",2019/02/17 12:19:29,"oacs-5-10:gustafn:20190217121929","- ad_set_cookie: add option ""-samesite"" and use it, when the server supports it (NaviServer 4.99.18) - use ""-samesite strict"" per default on signed cookies Background from NaviServer commit: ns_setcookie: add flag ""-samesite"" with values ""strict|lax|none"" When the flag is set it prevents the browser from sending this cookie along with cross-site requests to mitigate cross site scripting attacks. Permissible values are [term strict], [term lax], or [term none] (default). While the value [term strict] prevents sending the cookie to the target site in all cross-site browsing context, the value of [term lax] allows sending the cookie when the user clicks on regular links. For details, see https://www.owasp.org/index.php/SameSite This cookie flag is not yet part of an RFC, but most major browsers support it. Browsers that do not support it, ignore the flag silently (see https://caniuse.com/#search=samesite). Although most cookies should probably use the flags, in order to provide backward compatibility, the flag can't be activated by default on all cookies. " "openacs-4/packages/acs-tcl/tcl/utilities-procs-naviserver.tcl","1.4.2.1","gustafn",2019/02/17 12:19:29,"oacs-5-10:gustafn:20190217121929","- ad_set_cookie: add option ""-samesite"" and use it, when the server supports it (NaviServer 4.99.18) - use ""-samesite strict"" per default on signed cookies Background from NaviServer commit: ns_setcookie: add flag ""-samesite"" with values ""strict|lax|none"" When the flag is set it prevents the browser from sending this cookie along with cross-site requests to mitigate cross site scripting attacks. Permissible values are [term strict], [term lax], or [term none] (default). While the value [term strict] prevents sending the cookie to the target site in all cross-site browsing context, the value of [term lax] allows sending the cookie when the user clicks on regular links. For details, see https://www.owasp.org/index.php/SameSite This cookie flag is not yet part of an RFC, but most major browsers support it. Browsers that do not support it, ignore the flag silently (see https://caniuse.com/#search=samesite). Although most cookies should probably use the flags, in order to provide backward compatibility, the flag can't be activated by default on all cookies. " "openacs-4/packages/acs-subsite/www/shared/ajax/chat.tcl","1.1.2.2","antoniop",2019/06/13 09:03:52,"oacs-5-10:antoniop:20190613090352","Make sure connection channel is available (e.g. not detached) before returning content, as more recent Naviserver versions would return an error " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.189.2.22","gustafn",2019/08/04 17:59:38,"oacs-5-10:gustafn:20190804175938","NaviServer handles no continuation lines in a secure way, no need to make multiple log-entries " "openacs-4/packages/acs-developer-support/www/index.tcl","1.23.2.2","gustafn",2019/08/19 17:46:54,"oacs-5-10:gustafn:20190819174654","add nsshell when available. making nsshell available: a) install nsshell from https://bitbucket.org/naviserver/nsshell/ b) configure in your OpenACS config file nsshell: ################################################################## # # nsshell configuration (per-server module) # ns_section ""ns/server/${server}/modules"" { ns_param nsshell tcl } ns_section ""ns/server/${server}/module/nsshell"" { ns_param url /admin//nsshell ns_param kernel_heartbeat 5 ns_param kernel_timeout 10 } ################################################################## " "openacs-4/packages/acs-developer-support/www/nsshell.adp","1.1.2.1","gustafn",2019/08/19 17:46:54,"oacs-5-10:gustafn:20190819174654","add nsshell when available. making nsshell available: a) install nsshell from https://bitbucket.org/naviserver/nsshell/ b) configure in your OpenACS config file nsshell: ################################################################## # # nsshell configuration (per-server module) # ns_section ""ns/server/${server}/modules"" { ns_param nsshell tcl } ns_section ""ns/server/${server}/module/nsshell"" { ns_param url /admin//nsshell ns_param kernel_heartbeat 5 ns_param kernel_timeout 10 } ################################################################## " "openacs-4/packages/acs-developer-support/www/nsshell.tcl","1.1.2.1","gustafn",2019/08/19 17:46:54,"oacs-5-10:gustafn:20190819174654","add nsshell when available. making nsshell available: a) install nsshell from https://bitbucket.org/naviserver/nsshell/ b) configure in your OpenACS config file nsshell: ################################################################## # # nsshell configuration (per-server module) # ns_section ""ns/server/${server}/modules"" { ns_param nsshell tcl } ns_section ""ns/server/${server}/module/nsshell"" { ns_param url /admin//nsshell ns_param kernel_heartbeat 5 ns_param kernel_timeout 10 } ################################################################## " "openacs-4/packages/acs-tcl/tcl/test/naviserver-api-procs.tcl","1.1","antoniop",2019/09/04 11:51:58,"MAIN:antoniop:20190904115158","file naviserver-api-procs.tcl was initially added on branch oacs-5-10. " "openacs-4/packages/acs-tcl/tcl/utilities-procs-naviserver.tcl","1.4.2.5","gustafn",2019/10/20 12:52:52,"oacs-5-10:gustafn:20191020125252","- Fix a tricky Tcl_Obj sharing bug triggered by the usage of C-level IndexObjs based on volatile tables. Consider the following example: proc foo {x} { return [bar -value x ...] } The Tcl_Obj ""x"" is shared as name of argument and as a value of the non-positional parameter ""-value"". When bar (e.g. C-implemented) uses Tcl_GetIndexFromObj*() to lookup ""x"" in a table of options, which is volatile, the involved Tcl_Obj will be converted to an indexObj. On a call with wrong number of arguments( e.g.""foo 1 2 3""), Tcl will try to give a nice error message, saying that ""foo x"" can be called only with one argument. When printing argument ""x"", it sees that ""x"" is an indexObj, and for these kinds of objects, ""x"" might be an abbreviated version of a full name. Since the table behind the indexObj is in the case above volatile, a crash might happen. The committed fix above is just a temporary measure. NaviServer should try to avoid such Tcl_Obj conversions in these cases. It is also questionable, whether the attempt to interpret a argument name as an abbreviated. " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.189.2.49","gustafn",2020/02/01 09:44:14,"oacs-5-10:gustafn:20200201094414","provide compatibility wrappers for AOLserver and NaviServer before 4.99.17 " "openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl","1.108.2.3","gustafn",2020/04/05 16:02:55,"oacs-5-10:gustafn:20200405160255","Use optionally nssmtpd as different mail delivery agent when the ""-experimental"" flag is provided to acs_mail_lite::send_immediately, and the NaviServer nssmtpd modules is installed. " "openacs-4/packages/acs-mail-lite/acs-mail-lite.info","1.62.2.1","gustafn",2020/04/06 17:49:47,"oacs-5-10:gustafn:20200406174947","- acs_mail_lite::send_immediately: new switch for ""-force_delivery_mode"" to force delivery mode for a single call (ignoring package parameter ""EmailDeliveryMode"") - New potential value for ""EmailDeliveryMode"": ""nssmtpd"" When this parameter is specified, the behavior is like ""smtp"", but the code tries use the SMTP implementation of the nssmtpd NaviServer module. - It is also possible to combine ""nssmtpd"" with the delivery methods ""filter"" or ""redirect"" simply by writing e.g. ""filter nssmtpd"" - some refactoring to avoid repeated code " "openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl","1.108.2.4","gustafn",2020/04/06 17:49:47,"oacs-5-10:gustafn:20200406174947","- acs_mail_lite::send_immediately: new switch for ""-force_delivery_mode"" to force delivery mode for a single call (ignoring package parameter ""EmailDeliveryMode"") - New potential value for ""EmailDeliveryMode"": ""nssmtpd"" When this parameter is specified, the behavior is like ""smtp"", but the code tries use the SMTP implementation of the nssmtpd NaviServer module. - It is also possible to combine ""nssmtpd"" with the delivery methods ""filter"" or ""redirect"" simply by writing e.g. ""filter nssmtpd"" - some refactoring to avoid repeated code " "openacs-4/packages/acs-tcl/acs-tcl.info","1.95.2.9","gustafn",2020/05/03 16:32:10,"oacs-5-10:gustafn:20200503163210","provide compatibility function ns_dbquotelist, which is available in newer versions of NaviServer " "openacs-4/packages/acs-tcl/tcl/01-database-procs.tcl","1.1.2.7","gustafn",2020/05/03 16:32:10,"oacs-5-10:gustafn:20200503163210","provide compatibility function ns_dbquotelist, which is available in newer versions of NaviServer " "openacs-4/packages/acs-lang/tcl/lang-message-procs.tcl","1.68.2.6","gustafn",2020/06/06 12:44:55,"oacs-5-10:gustafn:20200606124455","reduced the number of mutex locks for message keys lookup by a factor of two by using naviserver commands " "openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl","1.108.2.13","hectorr",2020/11/12 14:56:36,"oacs-5-10:hectorr:20201112145636","Remove the 'dot-stuffing' from 'acs-mail-lite', as this is done directly on 'nssmtpd' and 'ns_smtp' now. See https://bitbucket.org/naviserver/naviserver/commits/4bdbd53a3c36f60b8ec0c4e400de1b69bf3e19e5 and https://bitbucket.org/naviserver/nssmtpd/commits/d484ba5d41364c1a0ab8e2437c5311a6d5d7e986 " "openacs-4/packages/acs-tcl/tcl/http-client-procs.tcl","1.30.2.12","antoniop",2021/01/13 11:00:18,"oacs-5-10:antoniop:20210113110018","Tear down a lot of boilerplate used to support native HTTP api on Naviserver versions < 4.99.15, which will now fallback to curl " "openacs-4/packages/acs-tcl/tcl/test/http-client-procs.tcl","1.1.2.13","antoniop",2021/01/13 11:00:18,"oacs-5-10:antoniop:20210113110018","Tear down a lot of boilerplate used to support native HTTP api on Naviserver versions < 4.99.15, which will now fallback to curl " "openacs-4/packages/acs-tcl/tcl/apm-file-procs.tcl","1.45.2.6","antoniop",2021/01/13 13:10:29,"oacs-5-10:antoniop:20210113131029","util::http should provide enough fallback via curl already without targeting specific Naviserver versions, use other fallbacks only when no implementation is available " "openacs-4/packages/acs-tcl/tcl/http-client-procs.tcl","1.30.2.15","antoniop",2021/01/13 13:10:29,"oacs-5-10:antoniop:20210113131029","util::http should provide enough fallback via curl already without targeting specific Naviserver versions, use other fallbacks only when no implementation is available " "openacs-4/packages/acs-tcl/tcl/test/00-icanuse-procs.tcl","1.1.2.3","antoniop",2021/01/14 14:30:13,"oacs-5-10:antoniop:20210114143013","Extend test to expose that we need a better idiom to detect also NaviServer commands " "openacs-4/packages/acs-tcl/tcl/00-icanuse-procs.tcl","1.1.2.21","antoniop",2021/01/14 14:32:19,"oacs-5-10:antoniop:20210114143219","Change the regexp so that we catch multiple kinds of error pattern indicating the subcommand does not exist: NaviServer and Tcl return sligthly different error messages " "openacs-4/packages/acs-tcl/tcl/00-icanuse-procs.tcl","1.1.2.22","antoniop",2021/01/14 14:40:33,"oacs-5-10:antoniop:20210114144033","Do not improperly rely on apm_version_names_compare to check for NaviServer version number, use a more reliable capability check instead " "openacs-4/packages/acs-tcl/tcl/http-client-procs.tcl","1.30.2.17","antoniop",2021/01/14 14:40:33,"oacs-5-10:antoniop:20210114144033","Do not improperly rely on apm_version_names_compare to check for NaviServer version number, use a more reliable capability check instead " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.189.2.74","gustafn",2021/01/29 15:37:23,"oacs-5-10:gustafn:20210129153723","util_return_headers: align the behavior under AOLserver with NaviServer " "openacs-4/packages/acs-tcl/tcl/00-icanuse-procs.tcl","1.1.2.24","gustafn",2021/02/17 20:51:42,"oacs-5-10:gustafn:20210217205142","make use of built-in reverse proxy mode of newer versions of NaviServer " "openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl","1.153.2.31","gustafn",2021/02/17 20:51:42,"oacs-5-10:gustafn:20210217205142","make use of built-in reverse proxy mode of newer versions of NaviServer " "openacs-4/packages/acs-bootstrap-installer/tcl/40-db-query-dispatcher-procs.tcl","1.49.2.14","gustafn",2021/03/01 10:43:10,"oacs-5-10:gustafn:20210301104310","reduce the number of locks (nsv-accesses) for OACS_FULLQUERIES by a factor of 3 when NaviServer is used. OACS_FULLQUERIES is one of the 3 most intensively locked nsv arrays for busy implementation " "openacs-4/packages/acs-datetime/tcl/acs-calendar-procs.tcl","1.31.2.1","antoniop",2021/03/11 10:14:52,"oacs-5-10:antoniop:20210311101452","Use naviserver api to parse URL variables " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.189.2.82","antoniop",2021/03/11 10:24:24,"oacs-5-10:antoniop:20210311101452","Use naviserver api to parse URL variables " "openacs-4/packages/acs-tcl/tcl/http-client-procs.tcl","1.30.2.19","antoniop",2021/03/11 10:46:39,"oacs-5-10:antoniop:20210311104639","Use naviserver api to parse URL variables " "openacs-4/packages/acs-admin/tcl/acs-admin-procs.tcl","1.2.2.5","gustafn",2021/07/20 09:17:27,"oacs-5-10:gustafn:20210720091727","check_expired_certificates: automated certificate nenewal for letsencrypt This change reduce maintenance effort by automating certificate renewal. When the NaviServer letsencrypt module is installed and configured, the background operation check_expired_certificates will automatically update the certificates when these expire soon (as defined by the ""ExpireCertificateWarningPeriod"" parameter of acs-admin). When a recent version of NaviServer is used that supports certificate refetch on SIGHUP, the new certificates are automatically updated without a server restart. Prerequisites: - Recent version of letsencrypt NaviServer module installed (0.6) and configured - Recent version of NaviServer (currently Bitbucket tip) for automated certificate reloading When the recent letsencrypt module is not installed, check_expired_certificates sends expiration warnings as usual. Therefore, it is also useful for sites using certificates from different sources. This new functionality was used for latest certificate renewal on openacs.org. " "openacs-4/packages/acs-tcl/tcl/00-icanuse-procs.tcl","1.1.2.28","gustafn",2021/08/03 19:22:00,"oacs-5-10:gustafn:20210803192200","provide a compatibility function for ns_parsehostport for earlier versions of NaviServer " "openacs-4/packages/acs-tcl/tcl/acs-cache-procs.tcl","1.10.2.15","gustafn",2021/09/24 11:31:03,"oacs-5-10:gustafn:20210924113103","let the per_thread_cache behave like the per_connection_cache when the NaviServer configuration valriable ""cachingmode"" is set to none " "openacs-4/packages/acs-tcl/acs-tcl.info","1.95.2.31","gustafn",2021/09/28 12:46:47,"oacs-5-10:gustafn:20210928124647","Stronger password hashes for OpenACS This change introduces the possibility to use either the classical OpenACS password hash algorithm ""salted-sha1"" or the SCRAM passord function ""scram-sha-256"". The latter can be used by (a) using the most recent version of NaviServer (from Sept 28, 2021 or newer) and (b) by configuring the password hash preferences via Kernel package parameter ""PasswordHashAlgorithm"". The package parameter can contain a list of multiple hash algorithms in preference order. The most preferred available algorithm is chosen. By default, the ""PasswordHashAlgorithm"" is ""salted-sha1"", and the behavior is as before. After upgrading to the new version of acs-tcl and acs-kernel, the preference list can be configured. When a user logs in and the preferred available algorithm is different from the previously used algorithm, the upgrade is performed for the user automatically. The usage of SHA1 in OpenACS is easily target of security audits (see [1]). The biggest danger is that if somebody gets full access to the ""users"" table (e.g. when decommissioning a hard disk). In this case the hashes can be attacked with dictionaries by using some crypto hardware (when someone gets raw access to the DB, one has usually some other big problems). However, by using the ""scram-sha-256"" hash function this danger is substantially reduced. This function computes a password hash using PBKDF2 (Password-Based Key Derivation Function 2). This function is used to reduce vulnerabilities of brute-force attacks against password hashes. The hash function of SCRAM is PBKDF2 [RFC2898] with HMAC as the pseudorandom function (PRF) and with dkLen == output length of HMAC == output length of the digest function. So, it uses a better hash algorithm (sha-256 vs. sha1) and applies this a high number of times (15K times for a password hash computation). NaviServer supports as well the even better SCRYPT algorithm, but this is only available when NaviServer is compiled with OpenSSL 3.0 or newer. On the contrary, scram-sha-256 (actually PKCS5_PBKDF2_HMAC) is available since OpenSSL 1.0.0 (2015). All the improved hash functions require NaviServer with its tight integration to the crypto functions of OpenSSL. [1] https://openacs.org/forums/message-view?message_id=5522562 " "openacs-4/packages/acs-kernel/acs-kernel.info","1.150.2.34","gustafn",2021/09/28 12:46:48,"oacs-5-10:gustafn:20210928124647","Stronger password hashes for OpenACS This change introduces the possibility to use either the classical OpenACS password hash algorithm ""salted-sha1"" or the SCRAM passord function ""scram-sha-256"". The latter can be used by (a) using the most recent version of NaviServer (from Sept 28, 2021 or newer) and (b) by configuring the password hash preferences via Kernel package parameter ""PasswordHashAlgorithm"". The package parameter can contain a list of multiple hash algorithms in preference order. The most preferred available algorithm is chosen. By default, the ""PasswordHashAlgorithm"" is ""salted-sha1"", and the behavior is as before. After upgrading to the new version of acs-tcl and acs-kernel, the preference list can be configured. When a user logs in and the preferred available algorithm is different from the previously used algorithm, the upgrade is performed for the user automatically. The usage of SHA1 in OpenACS is easily target of security audits (see [1]). The biggest danger is that if somebody gets full access to the ""users"" table (e.g. when decommissioning a hard disk). In this case the hashes can be attacked with dictionaries by using some crypto hardware (when someone gets raw access to the DB, one has usually some other big problems). However, by using the ""scram-sha-256"" hash function this danger is substantially reduced. This function computes a password hash using PBKDF2 (Password-Based Key Derivation Function 2). This function is used to reduce vulnerabilities of brute-force attacks against password hashes. The hash function of SCRAM is PBKDF2 [RFC2898] with HMAC as the pseudorandom function (PRF) and with dkLen == output length of HMAC == output length of the digest function. So, it uses a better hash algorithm (sha-256 vs. sha1) and applies this a high number of times (15K times for a password hash computation). NaviServer supports as well the even better SCRYPT algorithm, but this is only available when NaviServer is compiled with OpenSSL 3.0 or newer. On the contrary, scram-sha-256 (actually PKCS5_PBKDF2_HMAC) is available since OpenSSL 1.0.0 (2015). All the improved hash functions require NaviServer with its tight integration to the crypto functions of OpenSSL. [1] https://openacs.org/forums/message-view?message_id=5522562 " "openacs-4/packages/acs-tcl/tcl/00-icanuse-procs.tcl","1.1.2.29","gustafn",2021/09/28 12:46:48,"oacs-5-10:gustafn:20210928124647","Stronger password hashes for OpenACS This change introduces the possibility to use either the classical OpenACS password hash algorithm ""salted-sha1"" or the SCRAM passord function ""scram-sha-256"". The latter can be used by (a) using the most recent version of NaviServer (from Sept 28, 2021 or newer) and (b) by configuring the password hash preferences via Kernel package parameter ""PasswordHashAlgorithm"". The package parameter can contain a list of multiple hash algorithms in preference order. The most preferred available algorithm is chosen. By default, the ""PasswordHashAlgorithm"" is ""salted-sha1"", and the behavior is as before. After upgrading to the new version of acs-tcl and acs-kernel, the preference list can be configured. When a user logs in and the preferred available algorithm is different from the previously used algorithm, the upgrade is performed for the user automatically. The usage of SHA1 in OpenACS is easily target of security audits (see [1]). The biggest danger is that if somebody gets full access to the ""users"" table (e.g. when decommissioning a hard disk). In this case the hashes can be attacked with dictionaries by using some crypto hardware (when someone gets raw access to the DB, one has usually some other big problems). However, by using the ""scram-sha-256"" hash function this danger is substantially reduced. This function computes a password hash using PBKDF2 (Password-Based Key Derivation Function 2). This function is used to reduce vulnerabilities of brute-force attacks against password hashes. The hash function of SCRAM is PBKDF2 [RFC2898] with HMAC as the pseudorandom function (PRF) and with dkLen == output length of HMAC == output length of the digest function. So, it uses a better hash algorithm (sha-256 vs. sha1) and applies this a high number of times (15K times for a password hash computation). NaviServer supports as well the even better SCRYPT algorithm, but this is only available when NaviServer is compiled with OpenSSL 3.0 or newer. On the contrary, scram-sha-256 (actually PKCS5_PBKDF2_HMAC) is available since OpenSSL 1.0.0 (2015). All the improved hash functions require NaviServer with its tight integration to the crypto functions of OpenSSL. [1] https://openacs.org/forums/message-view?message_id=5522562 " "openacs-4/packages/acs-tcl/tcl/security-procs.tcl","1.126.2.53","gustafn",2021/09/28 12:46:48,"oacs-5-10:gustafn:20210928124647","Stronger password hashes for OpenACS This change introduces the possibility to use either the classical OpenACS password hash algorithm ""salted-sha1"" or the SCRAM passord function ""scram-sha-256"". The latter can be used by (a) using the most recent version of NaviServer (from Sept 28, 2021 or newer) and (b) by configuring the password hash preferences via Kernel package parameter ""PasswordHashAlgorithm"". The package parameter can contain a list of multiple hash algorithms in preference order. The most preferred available algorithm is chosen. By default, the ""PasswordHashAlgorithm"" is ""salted-sha1"", and the behavior is as before. After upgrading to the new version of acs-tcl and acs-kernel, the preference list can be configured. When a user logs in and the preferred available algorithm is different from the previously used algorithm, the upgrade is performed for the user automatically. The usage of SHA1 in OpenACS is easily target of security audits (see [1]). The biggest danger is that if somebody gets full access to the ""users"" table (e.g. when decommissioning a hard disk). In this case the hashes can be attacked with dictionaries by using some crypto hardware (when someone gets raw access to the DB, one has usually some other big problems). However, by using the ""scram-sha-256"" hash function this danger is substantially reduced. This function computes a password hash using PBKDF2 (Password-Based Key Derivation Function 2). This function is used to reduce vulnerabilities of brute-force attacks against password hashes. The hash function of SCRAM is PBKDF2 [RFC2898] with HMAC as the pseudorandom function (PRF) and with dkLen == output length of HMAC == output length of the digest function. So, it uses a better hash algorithm (sha-256 vs. sha1) and applies this a high number of times (15K times for a password hash computation). NaviServer supports as well the even better SCRYPT algorithm, but this is only available when NaviServer is compiled with OpenSSL 3.0 or newer. On the contrary, scram-sha-256 (actually PKCS5_PBKDF2_HMAC) is available since OpenSSL 1.0.0 (2015). All the improved hash functions require NaviServer with its tight integration to the crypto functions of OpenSSL. [1] https://openacs.org/forums/message-view?message_id=5522562 " "openacs-4/packages/acs-tcl/tcl/security-procs.xql","1.10.2.2","gustafn",2021/09/28 12:46:48,"oacs-5-10:gustafn:20210928124647","Stronger password hashes for OpenACS This change introduces the possibility to use either the classical OpenACS password hash algorithm ""salted-sha1"" or the SCRAM passord function ""scram-sha-256"". The latter can be used by (a) using the most recent version of NaviServer (from Sept 28, 2021 or newer) and (b) by configuring the password hash preferences via Kernel package parameter ""PasswordHashAlgorithm"". The package parameter can contain a list of multiple hash algorithms in preference order. The most preferred available algorithm is chosen. By default, the ""PasswordHashAlgorithm"" is ""salted-sha1"", and the behavior is as before. After upgrading to the new version of acs-tcl and acs-kernel, the preference list can be configured. When a user logs in and the preferred available algorithm is different from the previously used algorithm, the upgrade is performed for the user automatically. The usage of SHA1 in OpenACS is easily target of security audits (see [1]). The biggest danger is that if somebody gets full access to the ""users"" table (e.g. when decommissioning a hard disk). In this case the hashes can be attacked with dictionaries by using some crypto hardware (when someone gets raw access to the DB, one has usually some other big problems). However, by using the ""scram-sha-256"" hash function this danger is substantially reduced. This function computes a password hash using PBKDF2 (Password-Based Key Derivation Function 2). This function is used to reduce vulnerabilities of brute-force attacks against password hashes. The hash function of SCRAM is PBKDF2 [RFC2898] with HMAC as the pseudorandom function (PRF) and with dkLen == output length of HMAC == output length of the digest function. So, it uses a better hash algorithm (sha-256 vs. sha1) and applies this a high number of times (15K times for a password hash computation). NaviServer supports as well the even better SCRYPT algorithm, but this is only available when NaviServer is compiled with OpenSSL 3.0 or newer. On the contrary, scram-sha-256 (actually PKCS5_PBKDF2_HMAC) is available since OpenSSL 1.0.0 (2015). All the improved hash functions require NaviServer with its tight integration to the crypto functions of OpenSSL. [1] https://openacs.org/forums/message-view?message_id=5522562 " "openacs-4/packages/acs-kernel/sql/oracle/upgrade/upgrade-5.10.0-5.10.1d1.sql","1.1.2.1","gustafn",2021/09/28 12:46:49,"oacs-5-10:gustafn:20210928124647","Stronger password hashes for OpenACS This change introduces the possibility to use either the classical OpenACS password hash algorithm ""salted-sha1"" or the SCRAM passord function ""scram-sha-256"". The latter can be used by (a) using the most recent version of NaviServer (from Sept 28, 2021 or newer) and (b) by configuring the password hash preferences via Kernel package parameter ""PasswordHashAlgorithm"". The package parameter can contain a list of multiple hash algorithms in preference order. The most preferred available algorithm is chosen. By default, the ""PasswordHashAlgorithm"" is ""salted-sha1"", and the behavior is as before. After upgrading to the new version of acs-tcl and acs-kernel, the preference list can be configured. When a user logs in and the preferred available algorithm is different from the previously used algorithm, the upgrade is performed for the user automatically. The usage of SHA1 in OpenACS is easily target of security audits (see [1]). The biggest danger is that if somebody gets full access to the ""users"" table (e.g. when decommissioning a hard disk). In this case the hashes can be attacked with dictionaries by using some crypto hardware (when someone gets raw access to the DB, one has usually some other big problems). However, by using the ""scram-sha-256"" hash function this danger is substantially reduced. This function computes a password hash using PBKDF2 (Password-Based Key Derivation Function 2). This function is used to reduce vulnerabilities of brute-force attacks against password hashes. The hash function of SCRAM is PBKDF2 [RFC2898] with HMAC as the pseudorandom function (PRF) and with dkLen == output length of HMAC == output length of the digest function. So, it uses a better hash algorithm (sha-256 vs. sha1) and applies this a high number of times (15K times for a password hash computation). NaviServer supports as well the even better SCRYPT algorithm, but this is only available when NaviServer is compiled with OpenSSL 3.0 or newer. On the contrary, scram-sha-256 (actually PKCS5_PBKDF2_HMAC) is available since OpenSSL 1.0.0 (2015). All the improved hash functions require NaviServer with its tight integration to the crypto functions of OpenSSL. [1] https://openacs.org/forums/message-view?message_id=5522562 " "openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.10.0-5.10.1d1.sql","1.1.2.1","gustafn",2021/09/28 12:46:49,"oacs-5-10:gustafn:20210928124647","Stronger password hashes for OpenACS This change introduces the possibility to use either the classical OpenACS password hash algorithm ""salted-sha1"" or the SCRAM passord function ""scram-sha-256"". The latter can be used by (a) using the most recent version of NaviServer (from Sept 28, 2021 or newer) and (b) by configuring the password hash preferences via Kernel package parameter ""PasswordHashAlgorithm"". The package parameter can contain a list of multiple hash algorithms in preference order. The most preferred available algorithm is chosen. By default, the ""PasswordHashAlgorithm"" is ""salted-sha1"", and the behavior is as before. After upgrading to the new version of acs-tcl and acs-kernel, the preference list can be configured. When a user logs in and the preferred available algorithm is different from the previously used algorithm, the upgrade is performed for the user automatically. The usage of SHA1 in OpenACS is easily target of security audits (see [1]). The biggest danger is that if somebody gets full access to the ""users"" table (e.g. when decommissioning a hard disk). In this case the hashes can be attacked with dictionaries by using some crypto hardware (when someone gets raw access to the DB, one has usually some other big problems). However, by using the ""scram-sha-256"" hash function this danger is substantially reduced. This function computes a password hash using PBKDF2 (Password-Based Key Derivation Function 2). This function is used to reduce vulnerabilities of brute-force attacks against password hashes. The hash function of SCRAM is PBKDF2 [RFC2898] with HMAC as the pseudorandom function (PRF) and with dkLen == output length of HMAC == output length of the digest function. So, it uses a better hash algorithm (sha-256 vs. sha1) and applies this a high number of times (15K times for a password hash computation). NaviServer supports as well the even better SCRYPT algorithm, but this is only available when NaviServer is compiled with OpenSSL 3.0 or newer. On the contrary, scram-sha-256 (actually PKCS5_PBKDF2_HMAC) is available since OpenSSL 1.0.0 (2015). All the improved hash functions require NaviServer with its tight integration to the crypto functions of OpenSSL. [1] https://openacs.org/forums/message-view?message_id=5522562 " "openacs-4/packages/acs-tcl/tcl/01-database-procs.tcl","1.1.2.31","gustafn",2021/09/30 12:34:12,"oacs-5-10:gustafn:20210930123412","Change caching of driver keys There seems to be a bug in ""db_driverkey"", when OpenACS connects to multiple databases [1]. The situation with ""db_driverkey"" is complicated by the fact that this function is sometimes called with a database name in its argument ""dbn"", and sometimes with a database handle. This is something to look at in the future. The new version removes the per-thread caching, which was introduced to reduce the high number of mutex locks caused in busy machines. The new version is better by a factor of 2 than older versions, but relies on NaviServer. [1] https://openacs.org/forums/message-view?message_id=5537865 " "openacs-4/packages/acs-tcl/tcl/security-procs.tcl","1.126.2.56","gustafn",2021/10/03 18:13:38,"oacs-5-10:gustafn:20211003181338","added support for SCRYPT (RFC 7914) as password hash function. The use of scrypt requires NaviServer compiled with OpenSSL 3.0 or newer " "openacs-4/packages/acs-kernel/acs-kernel.info","1.150.2.37","gustafn",2021/10/03 18:13:39,"oacs-5-10:gustafn:20211003181338","added support for SCRYPT (RFC 7914) as password hash function. The use of scrypt requires NaviServer compiled with OpenSSL 3.0 or newer " "openacs-4/packages/acs-api-browser/acs-api-browser.info","1.40.2.6","gustafn",2021/10/29 10:35:59,"oacs-5-10:gustafn:20211029103559","added support for ""ns_trim -prefix"". The command is predefined in NaviServer; if not available, a comatibility version is added. This change also mitigates a potential memory-leak problem in nsv_dict with certain versions of NaviServer which might lead on busy sites to problems. " "openacs-4/packages/acs-api-browser/tcl/acs-api-documentation-procs.tcl","1.72.2.35","gustafn",2021/10/29 10:35:59,"oacs-5-10:gustafn:20211029103559","added support for ""ns_trim -prefix"". The command is predefined in NaviServer; if not available, a comatibility version is added. This change also mitigates a potential memory-leak problem in nsv_dict with certain versions of NaviServer which might lead on busy sites to problems. " "openacs-4/packages/acs-tcl/acs-tcl.info","1.95.2.35","gustafn",2021/10/29 10:35:59,"oacs-5-10:gustafn:20211029103559","added support for ""ns_trim -prefix"". The command is predefined in NaviServer; if not available, a comatibility version is added. This change also mitigates a potential memory-leak problem in nsv_dict with certain versions of NaviServer which might lead on busy sites to problems. " "openacs-4/packages/acs-tcl/tcl/00-icanuse-procs.tcl","1.1.2.30","gustafn",2021/10/29 10:35:59,"oacs-5-10:gustafn:20211029103559","added support for ""ns_trim -prefix"". The command is predefined in NaviServer; if not available, a comatibility version is added. This change also mitigates a potential memory-leak problem in nsv_dict with certain versions of NaviServer which might lead on busy sites to problems. " "openacs-4/packages/acs-tcl/tcl/00-icanuse-procs.tcl","1.1.2.36","gustafn",2022/01/22 12:09:30,"oacs-5-10:gustafn:20220122120930","Modernize parameter parsing (query and includelet paramters) - handle invalid UTF-8 exception that might be triggered by ""ns_parsequery"" in newer versions of NaviServer - the new code is about 4 times faster than the old one - replaced array by dict - don't create helper procs on the fly but use ""nsf::parseargs"" if possible - added icanuse rules for * ""nsf::parseargs -asdict"" * ""ns_parsequery -charset"" " "openacs-4/packages/acs-content-repository/tcl/test/content-search-procs.tcl","1.6.2.4","antoniop",2022/01/27 09:23:58,"oacs-5-10:antoniop:20220127092358","Deprecate template::util::tcl_to_sql_list, completely replaced by ns_dbquotelist, a native NaviServer command " "openacs-4/packages/acs-subsite/www/permissions/perm-modify.xql","1.2.26.2","antoniop",2022/01/27 09:23:58,"oacs-5-10:antoniop:20220127092358","Deprecate template::util::tcl_to_sql_list, completely replaced by ns_dbquotelist, a native NaviServer command " "openacs-4/packages/acs-tcl/tcl/application-data-link-procs.xql","1.7.8.1","antoniop",2022/01/27 09:23:58,"oacs-5-10:antoniop:20220127092358","Deprecate template::util::tcl_to_sql_list, completely replaced by ns_dbquotelist, a native NaviServer command " "openacs-4/packages/acs-templating/tcl/deprecated-procs.tcl","1.8.2.7","antoniop",2022/01/27 09:23:58,"oacs-5-10:antoniop:20220127092358","Deprecate template::util::tcl_to_sql_list, completely replaced by ns_dbquotelist, a native NaviServer command " "openacs-4/packages/acs-templating/tcl/util-procs.tcl","1.43.2.13","antoniop",2022/01/27 09:23:58,"oacs-5-10:antoniop:20220127092358","Deprecate template::util::tcl_to_sql_list, completely replaced by ns_dbquotelist, a native NaviServer command " "openacs-4/packages/acs-templating/tcl/test/parse-test-procs.tcl","1.10.2.2","antoniop",2022/01/27 09:23:59,"oacs-5-10:antoniop:20220127092358","Deprecate template::util::tcl_to_sql_list, completely replaced by ns_dbquotelist, a native NaviServer command " "openacs-4/packages/acs-templating/tcl/parse-procs-aolserver.tcl","1.1.2.1","gustafn",2022/04/07 12:39:28,"oacs-5-10:gustafn:20220407123928","separating naviserver and aolserver specific files " "openacs-4/packages/acs-templating/tcl/parse-procs-naviserver.tcl","1.1.2.1","gustafn",2022/04/07 12:39:28,"oacs-5-10:gustafn:20220407123928","separating naviserver and aolserver specific files " "openacs-4/packages/acs-templating/tcl/parse-procs.tcl","1.65.2.14","gustafn",2022/04/07 12:39:28,"oacs-5-10:gustafn:20220407123928","separating naviserver and aolserver specific files " "openacs-4/packages/acs-templating/tcl/parse-procs-naviserver.tcl","1.1","gustafn",2022/04/07 12:39:28,"MAIN:gustafn:20220407123928:1","file parse-procs-naviserver.tcl was initially added on branch oacs-5-10. " "openacs-4/packages/acs-tcl/tcl/00-icanuse-procs.tcl","1.1.2.40","gustafn",2022/05/23 22:01:32,"oacs-5-10:gustafn:20220523220132","Use NaviServer feature ""ns_deletecookie ... -samesite $samesite ..."" when available. " "openacs-4/packages/acs-tcl/tcl/utilities-procs-aolserver.tcl","1.6.2.5","gustafn",2022/05/23 22:01:33,"oacs-5-10:gustafn:20220523220132","Use NaviServer feature ""ns_deletecookie ... -samesite $samesite ..."" when available. " "openacs-4/packages/acs-tcl/tcl/utilities-procs-naviserver.tcl","1.4.2.8","gustafn",2022/05/23 22:01:33,"oacs-5-10:gustafn:20220523220132","Use NaviServer feature ""ns_deletecookie ... -samesite $samesite ..."" when available. " "openacs-4/packages/acs-tcl/tcl/01-database-procs.tcl","1.1.2.38","gustafn",2022/07/20 11:45:57,"oacs-5-10:gustafn:20220720114557","Improved db-functions db_list_of_nssets, db_list_of_lists, and db_foreach These versions were developed in the conjunction with the NaviServer ns_set reform. Especially ns_list_of_lists is improved, since it avoids duplication of the data. This is especially important, when queries return huge amount of data. " "openacs-4/packages/acs-tcl/tcl/01-database-procs.tcl","1.1.2.40","gustafn",2022/08/23 11:10:22,"oacs-5-10:gustafn:20220823111022","Changed ""db_multirow"" to use ""db_list_of_lists"" instead of ""db_list_of_ns_sets"" Thanks to the recent improvements in NaviServer for ""db_list_of_lists"", it is more efficient to use this in ""db_multirow"" (actually in ""db_multirow_helper""). The implementation revealed a bug in ""db_list_of_lists"", when both options ""-columns_var"" and ""-with_headers"" were set. Extended regression test to cover the former bug. " "openacs-4/packages/acs-tcl/tcl/test/db-proc-test-procs.tcl","1.1.2.27","gustafn",2022/08/23 11:10:22,"oacs-5-10:gustafn:20220823111022","Changed ""db_multirow"" to use ""db_list_of_lists"" instead of ""db_list_of_ns_sets"" Thanks to the recent improvements in NaviServer for ""db_list_of_lists"", it is more efficient to use this in ""db_multirow"" (actually in ""db_multirow_helper""). The implementation revealed a bug in ""db_list_of_lists"", when both options ""-columns_var"" and ""-with_headers"" were set. Extended regression test to cover the former bug. " "openacs-4/packages/acs-tcl/tcl/tcl-documentation-procs.tcl","1.61.2.31","antoniop",2022/08/25 16:01:27,"oacs-5-10:antoniop:20220825160127","Extend tmpfile filter to behave in the ""old way"" (default), or in strict mode e.g. tmpfile(strict), enforcing the behavior for tmpfile in Aolserver/Naviserver when a form is processed " "openacs-4/packages/acs-subsite/acs-subsite.info","1.131.2.29","antoniop",2022/08/26 12:06:43,"oacs-5-10:antoniop:20220826120643","tmpfile page contract filter reform: do not allow acs-subsite TmpDir parameter to define where the tmpfolder is located anymore. This MUST be the one configured in the server-wide configuration. Tmpfiles cannot be in a subfolder of the tmpfolder, they MUST be direct children instead. A tmpfile MUST exist beforehand and be owned, be readable and writable by the user running the nsd process. This complies with the definition of a tmpfile by AolServer/NaviServer when they are created to store content coming from a file upload. " "openacs-4/packages/acs-tcl/acs-tcl.info","1.95.2.52","antoniop",2022/08/26 12:06:43,"oacs-5-10:antoniop:20220826120643","tmpfile page contract filter reform: do not allow acs-subsite TmpDir parameter to define where the tmpfolder is located anymore. This MUST be the one configured in the server-wide configuration. Tmpfiles cannot be in a subfolder of the tmpfolder, they MUST be direct children instead. A tmpfile MUST exist beforehand and be owned, be readable and writable by the user running the nsd process. This complies with the definition of a tmpfile by AolServer/NaviServer when they are created to store content coming from a file upload. " "openacs-4/packages/acs-tcl/tcl/security-procs.tcl","1.126.2.74","antoniop",2022/08/26 12:06:43,"oacs-5-10:antoniop:20220826120643","tmpfile page contract filter reform: do not allow acs-subsite TmpDir parameter to define where the tmpfolder is located anymore. This MUST be the one configured in the server-wide configuration. Tmpfiles cannot be in a subfolder of the tmpfolder, they MUST be direct children instead. A tmpfile MUST exist beforehand and be owned, be readable and writable by the user running the nsd process. This complies with the definition of a tmpfile by AolServer/NaviServer when they are created to store content coming from a file upload. " "openacs-4/packages/acs-tcl/tcl/tcl-documentation-procs.tcl","1.61.2.32","antoniop",2022/08/26 12:06:44,"oacs-5-10:antoniop:20220826120643","tmpfile page contract filter reform: do not allow acs-subsite TmpDir parameter to define where the tmpfolder is located anymore. This MUST be the one configured in the server-wide configuration. Tmpfiles cannot be in a subfolder of the tmpfolder, they MUST be direct children instead. A tmpfile MUST exist beforehand and be owned, be readable and writable by the user running the nsd process. This complies with the definition of a tmpfile by AolServer/NaviServer when they are created to store content coming from a file upload. " "openacs-4/packages/acs-tcl/tcl/test/security-procs.tcl","1.1.2.8","antoniop",2022/08/26 12:06:44,"oacs-5-10:antoniop:20220826120643","tmpfile page contract filter reform: do not allow acs-subsite TmpDir parameter to define where the tmpfolder is located anymore. This MUST be the one configured in the server-wide configuration. Tmpfiles cannot be in a subfolder of the tmpfolder, they MUST be direct children instead. A tmpfile MUST exist beforehand and be owned, be readable and writable by the user running the nsd process. This complies with the definition of a tmpfile by AolServer/NaviServer when they are created to store content coming from a file upload. " "openacs-4/packages/acs-tcl/tcl/text-html-procs.tcl","1.109.2.32","gustafn",2022/08/29 11:53:56,"oacs-5-10:gustafn:20220829115356","Use ""ns_parsehtml"" for speed and correctness when available The new NaviServer built-in command ""ns_parsehtml"" is used on several occasions in the code when available, namely in - util_close_html_tags - escaping disallowed HTML tags in ad_text_to_html - util_close_html_tags The command ""util_close_html_tags"" has a long history of troubles, since it was implemented originally based on regular expressions. It was reported in Jan 2009, that the function took on certain forums entries 6 to 9 hours (e.g. /forums/message-view?message_id=357753) to finish. Therefore, at this time a quick version based on tdom was introduced, which reduced at that time the performance to 7.3 seconds. However, the tdom-based version tend to fail on invalid HTML, so it could cover only a few cases. The new ""ns_parsehtml"" is more robust and works very stable on openacs.org with the know problem cases. Furthermore, this version is also significantly faster than the tdom version. " "openacs-4/packages/acs-tcl/tcl/test/html-conversion-procs.tcl","1.20.2.14","gustafn",2022/08/29 11:53:56,"oacs-5-10:gustafn:20220829115356","Use ""ns_parsehtml"" for speed and correctness when available The new NaviServer built-in command ""ns_parsehtml"" is used on several occasions in the code when available, namely in - util_close_html_tags - escaping disallowed HTML tags in ad_text_to_html - util_close_html_tags The command ""util_close_html_tags"" has a long history of troubles, since it was implemented originally based on regular expressions. It was reported in Jan 2009, that the function took on certain forums entries 6 to 9 hours (e.g. /forums/message-view?message_id=357753) to finish. Therefore, at this time a quick version based on tdom was introduced, which reduced at that time the performance to 7.3 seconds. However, the tdom-based version tend to fail on invalid HTML, so it could cover only a few cases. The new ""ns_parsehtml"" is more robust and works very stable on openacs.org with the know problem cases. Furthermore, this version is also significantly faster than the tdom version. " "openacs-4/packages/acs-automated-testing/tcl/aa-test-procs.tcl","1.79.2.61","antoniop",2022/09/02 13:18:20,"oacs-5-10:antoniop:20220902131820","Improve acs::test::form_reply so that when the attributes of a file upload (*.tmpfile or *.content-type) are part of the update argument, it will switch automatically to a multipart request and implement a ""real"" file upload This is important on newer NaviServer versions that will reject any *.tmpfile parameter in a request that was not produced internally after a file upload " "openacs-4/packages/acs-templating/tcl/test/file-procs.tcl","1.1.2.4","antoniop",2022/09/02 13:18:20,"oacs-5-10:antoniop:20220902131820","Improve acs::test::form_reply so that when the attributes of a file upload (*.tmpfile or *.content-type) are part of the update argument, it will switch automatically to a multipart request and implement a ""real"" file upload This is important on newer NaviServer versions that will reject any *.tmpfile parameter in a request that was not produced internally after a file upload " "openacs-4/packages/acs-tcl/tcl/test/doc-check-procs.tcl","1.20.2.28","antoniop",2022/09/13 14:40:30,"oacs-5-10:antoniop:20220913144030","Ignore the ::nsshell namespace: this is a NaviServer module, hence outside the OpenACS source tree " "openacs-4/packages/acs-tcl/acs-tcl.info","1.95.2.54","gustafn",2022/11/26 16:46:34,"oacs-5-10:gustafn:20221126164634","New API ""ad_mktmpdir"" and ""ad_opentmpfile"" Since ""ns_mktemp"" is deprecated (on the C level) and is prone to vulnerabilities. This effects as well ""ad_tmpnam"" in OpenACS, which uses ""ns_mktemp"". Newer C-compilers complain about this more loudly: Due to security concerns inherent in the design of mktemp(3), it is highly recommended that you use mkstemp(3) instead. The security concern is that when ns_mktemp() is used to generate a (unique) file name, which is used for opening a file, an attacker can intercept the running binary and sneak in a different file. Although ns_mktemp() guarantees to return a unique file name, there is no mechanism to prevent another process or an attacker from creating a file with the same name before the application attempts to open it. The problem with using mkstemp() instead is that it has different semantics, since it returns the open file. So one cannot blindly replace these calls, but it requires some refactoring. Unfortunately, this also effects application code, since NaviServer offers ""ns_mktemp"" on the Tcl level. To make it short: one has to separate out different use_cases of ""ad_tmpnam"": (a) use it to obtain a name for creating a file, which is subsequently opened (b) use it to obtain a name for creating a directory (c) use it as a name, providing name as a unique name to some external programs. Case (a) is similar to the ""mkstemp(3)"" recommendation above. For this usage scenario, the call ""file tmpfile..."" in Tcl 8.6 can be used (but it should also respect the configured tmp directory. This function is also very similar to ""ns_opentempdir"" in NaviServer, which uses as well ""file tmpfile"". Therefore, we have created a new API call ""ad_opentmpdir ..."" which respects the OpenACS settings. Case (b) can be addressed by ""file tempdir"" in Tcl 8.7, or by a function in tcllib. The new API function ""ad_mktmpdir"" provides respects the OpenACS settings, and works for Tcl 8.6 or newer. Case (c) is somewhat different, since it just wants to create a unique name. This case has not received a special API so far " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.189.2.158","gustafn",2022/11/26 16:46:34,"oacs-5-10:gustafn:20221126164634","New API ""ad_mktmpdir"" and ""ad_opentmpfile"" Since ""ns_mktemp"" is deprecated (on the C level) and is prone to vulnerabilities. This effects as well ""ad_tmpnam"" in OpenACS, which uses ""ns_mktemp"". Newer C-compilers complain about this more loudly: Due to security concerns inherent in the design of mktemp(3), it is highly recommended that you use mkstemp(3) instead. The security concern is that when ns_mktemp() is used to generate a (unique) file name, which is used for opening a file, an attacker can intercept the running binary and sneak in a different file. Although ns_mktemp() guarantees to return a unique file name, there is no mechanism to prevent another process or an attacker from creating a file with the same name before the application attempts to open it. The problem with using mkstemp() instead is that it has different semantics, since it returns the open file. So one cannot blindly replace these calls, but it requires some refactoring. Unfortunately, this also effects application code, since NaviServer offers ""ns_mktemp"" on the Tcl level. To make it short: one has to separate out different use_cases of ""ad_tmpnam"": (a) use it to obtain a name for creating a file, which is subsequently opened (b) use it to obtain a name for creating a directory (c) use it as a name, providing name as a unique name to some external programs. Case (a) is similar to the ""mkstemp(3)"" recommendation above. For this usage scenario, the call ""file tmpfile..."" in Tcl 8.6 can be used (but it should also respect the configured tmp directory. This function is also very similar to ""ns_opentempdir"" in NaviServer, which uses as well ""file tmpfile"". Therefore, we have created a new API call ""ad_opentmpdir ..."" which respects the OpenACS settings. Case (b) can be addressed by ""file tempdir"" in Tcl 8.7, or by a function in tcllib. The new API function ""ad_mktmpdir"" provides respects the OpenACS settings, and works for Tcl 8.6 or newer. Case (c) is somewhat different, since it just wants to create a unique name. This case has not received a special API so far " "openacs-4/packages/acs-tcl/acs-tcl.info","1.95.2.57","gustafn",2023/02/07 17:50:31,"oacs-5-10:gustafn:20230207175031","Cluster reform - Support for dynamic cluster nodes: Previous versions of OpenACS required to know the IP addresses of the cluster nodes in advance, which is a show-stopper for many cloud applications. The new functionality allows arbitrary nodes to register as client nodes at the canonical server, provided that these know a shared secret. All messages of the intra-cluster talk are now cryptographically signed using this shared secret. In the current version, the shared secret key has to be specified in the NaviServer configuration file (ClusterSecret). Later versions will support the use of other measures such as generated keys, kept as files. Also in the new version it is still possible to use static peer addresses (which do not have to register during startup). - Support for multiple protocols for intra-cluster talk Previous version of OpenACS required the communication of the intra-cluster talk over HTTP. With these changes, multiple protocols are supported. Most prominently HTTPS can be used, which is required by some organization for all web communication, especially for cloud applications. Other protocols might be added later (e.g. UDP). - Nodes (such as the canonical server) can be specified via URL locations. These location specifier have the following advantages over classical IP address and port. * support different protocols (http, https, udp) * support of IP addresses or DNS names * when DNS names map to multiple IP addresses (e.g. multiple IPv4 and/or multiple IPv6 addresses) the new parameter PreferredLocationRegexp can be use to select the wanted. When this regexp does not match any of the addresses, the first address is used. * ports are now optional (except UDP) * for location specifier: https://openacs.org - Support for cluster communication statistics (requires xotcl-request-monitor) These statistics show the amount of intra-server communication. The following statistics are collected per node: - number of broadcast operations - number of send operations (active flushes) - number of receive operation (passive flushes) For N cluster nodes, the send operations are basically the number of broadcast operations times the number of nodes minus one. These statistics can also be used prior to cluster enabling, to obtain the number of potential broadcast operations. Kernel Parameters CanonicalServer : location of the canonical server ClusterAuthorizedIP : obsolete ClusterEnabledP : unchanged ClusterPeerIP : obsolete EnableLoggingP : unchanged PreferredLocationRegexp : new DynamicClusterPeers : new, no not edit Differences between old and new value for ""CanonicalServer"": old: - specify IP address with port - example: 137.208.116.31:443 new: - specify URL location - support different protocols (http, https, udp) - support of IP address or domain name - when domain name maps to different IP addresses (e.g. multiple IPv4 and/or multiple IPv6 addresses) PreferredLocationRegexp can be use to select the wanted. When the provided regexp does not match any of the addresses, take the first address. - port is optional - example: https://openacs.org Sample setup Old: CanonicalServer : 137.208.116.31:443 ClusterAuthorizedIP : 137.208.116.31 ClusterPeerIP : 137.208.116.31:443 137.208.116.31:8443 ClusterEnabledP : 1 EnableLoggingP : 1 New: CanonicalServer : https://openacs.org PreferredLocationRegexp : https:// ClusterEnabledP : 1 EnableLoggingP : 1 # # Cluster secret for intra-cluster communications in NaviServer # configuration file. Clustering will not be enabled if no value is # provided. # ns_section ns/server/$server/acs { # ... ns_param ClusterSecret ""please change me"" } #----------------------------------------------------------------------- # Support for munin statistics # # 1) install munin plugins for naviserver (munin-plugins-ns.git) # 2) add link to the munin plugins (replace ""openacs"" by the name # of your server in the munin configuration) # /etc/munin/plugins/naviserver_openacs_count_cluster -> /usr/share/munin/plugins/naviserver_count # 3) in the plugin plugin configuration (e.g., etc/munin/plugin-conf.d/naviserver) # add a section like the following (again, replace ""openacs"" by the server name you used) # # [naviserver_openacs_count_cluster] # env.title Cluster # env.vars cluster:broadcast cluster:sent cluster:received # # 4) restart munin " "openacs-4/packages/acs-kernel/acs-kernel.info","1.150.2.52","gustafn",2023/02/07 17:50:32,"oacs-5-10:gustafn:20230207175031","Cluster reform - Support for dynamic cluster nodes: Previous versions of OpenACS required to know the IP addresses of the cluster nodes in advance, which is a show-stopper for many cloud applications. The new functionality allows arbitrary nodes to register as client nodes at the canonical server, provided that these know a shared secret. All messages of the intra-cluster talk are now cryptographically signed using this shared secret. In the current version, the shared secret key has to be specified in the NaviServer configuration file (ClusterSecret). Later versions will support the use of other measures such as generated keys, kept as files. Also in the new version it is still possible to use static peer addresses (which do not have to register during startup). - Support for multiple protocols for intra-cluster talk Previous version of OpenACS required the communication of the intra-cluster talk over HTTP. With these changes, multiple protocols are supported. Most prominently HTTPS can be used, which is required by some organization for all web communication, especially for cloud applications. Other protocols might be added later (e.g. UDP). - Nodes (such as the canonical server) can be specified via URL locations. These location specifier have the following advantages over classical IP address and port. * support different protocols (http, https, udp) * support of IP addresses or DNS names * when DNS names map to multiple IP addresses (e.g. multiple IPv4 and/or multiple IPv6 addresses) the new parameter PreferredLocationRegexp can be use to select the wanted. When this regexp does not match any of the addresses, the first address is used. * ports are now optional (except UDP) * for location specifier: https://openacs.org - Support for cluster communication statistics (requires xotcl-request-monitor) These statistics show the amount of intra-server communication. The following statistics are collected per node: - number of broadcast operations - number of send operations (active flushes) - number of receive operation (passive flushes) For N cluster nodes, the send operations are basically the number of broadcast operations times the number of nodes minus one. These statistics can also be used prior to cluster enabling, to obtain the number of potential broadcast operations. Kernel Parameters CanonicalServer : location of the canonical server ClusterAuthorizedIP : obsolete ClusterEnabledP : unchanged ClusterPeerIP : obsolete EnableLoggingP : unchanged PreferredLocationRegexp : new DynamicClusterPeers : new, no not edit Differences between old and new value for ""CanonicalServer"": old: - specify IP address with port - example: 137.208.116.31:443 new: - specify URL location - support different protocols (http, https, udp) - support of IP address or domain name - when domain name maps to different IP addresses (e.g. multiple IPv4 and/or multiple IPv6 addresses) PreferredLocationRegexp can be use to select the wanted. When the provided regexp does not match any of the addresses, take the first address. - port is optional - example: https://openacs.org Sample setup Old: CanonicalServer : 137.208.116.31:443 ClusterAuthorizedIP : 137.208.116.31 ClusterPeerIP : 137.208.116.31:443 137.208.116.31:8443 ClusterEnabledP : 1 EnableLoggingP : 1 New: CanonicalServer : https://openacs.org PreferredLocationRegexp : https:// ClusterEnabledP : 1 EnableLoggingP : 1 # # Cluster secret for intra-cluster communications in NaviServer # configuration file. Clustering will not be enabled if no value is # provided. # ns_section ns/server/$server/acs { # ... ns_param ClusterSecret ""please change me"" } #----------------------------------------------------------------------- # Support for munin statistics # # 1) install munin plugins for naviserver (munin-plugins-ns.git) # 2) add link to the munin plugins (replace ""openacs"" by the name # of your server in the munin configuration) # /etc/munin/plugins/naviserver_openacs_count_cluster -> /usr/share/munin/plugins/naviserver_count # 3) in the plugin plugin configuration (e.g., etc/munin/plugin-conf.d/naviserver) # add a section like the following (again, replace ""openacs"" by the server name you used) # # [naviserver_openacs_count_cluster] # env.title Cluster # env.vars cluster:broadcast cluster:sent cluster:received # # 4) restart munin " "openacs-4/packages/acs-tcl/tcl/cluster-init.tcl","1.1.2.9","gustafn",2023/02/07 17:50:32,"oacs-5-10:gustafn:20230207175031","Cluster reform - Support for dynamic cluster nodes: Previous versions of OpenACS required to know the IP addresses of the cluster nodes in advance, which is a show-stopper for many cloud applications. The new functionality allows arbitrary nodes to register as client nodes at the canonical server, provided that these know a shared secret. All messages of the intra-cluster talk are now cryptographically signed using this shared secret. In the current version, the shared secret key has to be specified in the NaviServer configuration file (ClusterSecret). Later versions will support the use of other measures such as generated keys, kept as files. Also in the new version it is still possible to use static peer addresses (which do not have to register during startup). - Support for multiple protocols for intra-cluster talk Previous version of OpenACS required the communication of the intra-cluster talk over HTTP. With these changes, multiple protocols are supported. Most prominently HTTPS can be used, which is required by some organization for all web communication, especially for cloud applications. Other protocols might be added later (e.g. UDP). - Nodes (such as the canonical server) can be specified via URL locations. These location specifier have the following advantages over classical IP address and port. * support different protocols (http, https, udp) * support of IP addresses or DNS names * when DNS names map to multiple IP addresses (e.g. multiple IPv4 and/or multiple IPv6 addresses) the new parameter PreferredLocationRegexp can be use to select the wanted. When this regexp does not match any of the addresses, the first address is used. * ports are now optional (except UDP) * for location specifier: https://openacs.org - Support for cluster communication statistics (requires xotcl-request-monitor) These statistics show the amount of intra-server communication. The following statistics are collected per node: - number of broadcast operations - number of send operations (active flushes) - number of receive operation (passive flushes) For N cluster nodes, the send operations are basically the number of broadcast operations times the number of nodes minus one. These statistics can also be used prior to cluster enabling, to obtain the number of potential broadcast operations. Kernel Parameters CanonicalServer : location of the canonical server ClusterAuthorizedIP : obsolete ClusterEnabledP : unchanged ClusterPeerIP : obsolete EnableLoggingP : unchanged PreferredLocationRegexp : new DynamicClusterPeers : new, no not edit Differences between old and new value for ""CanonicalServer"": old: - specify IP address with port - example: 137.208.116.31:443 new: - specify URL location - support different protocols (http, https, udp) - support of IP address or domain name - when domain name maps to different IP addresses (e.g. multiple IPv4 and/or multiple IPv6 addresses) PreferredLocationRegexp can be use to select the wanted. When the provided regexp does not match any of the addresses, take the first address. - port is optional - example: https://openacs.org Sample setup Old: CanonicalServer : 137.208.116.31:443 ClusterAuthorizedIP : 137.208.116.31 ClusterPeerIP : 137.208.116.31:443 137.208.116.31:8443 ClusterEnabledP : 1 EnableLoggingP : 1 New: CanonicalServer : https://openacs.org PreferredLocationRegexp : https:// ClusterEnabledP : 1 EnableLoggingP : 1 # # Cluster secret for intra-cluster communications in NaviServer # configuration file. Clustering will not be enabled if no value is # provided. # ns_section ns/server/$server/acs { # ... ns_param ClusterSecret ""please change me"" } #----------------------------------------------------------------------- # Support for munin statistics # # 1) install munin plugins for naviserver (munin-plugins-ns.git) # 2) add link to the munin plugins (replace ""openacs"" by the name # of your server in the munin configuration) # /etc/munin/plugins/naviserver_openacs_count_cluster -> /usr/share/munin/plugins/naviserver_count # 3) in the plugin plugin configuration (e.g., etc/munin/plugin-conf.d/naviserver) # add a section like the following (again, replace ""openacs"" by the server name you used) # # [naviserver_openacs_count_cluster] # env.title Cluster # env.vars cluster:broadcast cluster:sent cluster:received # # 4) restart munin " "openacs-4/packages/acs-tcl/tcl/cluster-procs.tcl","1.1.2.5","gustafn",2023/02/07 17:50:32,"oacs-5-10:gustafn:20230207175031","Cluster reform - Support for dynamic cluster nodes: Previous versions of OpenACS required to know the IP addresses of the cluster nodes in advance, which is a show-stopper for many cloud applications. The new functionality allows arbitrary nodes to register as client nodes at the canonical server, provided that these know a shared secret. All messages of the intra-cluster talk are now cryptographically signed using this shared secret. In the current version, the shared secret key has to be specified in the NaviServer configuration file (ClusterSecret). Later versions will support the use of other measures such as generated keys, kept as files. Also in the new version it is still possible to use static peer addresses (which do not have to register during startup). - Support for multiple protocols for intra-cluster talk Previous version of OpenACS required the communication of the intra-cluster talk over HTTP. With these changes, multiple protocols are supported. Most prominently HTTPS can be used, which is required by some organization for all web communication, especially for cloud applications. Other protocols might be added later (e.g. UDP). - Nodes (such as the canonical server) can be specified via URL locations. These location specifier have the following advantages over classical IP address and port. * support different protocols (http, https, udp) * support of IP addresses or DNS names * when DNS names map to multiple IP addresses (e.g. multiple IPv4 and/or multiple IPv6 addresses) the new parameter PreferredLocationRegexp can be use to select the wanted. When this regexp does not match any of the addresses, the first address is used. * ports are now optional (except UDP) * for location specifier: https://openacs.org - Support for cluster communication statistics (requires xotcl-request-monitor) These statistics show the amount of intra-server communication. The following statistics are collected per node: - number of broadcast operations - number of send operations (active flushes) - number of receive operation (passive flushes) For N cluster nodes, the send operations are basically the number of broadcast operations times the number of nodes minus one. These statistics can also be used prior to cluster enabling, to obtain the number of potential broadcast operations. Kernel Parameters CanonicalServer : location of the canonical server ClusterAuthorizedIP : obsolete ClusterEnabledP : unchanged ClusterPeerIP : obsolete EnableLoggingP : unchanged PreferredLocationRegexp : new DynamicClusterPeers : new, no not edit Differences between old and new value for ""CanonicalServer"": old: - specify IP address with port - example: 137.208.116.31:443 new: - specify URL location - support different protocols (http, https, udp) - support of IP address or domain name - when domain name maps to different IP addresses (e.g. multiple IPv4 and/or multiple IPv6 addresses) PreferredLocationRegexp can be use to select the wanted. When the provided regexp does not match any of the addresses, take the first address. - port is optional - example: https://openacs.org Sample setup Old: CanonicalServer : 137.208.116.31:443 ClusterAuthorizedIP : 137.208.116.31 ClusterPeerIP : 137.208.116.31:443 137.208.116.31:8443 ClusterEnabledP : 1 EnableLoggingP : 1 New: CanonicalServer : https://openacs.org PreferredLocationRegexp : https:// ClusterEnabledP : 1 EnableLoggingP : 1 # # Cluster secret for intra-cluster communications in NaviServer # configuration file. Clustering will not be enabled if no value is # provided. # ns_section ns/server/$server/acs { # ... ns_param ClusterSecret ""please change me"" } #----------------------------------------------------------------------- # Support for munin statistics # # 1) install munin plugins for naviserver (munin-plugins-ns.git) # 2) add link to the munin plugins (replace ""openacs"" by the name # of your server in the munin configuration) # /etc/munin/plugins/naviserver_openacs_count_cluster -> /usr/share/munin/plugins/naviserver_count # 3) in the plugin plugin configuration (e.g., etc/munin/plugin-conf.d/naviserver) # add a section like the following (again, replace ""openacs"" by the server name you used) # # [naviserver_openacs_count_cluster] # env.title Cluster # env.vars cluster:broadcast cluster:sent cluster:received # # 4) restart munin " "openacs-4/packages/acs-tcl/tcl/server-cluster-procs.tcl","1.10.2.7","gustafn",2023/02/07 17:50:32,"oacs-5-10:gustafn:20230207175031","Cluster reform - Support for dynamic cluster nodes: Previous versions of OpenACS required to know the IP addresses of the cluster nodes in advance, which is a show-stopper for many cloud applications. The new functionality allows arbitrary nodes to register as client nodes at the canonical server, provided that these know a shared secret. All messages of the intra-cluster talk are now cryptographically signed using this shared secret. In the current version, the shared secret key has to be specified in the NaviServer configuration file (ClusterSecret). Later versions will support the use of other measures such as generated keys, kept as files. Also in the new version it is still possible to use static peer addresses (which do not have to register during startup). - Support for multiple protocols for intra-cluster talk Previous version of OpenACS required the communication of the intra-cluster talk over HTTP. With these changes, multiple protocols are supported. Most prominently HTTPS can be used, which is required by some organization for all web communication, especially for cloud applications. Other protocols might be added later (e.g. UDP). - Nodes (such as the canonical server) can be specified via URL locations. These location specifier have the following advantages over classical IP address and port. * support different protocols (http, https, udp) * support of IP addresses or DNS names * when DNS names map to multiple IP addresses (e.g. multiple IPv4 and/or multiple IPv6 addresses) the new parameter PreferredLocationRegexp can be use to select the wanted. When this regexp does not match any of the addresses, the first address is used. * ports are now optional (except UDP) * for location specifier: https://openacs.org - Support for cluster communication statistics (requires xotcl-request-monitor) These statistics show the amount of intra-server communication. The following statistics are collected per node: - number of broadcast operations - number of send operations (active flushes) - number of receive operation (passive flushes) For N cluster nodes, the send operations are basically the number of broadcast operations times the number of nodes minus one. These statistics can also be used prior to cluster enabling, to obtain the number of potential broadcast operations. Kernel Parameters CanonicalServer : location of the canonical server ClusterAuthorizedIP : obsolete ClusterEnabledP : unchanged ClusterPeerIP : obsolete EnableLoggingP : unchanged PreferredLocationRegexp : new DynamicClusterPeers : new, no not edit Differences between old and new value for ""CanonicalServer"": old: - specify IP address with port - example: 137.208.116.31:443 new: - specify URL location - support different protocols (http, https, udp) - support of IP address or domain name - when domain name maps to different IP addresses (e.g. multiple IPv4 and/or multiple IPv6 addresses) PreferredLocationRegexp can be use to select the wanted. When the provided regexp does not match any of the addresses, take the first address. - port is optional - example: https://openacs.org Sample setup Old: CanonicalServer : 137.208.116.31:443 ClusterAuthorizedIP : 137.208.116.31 ClusterPeerIP : 137.208.116.31:443 137.208.116.31:8443 ClusterEnabledP : 1 EnableLoggingP : 1 New: CanonicalServer : https://openacs.org PreferredLocationRegexp : https:// ClusterEnabledP : 1 EnableLoggingP : 1 # # Cluster secret for intra-cluster communications in NaviServer # configuration file. Clustering will not be enabled if no value is # provided. # ns_section ns/server/$server/acs { # ... ns_param ClusterSecret ""please change me"" } #----------------------------------------------------------------------- # Support for munin statistics # # 1) install munin plugins for naviserver (munin-plugins-ns.git) # 2) add link to the munin plugins (replace ""openacs"" by the name # of your server in the munin configuration) # /etc/munin/plugins/naviserver_openacs_count_cluster -> /usr/share/munin/plugins/naviserver_count # 3) in the plugin plugin configuration (e.g., etc/munin/plugin-conf.d/naviserver) # add a section like the following (again, replace ""openacs"" by the server name you used) # # [naviserver_openacs_count_cluster] # env.title Cluster # env.vars cluster:broadcast cluster:sent cluster:received # # 4) restart munin " "openacs-4/packages/acs-api-browser/www/index.tcl","1.11.2.4","antoniop",2023/03/28 13:55:32,"oacs-5-10:antoniop:20230328135532","Prefer NaviServer API directly " "openacs-4/packages/acs-admin/www/apm/index.tcl","1.30.2.7","antoniop",2023/03/28 14:01:32,"oacs-5-10:antoniop:20230328140132","Prefer Naviserver API directly " "openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl","1.153.2.56","antoniop",2023/03/28 14:04:51,"oacs-5-10:antoniop:20230328140451","Deprecate trivial wrappers to the NaviServer API Modern ns_getform will not return the empty string for empty requests, but only when we are operating outside of a connection. In such circumstances is arguably useful to manipulate the request parameters. " "openacs-4/packages/acs-templating/www/doc/tagref/include.adp","1.4.2.2","antoniop",2023/03/28 14:04:51,"oacs-5-10:antoniop:20230328140451","Deprecate trivial wrappers to the NaviServer API Modern ns_getform will not return the empty string for empty requests, but only when we are operating outside of a connection. In such circumstances is arguably useful to manipulate the request parameters. " "openacs-4/packages/acs-templating/www/doc/tagref/include.html","1.6.2.1","antoniop",2023/03/28 14:04:51,"oacs-5-10:antoniop:20230328140451","Deprecate trivial wrappers to the NaviServer API Modern ns_getform will not return the empty string for empty requests, but only when we are operating outside of a connection. In such circumstances is arguably useful to manipulate the request parameters. " "openacs-4/packages/acs-tcl/tcl/http-client-procs.tcl","1.30.2.28","antoniop",2023/06/23 12:39:26,"oacs-5-10:antoniop:20230623123926","Prefer ns_base64encode where we already require modern NaviServer " "openacs-4/packages/acs-core-docs/www/openacs-overview.adp","1.4.2.6","antoniop",2023/10/19 09:44:24,"oacs-5-10:antoniop:20231019094424","Update documentation: - Replace AOLServer -> NaviServer - Replace rericeted link to the package repository - Refer to Wikipedia pages for facts about ArsDigita and original ACS - Add links to Postgres and Oracle web pages - Reformat markup " "openacs-4/packages/acs-admin/acs-admin.info","1.58.2.16","gustafn",2023/12/17 19:28:31,"oacs-5-10:gustafn:20231217192831","Added support for automatic disconnect when a dynamic cluster node is shut down When the dynamic cluster configuration has scale for certain occasions, it makes sense to provide down scaling support when these occasions are over, which does not rely on the configured cluster disconnect timeout (ClusterAutodeleteInterval). The new code will send automatically a disconnect request when a dynamic cluster node is terminating gracefully. Depending on the configuration, a new version of NaviServer will be necessary to reliably execute disconnect requests. Appropriate changes are in the NaviServer release/4.99 and main branches. - Bumped version numbers: * acs-tcl to 5.10.1b4 * acs-admin to 5.10.1b4 " "openacs-4/packages/acs-admin/www/cluster.tcl","1.1.2.4","gustafn",2023/12/17 19:28:31,"oacs-5-10:gustafn:20231217192831","Added support for automatic disconnect when a dynamic cluster node is shut down When the dynamic cluster configuration has scale for certain occasions, it makes sense to provide down scaling support when these occasions are over, which does not rely on the configured cluster disconnect timeout (ClusterAutodeleteInterval). The new code will send automatically a disconnect request when a dynamic cluster node is terminating gracefully. Depending on the configuration, a new version of NaviServer will be necessary to reliably execute disconnect requests. Appropriate changes are in the NaviServer release/4.99 and main branches. - Bumped version numbers: * acs-tcl to 5.10.1b4 * acs-admin to 5.10.1b4 " "openacs-4/packages/acs-tcl/acs-tcl.info","1.95.2.67","gustafn",2023/12/17 19:28:31,"oacs-5-10:gustafn:20231217192831","Added support for automatic disconnect when a dynamic cluster node is shut down When the dynamic cluster configuration has scale for certain occasions, it makes sense to provide down scaling support when these occasions are over, which does not rely on the configured cluster disconnect timeout (ClusterAutodeleteInterval). The new code will send automatically a disconnect request when a dynamic cluster node is terminating gracefully. Depending on the configuration, a new version of NaviServer will be necessary to reliably execute disconnect requests. Appropriate changes are in the NaviServer release/4.99 and main branches. - Bumped version numbers: * acs-tcl to 5.10.1b4 * acs-admin to 5.10.1b4 " "openacs-4/packages/acs-tcl/tcl/cluster-init.tcl","1.1.2.12","gustafn",2023/12/17 19:28:31,"oacs-5-10:gustafn:20231217192831","Added support for automatic disconnect when a dynamic cluster node is shut down When the dynamic cluster configuration has scale for certain occasions, it makes sense to provide down scaling support when these occasions are over, which does not rely on the configured cluster disconnect timeout (ClusterAutodeleteInterval). The new code will send automatically a disconnect request when a dynamic cluster node is terminating gracefully. Depending on the configuration, a new version of NaviServer will be necessary to reliably execute disconnect requests. Appropriate changes are in the NaviServer release/4.99 and main branches. - Bumped version numbers: * acs-tcl to 5.10.1b4 * acs-admin to 5.10.1b4 " "openacs-4/packages/acs-tcl/tcl/cluster-procs.tcl","1.1.2.14","gustafn",2023/12/17 19:28:31,"oacs-5-10:gustafn:20231217192831","Added support for automatic disconnect when a dynamic cluster node is shut down When the dynamic cluster configuration has scale for certain occasions, it makes sense to provide down scaling support when these occasions are over, which does not rely on the configured cluster disconnect timeout (ClusterAutodeleteInterval). The new code will send automatically a disconnect request when a dynamic cluster node is terminating gracefully. Depending on the configuration, a new version of NaviServer will be necessary to reliably execute disconnect requests. Appropriate changes are in the NaviServer release/4.99 and main branches. - Bumped version numbers: * acs-tcl to 5.10.1b4 * acs-admin to 5.10.1b4 " "openacs-4/packages/acs-tcl/tcl/security-init.tcl","1.6.2.5","gustafn",2024/04/05 08:28:21,"oacs-5-10:gustafn:20240405082821","Improved readability of configuration parameter ""parameterSecret"" - Switched to camelCase for better readabilty and uniformity - NaviServer configuration parameters are case insensitive, so no danger for backward compatibility " "openacs-4/packages/acs-tcl/tcl/security-procs.tcl","1.126.2.99","gustafn",2024/04/05 08:28:21,"oacs-5-10:gustafn:20240405082821","Improved readability of configuration parameter ""parameterSecret"" - Switched to camelCase for better readabilty and uniformity - NaviServer configuration parameters are case insensitive, so no danger for backward compatibility " "openacs-4/packages/acs-tcl/tcl/tcl-documentation-procs.tcl","1.61.2.42","gustafn",2024/04/05 08:28:21,"oacs-5-10:gustafn:20240405082821","Improved readability of configuration parameter ""parameterSecret"" - Switched to camelCase for better readabilty and uniformity - NaviServer configuration parameters are case insensitive, so no danger for backward compatibility " "openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl","1.189.2.173","gustafn",2024/04/05 08:28:21,"oacs-5-10:gustafn:20240405082821","Improved readability of configuration parameter ""parameterSecret"" - Switched to camelCase for better readabilty and uniformity - NaviServer configuration parameters are case insensitive, so no danger for backward compatibility "