• last updated 5 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Deprecate util_ns_set_to_list: ns_set array is an equivalent oneliner

  1. … 4 more files in changeset.
Streamline ns_set idioms

Deprecate util_list_to_ns_set: it can be replaced with a more efficient oneliner

  1. … 1 more file in changeset.
Test util::split_location and util::join_location

Make "util::split_location" more robust

This change fixes exceptions for util::split_location in

cases, where the URL could not be parsed at all. The function

should return the success indicator instead of raising an

exception. The problem showed up in connection with

attempted log4j attacks.

Stick to packages that are enabled

  1. … 1 more file in changeset.
Use the intended table to get packages that are known to the system

  1. … 1 more file in changeset.
Implement automated test for apm_package_load_libraries_order

file apm-procs.tcl was initially added on branch oacs-5-10.

    • -0
    • +0
    ./tcl/test/apm-procs.tcl
Make api to retrieve the dependencies of a package public, as we use it in a test in another package, swith to the api that will retrieve the cached value instead of re-computing the result

  1. … 1 more file in changeset.
Bump version number to 5.10.1d6 to reload message keys

Use "ns_baseunit", when available for size calculation of parititoned caches

Generalize ::acs::try_cache (such it can be use not only for "...cache eval..."

get rid of pipe-open, when nsproxy exec is available

break overlong lines

modernize code

improve spelling

    • -6
    • +6
    ./catalog/acs-tcl.en_US.ISO-8859-1.xml
Close parenthesis in doc

fix broken util::word_diff and add regression test

The function was already broken before the change of today,

removing the needed for a pipe open.

added dropped "cd" command

reduce cases of tcl pipe open in acs-core

AFIKT, the semantics are the same.

For background, see: https://openacs.org/forums/message-view?message_id=5539060

improve german message keys (spelling, comma, spaces, orthogonality)

    • -10
    • +10
    ./catalog/acs-tcl.de_DE.ISO-8859-1.xml
  1. … 3 more files in changeset.
reduce further redundancy

reduce frequent small SQL queries and streamline code

Make so that upon package deletion, also the leftover site nodes are deleted (if they do no have children nodes)

  1. … 1 more file in changeset.
Don't complain when flushing per-thread cache without content

Added per-request-cache for parameter::get similar to parameter handling in xotcl-core

This change improves scalability especially on sites with high numbers

of concurrent requests by reducing the number of required locks in

general. This change keeps the parameter dict in a per-request cache

to reduce potentially high number of nsv locks, when parameters of a

package are queried a often per request. Without this change we see on

some sites > 100 locks on the ad_param-nsv per request. Alone the

request-procesor queries a larger set of parameters from the acs-core

package, which requires now a single lock operation.

Using the per-request cache has the advantave of avoiding locks and

keeping the internal representations of tcl-objs (whereas ns_cache or

nsvs use plain strings).

mitigate attacks, where the referer header field is changed to a malicious value

The problem does not exist, when CSP is defined properly.

Many thanks to Frank Bergmann for sharing the pen-test protocol

Performance improvement: make "apm_version_names_compare" faster by a factor of ~100

The function "apm_version_names_compare" is called relatively often

and issues an SQL query. The function is stable (returns always the

same results for the same input) and called with only a few different

input values. By using acs::per_thread_cache the performance improves

from 265 microseconds to 2 microseconds; by using the per-tread cache

the operation scales better since it is fully lock-free (once cached).

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.

  1. … 2 more files in changeset.
remove incorrect and misleading comment and simplify code accordingly