request-processor-procs.tcl

  • last updated 7 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- break overlong lines

- get rid of deprecated call to ad_footer

- fix for bug in request processor that leads to Errors of the form: "failed to redirect '404': exceeded recursion limit of 3" in the error.log

- include always vuh in ExtensionPrecedence to preserve documented sematics

- fix bug and potential security hole: before this patch, OpenACS was trying to serve files with arbitrary extensions (i.e. not included in the kernel parameter ExtensionPrecedence) in case the requested file was not found. This is quite dangerous and breaks e.g. the listing of openacs.org/repository (which is a directory), since the directory is moved every night into openacs.org/repository.bak. With the given logic, it tries to server the .bak directory as a file (which does of course not work). That blind logic is not inecessary, and is actually a potential attack vector.

- set "ad_conn peeraddr" to the value of "X-Forwarded-For" only in ReverseProxyMode

  1. … 1 more file in changeset.
- get rid of empty_string_p

  1. … 20 more files in changeset.
- 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.

  1. … 21 more files in changeset.
Performance improvements for rp_filter and parameter:

- improve performance of rp_filter (which is run on every

non-resources request) significantly (often a factor of 2)

- improve scalability by reducing number of required mutex locks

(e.g. for secret token handling)

  1. … 8 more files in changeset.
- use a single file operation in the most common case

- cleanup and minor performance improvements

  1. … 1 more file in changeset.
A better version of previous commit: refetching site node info just when really needed and better wording on comments. Patch by Gustaf Neumann.

Previous attempt to fix problem of exceeding recursion limit affected the looking up of vuh files. Instead we re-calculate the extra_url ( done as in rp_filter ) before going through the whole process that figures out which file to serve.

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

  1. … 1 more file in changeset.
- guard rename-commands to improve robustness for reloading in newer tcl versions

Fix RestrictErrorsToAdminsP parameter behaviour, which previously did nothing.

Add require_login to admin filter. This was exposed as an issue when someone accidentally granted admin to the public. No administrator action ever needs to be performed when not logged in.

Merged oacs-5-6 to HEAD. HEAD now installs and passes all core tests. There

may still be some lingering problems due to my screwing up the oacs-5-6

branch earlier, I'll be looking into this later.

  1. … 214 more files in changeset.
Force references to an embedded package's admin or sitewide-admin pages to

be referenced (relative to the embedding package's mount point) as

admin/package-key or sitewide-admin/package-key. This nicely arranges

all admin URLs in a composite package under ${mount-point}/admin, which

among other things will cause the request processor to do the expected

permission check. Backdoor access to the admin pages via URLs like

${mount-point}/package-key/admin or ${mount-point}/package-key/sitewide-admin

is blocked, as the request processor won't do the expected permissions check

for URLs of that form.,

  1. … 1 more file in changeset.
- improve portability for tcl 8.5 and naviserver

  1. … 3 more files in changeset.
1. Changed trigger functions from "opaque" to "trigger" to get rid of the

warnings during initial install (only for acs-kernel, there are a lot

elsewhere!)

2. Added "embeds" for postgresql and partially for oracle.

3. Added global parameters for postgresql and partially for oracle.

(oracle will be forthcoming shortly)

  1. … 29 more files in changeset.
Added rp_form_update, like rp_form_put but calls ns_set update instead of

ns_set put.

Merged 5.5.1 to HEAD

  1. … 181 more files in changeset.
Fix redirect when ForceHostP is true. Fix redirect to/from HTTP/HTTPS where full URLs are used.

OCD repair of the hard coded @cvs-id strings

  1. … 14 more files in changeset.
remove deprecated calls to ad_parameter

  1. … 4 more files in changeset.
Preliminary version of "extend package" code, along with new package

attributes that allow the declaration of packages that are subsites.

  1. … 29 more files in changeset.
- remove duplicated line

- make comment more general

- remove unneeded quotes

Rewrote the URL to file mapping stuff slightly so that it will work when

searching more than two directories. Bad hardwiring. Hard-to-read code.

New version will work for any number of search directories (as will happen

when package extensiblity is implemented) and IMO is easier to read and

a bit faster, too, when searching for an appropriate .vuh file to serve.

    • -222
    • +193
    ./request-processor-procs.tcl
Merged from 5.4.2

  1. … 283 more files in changeset.