request-processor-procs.tcl

The ACS Request Processor: the set of routines called upon every single HTTP request to an ACS server.

Location:
packages/acs-tcl/tcl/request-processor-procs.tcl
Created:
15 May 2000
Author:
Jon Salz <jsalz@arsdigita.com>
CVS Identification:
$Id: request-processor-procs.tcl,v 1.157 2024/10/28 16:04:31 gustafn Exp $

Procedures in this file

Detailed information

acs::root_of_host (public)

 acs::root_of_host host

Maps a hostname to the corresponding subdirectory.

Parameters:
host (required)

Partial Call Graph (max 5 caller/called nodes):
%3 test_link_tests link_tests (test xowiki) acs::root_of_host acs::root_of_host test_link_tests->acs::root_of_host test_package_normalize_path package_normalize_path (test xowiki) test_package_normalize_path->acs::root_of_host test_path_resolve path_resolve (test xowiki) test_path_resolve->acs::root_of_host test_slot_interactions slot_interactions (test xowiki) test_slot_interactions->acs::root_of_host test_xowiki_test_cases xowiki_test_cases (test xowiki) test_xowiki_test_cases->acs::root_of_host acs::root_of_host_noncached acs::root_of_host_noncached (private) acs::root_of_host->acs::root_of_host_noncached rp_filter rp_filter (private) rp_filter->acs::root_of_host xo::PackageMgr instproc initialize xo::PackageMgr instproc initialize (public) xo::PackageMgr instproc initialize->acs::root_of_host

Testcases:
package_normalize_path, xowiki_test_cases, link_tests, slot_interactions, path_resolve

acs::root_of_host_noncached (private)

 acs::root_of_host_noncached host

Helper function for acs::root_of_host, which performs the actual work.

Parameters:
host (required)

Partial Call Graph (max 5 caller/called nodes):
%3 acs::root_of_host acs::root_of_host (public) acs::root_of_host_noncached acs::root_of_host_noncached acs::root_of_host->acs::root_of_host_noncached rp_lookup_node_from_host rp_lookup_node_from_host (private) acs::root_of_host_noncached->rp_lookup_node_from_host security::provided_host_valid security::provided_host_valid (private) acs::root_of_host_noncached->security::provided_host_valid site_node::get_url site_node::get_url (public) acs::root_of_host_noncached->site_node::get_url util_memoize util_memoize (public) acs::root_of_host_noncached->util_memoize

Testcases:
No testcase defined.

ad_acs_kernel_id (public)

 ad_acs_kernel_id

Returns the package_id of the kernel.

Partial Call Graph (max 5 caller/called nodes):
%3 test_acs_system_information_api acs_system_information_api (test acs-tcl) ad_acs_kernel_id ad_acs_kernel_id test_acs_system_information_api->ad_acs_kernel_id test_auth_email_on_password_change auth_email_on_password_change (test acs-authentication) test_auth_email_on_password_change->ad_acs_kernel_id test_auth_password_change auth_password_change (test acs-authentication) test_auth_password_change->ad_acs_kernel_id test_auth_use_email_for_login_p auth_use_email_for_login_p (test acs-authentication) test_auth_use_email_for_login_p->ad_acs_kernel_id test_link_tests link_tests (test xowiki) test_link_tests->ad_acs_kernel_id acs_privacy::privacy_control_enabled_p acs_privacy::privacy_control_enabled_p (public, deprecated) acs_privacy::privacy_control_enabled_p->ad_acs_kernel_id acs_privacy::privacy_control_set acs_privacy::privacy_control_set (public, deprecated) acs_privacy::privacy_control_set->ad_acs_kernel_id apm_system_paths apm_system_paths (private) apm_system_paths->ad_acs_kernel_id auth::UseEmailForLoginP auth::UseEmailForLoginP (public) auth::UseEmailForLoginP->ad_acs_kernel_id auth::check_local_account_status auth::check_local_account_status (private) auth::check_local_account_status->ad_acs_kernel_id

Testcases:
auth_password_change, auth_use_email_for_login_p, auth_email_on_password_change, password_recovery_page, acs_system_information_api, link_tests

ad_acs_kernel_id_not_cached (private)

 ad_acs_kernel_id_not_cached

Returns the package_id of the kernel. (not cached)

Partial Call Graph (max 5 caller/called nodes):
%3 db_string db_string (public) ad_acs_kernel_id_not_cached ad_acs_kernel_id_not_cached ad_acs_kernel_id_not_cached->db_string

Testcases:
No testcase defined.

ad_conn (public)

 ad_conn [ args... ]

Returns a property about the connection. See the request processor documentation for an (incomplete) list of allowable values. If option "-set" is passed as first argument, then ad_conn sets the specified property, otherwise it returns its value. If the property has not been set directly by OpenACS it will be passed on to AOLserver's/NaviServer's ns_conn If the property is not a valid option for ns_conn either then it will throw an error.

Valid options for ad_conn are: ajax_p, behind_proxy_p, behind_secure_proxy_p, bot_p, browser_id, deferred_dml, extra_url, instance_name, last_issue, mobile_p, node_id, object_id, object_type, object_url, package_id, package_key, package_url, path_info, peeraddr, recursion_count, request, sec_validated, session_id, start_clicks, subsite_id, subsite_node_id, subsite_url, system_p, token, untrusted_user_id, user_id, vhost_package_url, vhost_subsite_url, vhost_url.

See Also:

Partial Call Graph (max 5 caller/called nodes):
%3 test_cookie_consent__setup cookie_consent__setup (test cookie-consent) ad_conn ad_conn test_cookie_consent__setup->ad_conn acs::icanuse acs::icanuse (public) ad_conn->acs::icanuse apm_package_id_from_key apm_package_id_from_key (public) ad_conn->apm_package_id_from_key parameter::get parameter::get (public) ad_conn->parameter::get site_node::closest_ancestor_package site_node::closest_ancestor_package (public) ad_conn->site_node::closest_ancestor_package site_node::get site_node::get (public) ad_conn->site_node::get Class ::xo::db::Class Class ::xo::db::Class (public) Class ::xo::db::Class->ad_conn Class ::xowiki::formfield::numeric Class ::xowiki::formfield::numeric (public) Class ::xowiki::formfield::numeric->ad_conn Class ::xowiki::formfield::richtext::tinymce Class ::xowiki::formfield::richtext::tinymce (public) Class ::xowiki::formfield::richtext::tinymce->ad_conn Class ::xowiki::includelet::categories Class ::xowiki::includelet::categories (public) Class ::xowiki::includelet::categories->ad_conn Object ::throttle Object ::throttle (public) Object ::throttle->ad_conn

Testcases:
cookie_consent__setup

ad_host (public)

 ad_host

Returns the hostname as it was typed in the browser, provided forcehostp is set to 0.

Partial Call Graph (max 5 caller/called nodes):
%3 test_link_tests link_tests (test xowiki) ad_host ad_host test_link_tests->ad_host test_package_normalize_path package_normalize_path (test xowiki) test_package_normalize_path->ad_host test_path_resolve path_resolve (test xowiki) test_path_resolve->ad_host test_slot_interactions slot_interactions (test xowiki) test_slot_interactions->ad_host test_xowiki_test_cases xowiki_test_cases (test xowiki) test_xowiki_test_cases->ad_host rp_filter rp_filter (private) rp_filter->ad_host xo::PackageMgr instproc initialize xo::PackageMgr instproc initialize (public) xo::PackageMgr instproc initialize->ad_host

Testcases:
package_normalize_path, xowiki_test_cases, link_tests, slot_interactions, path_resolve

ad_http_cache_control (private)

 ad_http_cache_control

This adds specific headers to the http output headers for the current request in order to prevent user agents and proxies from caching the page.

It should be called only when the method to return the data to the client is going to be ns_return. In other cases, e.g. ns_returnfile, one can assume that the returned content is not dynamic and can in fact be cached. Besides that, AOLserver implements its own handling of Last-Modified headers with ns_returnfile. Also it should be called as late as possible - shortly before ns_return, so that other code has the chance to set no_cache_control_p to 1 before it runs.

This proc can be disabled per request by calling "ad_conn -set no_http_cache_control_p 1" before this proc is reached. It will not modify any headers if this variable is set to 1.

If the acs-kernel parameter CacheControlP is set to 0 then it's fully disabled.

Author:
Tilmann Singer <tils-oacs@tils.net>

Partial Call Graph (max 5 caller/called nodes):
%3 ad_progress_bar_begin ad_progress_bar_begin (public) ad_http_cache_control ad_http_cache_control ad_progress_bar_begin->ad_http_cache_control doc_return doc_return (public) doc_return->ad_http_cache_control ad_conn ad_conn (public) ad_http_cache_control->ad_conn parameter::get parameter::get (public) ad_http_cache_control->parameter::get

Testcases:
No testcase defined.

ad_port (private)

 ad_port

Returns the port as it was typed in the browser, provided forcehostp is set to 0.

Partial Call Graph (max 5 caller/called nodes):
%3 rp_filter rp_filter (private) ad_port ad_port rp_filter->ad_port

Testcases:
No testcase defined.

ad_register_filter (public)

 ad_register_filter [ -debug debug ] [ -priority priority ] \
    [ -critical critical ] [ -description description ] kind method \
    path proc [ arg ]

Registers a filter that gets called during page serving. The filter should return one of

  • filter_ok, meaning the page serving will continue;
  • filter_break meaning the rest of the filters of this type will not be called;
  • filter_return meaning the server will close the connection and end the request processing.

Switches:
-debug (optional, defaults to "f")
If debug is set to "t", all invocations of the filter will be ns_logged.
-priority (optional, defaults to "10000")
Priority is an integer; lower numbers indicate higher priority.
-critical (optional, defaults to "f")
If a filter is critical, page viewing will abort if a filter fails.
-description (optional)
Parameters:
kind (required)
Specify preauth, postauth or trace.
method (required)
Use a method of "*" to register GET, POST, and HEAD filters.
path (required)
proc (required)
arg (optional)

Partial Call Graph (max 5 caller/called nodes):
%3 http_auth::register_filter http_auth::register_filter (public) ad_register_filter ad_register_filter http_auth::register_filter->ad_register_filter packages/acs-core-docs/tcl/acs-core-docs-init.tcl packages/acs-core-docs/ tcl/acs-core-docs-init.tcl packages/acs-core-docs/tcl/acs-core-docs-init.tcl->ad_register_filter packages/acs-developer-support/tcl/acs-developer-support-init.tcl packages/acs-developer-support/ tcl/acs-developer-support-init.tcl packages/acs-developer-support/tcl/acs-developer-support-init.tcl->ad_register_filter packages/acs-tcl/tcl/admin-init.tcl packages/acs-tcl/ tcl/admin-init.tcl packages/acs-tcl/tcl/admin-init.tcl->ad_register_filter packages/acs-templating/tcl/template-init.tcl packages/acs-templating/ tcl/template-init.tcl packages/acs-templating/tcl/template-init.tcl->ad_register_filter apm_first_time_loading_p apm_first_time_loading_p (public) ad_register_filter->apm_first_time_loading_p

Testcases:
No testcase defined.

ad_register_proc (public)

 ad_register_proc [ -sitewide ] [ -debug debug ] \
    [ -noinherit noinherit ] [ -description description ] method path \
    proc [ arg ]

Registers a procedure (see ns_register_proc for syntax). Use a method of "*" to register GET, POST, and HEAD filters. If debug is set to "t", all invocations of the procedure will be logged in the server log.

Switches:
-sitewide (optional, boolean)
specifies that the filter should be applied on a sitewide (not subsite-by-subsite basis).
-debug (optional, defaults to "f")
-noinherit (optional, defaults to "f")
-description (optional)
Parameters:
method (required)
path (required)
proc (required)
arg (optional)

Partial Call Graph (max 5 caller/called nodes):
%3 test_test_ad_register_proc test_ad_register_proc (test acs-tcl) ad_register_proc ad_register_proc test_test_ad_register_proc->ad_register_proc request_processor::test::require_registered_procs request_processor::test::require_registered_procs (private) request_processor::test::require_registered_procs->ad_register_proc

Testcases:
test_ad_register_proc

ad_script_abort (public)

 ad_script_abort

Aborts the current running Tcl script, returning to the request processor. Used to stop processing after doing ad_returnredirect or other commands which have already returned output to the client. After such operations, the connection for this request is closed and no more replies can be sent to the client.

Partial Call Graph (max 5 caller/called nodes):
%3 test_ad_return_exception_template ad_return_exception_template (test acs-templating) ad_script_abort ad_script_abort test_ad_return_exception_template->ad_script_abort test_create_folder_with_page create_folder_with_page (test xowf) test_create_folder_with_page->ad_script_abort test_create_form_with_form_instance create_form_with_form_instance (test xowiki) test_create_form_with_form_instance->ad_script_abort test_create_workflow_with_instance create_workflow_with_instance (test xowf) test_create_workflow_with_instance->ad_script_abort test_xowiki_test_cases xowiki_test_cases (test xowiki) test_xowiki_test_cases->ad_script_abort ad_raise ad_raise (public) ad_script_abort->ad_raise Class ::Generic::Form Class ::Generic::Form (public) Class ::Generic::Form->ad_script_abort Class ::xo::Context Class ::xo::Context (public) Class ::xo::Context->ad_script_abort Class ::xowiki::includelet::categories Class ::xowiki::includelet::categories (public) Class ::xowiki::includelet::categories->ad_script_abort Class ::xowiki::includelet::slidy Class ::xowiki::includelet::slidy (public) Class ::xowiki::includelet::slidy->ad_script_abort acs_mail_lite::load_mails acs_mail_lite::load_mails (public, deprecated) acs_mail_lite::load_mails->ad_script_abort

Testcases:
ad_return_exception_template, create_folder_with_page, create_workflow_with_instance, xowiki_test_cases, create_form_with_form_instance

rp_concrete_file (private)

 rp_concrete_file [ -extension_pattern extension_pattern ] path

Given a path in the filesystem, returns the file that would be served, trying all possible extensions. Returns an empty string if there's no file "$path.*" in the filesystem (even if the file $path itself does exist).

Switches:
-extension_pattern (optional, defaults to ".*")
Parameters:
path (required)

Partial Call Graph (max 5 caller/called nodes):
%3 rp_serve_abstract_file rp_serve_abstract_file (private) rp_concrete_file rp_concrete_file rp_serve_abstract_file->rp_concrete_file parameter::get parameter::get (public) rp_concrete_file->parameter::get

Testcases:
No testcase defined.

rp_file_can_be_public_p (private)

 rp_file_can_be_public_p path

Determines if -- absent application restrictions -- a file can be served to a client without violating simple security checks. The checks and response do not require the initialization of ad_conn or expensive permission:: calls. The proc will return page-not-found messages to the client in the case where the file must not be served, log a warning, and close the connection to the client.

Parameters:
path (required)
The file to perform the simple security checks on.
Returns:
0 (and close the connection!) if the file must not be served. 1 if the application should perform its own checks, if any.

Partial Call Graph (max 5 caller/called nodes):
%3 rp_serve_concrete_file rp_serve_concrete_file (public) rp_file_can_be_public_p rp_file_can_be_public_p rp_serve_concrete_file->rp_file_can_be_public_p rp_serve_resource_file rp_serve_resource_file (private) rp_serve_resource_file->rp_file_can_be_public_p ad_file ad_file (public) rp_file_can_be_public_p->ad_file parameter::get parameter::get (public) rp_file_can_be_public_p->parameter::get

Testcases:
No testcase defined.

rp_filter (private)

 rp_filter why

This is the first filter that runs for non-resource URLs. It sets up ad_conn and handles session security.

Parameters:
why (required)

Partial Call Graph (max 5 caller/called nodes):
%3 rp_handler rp_handler (private) rp_filter rp_filter rp_handler->rp_filter acs::root_of_host acs::root_of_host (public) rp_filter->acs::root_of_host acs_magic_object acs_magic_object (public) rp_filter->acs_magic_object ad_acs_kernel_id ad_acs_kernel_id (public) rp_filter->ad_acs_kernel_id ad_conn ad_conn (public) rp_filter->ad_conn ad_host ad_host (public) rp_filter->ad_host

Testcases:
No testcase defined.

rp_finish_serving_page (private)

 rp_finish_serving_page

Partial Call Graph (max 5 caller/called nodes):
%3 rp_filter rp_filter (private) rp_finish_serving_page rp_finish_serving_page rp_filter->rp_finish_serving_page rp_invoke_proc rp_invoke_proc (private) rp_invoke_proc->rp_finish_serving_page rp_serve_concrete_file rp_serve_concrete_file (public) rp_serve_concrete_file->rp_finish_serving_page doc_return doc_return (public) rp_finish_serving_page->doc_return rp_debug rp_debug (private) rp_finish_serving_page->rp_debug

Testcases:
No testcase defined.

rp_handle_request (private)

 rp_handle_request

Partial Call Graph (max 5 caller/called nodes):
%3 rp_handler rp_handler (private) rp_handle_request rp_handle_request rp_handler->rp_handle_request ad_conn ad_conn (public) rp_handle_request->ad_conn ad_returnredirect ad_returnredirect (public) rp_handle_request->ad_returnredirect ad_try ad_try (public) rp_handle_request->ad_try apm_package_url_resolution apm_package_url_resolution (public) rp_handle_request->apm_package_url_resolution ds_add ds_add (public) rp_handle_request->ds_add

Testcases:
No testcase defined.

rp_handle_tcl_request (public)

 rp_handle_tcl_request

Handles a request for a .tcl file. Sets up the stack of datasource frames, in case the page is templated.

Partial Call Graph (max 5 caller/called nodes):
%3 db_qd_get_fullname db_qd_get_fullname (public) rp_handle_tcl_request rp_handle_tcl_request db_qd_get_fullname->rp_handle_tcl_request ad_conn ad_conn (public) rp_handle_tcl_request->ad_conn

Testcases:
No testcase defined.

rp_handler (private)

 rp_handler

The request handler, which responds to absolutely every HTTP request made to the server.

Partial Call Graph (max 5 caller/called nodes):
%3 ad_conn ad_conn (public) ad_log ad_log (public) ad_returnredirect ad_returnredirect (public) ad_try ad_try (public) apm_package_enabled_p apm_package_enabled_p (public) rp_handler rp_handler rp_handler->ad_conn rp_handler->ad_log rp_handler->ad_returnredirect rp_handler->ad_try rp_handler->apm_package_enabled_p

Testcases:
No testcase defined.

rp_html_directory_listing (private)

 rp_html_directory_listing dir

Generates an HTML-formatted listing of a directory. This is mostly stolen from _ns_dirlist in an AOLserver module (fastpath.tcl).

Parameters:
dir (required)

Partial Call Graph (max 5 caller/called nodes):
%3 rp_handle_request rp_handle_request (private) rp_html_directory_listing rp_html_directory_listing rp_handle_request->rp_html_directory_listing ad_file ad_file (public) rp_html_directory_listing->ad_file

Testcases:
No testcase defined.

rp_internal_redirect (public)

 rp_internal_redirect [ -absolute_path ] path

Tell the request processor to return some other page. The path can either be relative to the current directory (e.g. "some-template") relative to the server root (e.g. "/packages/my-package/www/some-template"), or an absolute path (e.g. "/home/donb/openacs-4/templates/some-cms-template"). When there is no extension then the request processor will choose the matching file according to the extension preferences. Parameters will stay the same as in the initial request. Keep in mind that if you do an internal redirect to something other than the current directory, relative links returned to the clients browser may be broken (since the client will have the original URL). Update the ns_set obtained via ns_getform if you want to feed query variables to the redirected page.

Switches:
-absolute_path (optional, boolean)
If set the path is an absolute path within the host filesystem
Parameters:
path (required)
path to the file to serve
See Also:
  • ns_getform
  • ns_set

Partial Call Graph (max 5 caller/called nodes):
%3 test_create_workflow_with_instance create_workflow_with_instance (test xowf) rp_internal_redirect rp_internal_redirect test_create_workflow_with_instance->rp_internal_redirect ad_conn ad_conn (public) rp_internal_redirect->ad_conn rp_serve_abstract_file rp_serve_abstract_file (private) rp_internal_redirect->rp_serve_abstract_file ad_core_docs_html_redirector ad_core_docs_html_redirector (private) ad_core_docs_html_redirector->rp_internal_redirect packages/acs-api-browser/www/index.tcl packages/acs-api-browser/ www/index.tcl packages/acs-api-browser/www/index.tcl->rp_internal_redirect packages/acs-subsite/www/index.tcl packages/acs-subsite/ www/index.tcl packages/acs-subsite/www/index.tcl->rp_internal_redirect

Testcases:
create_workflow_with_instance

rp_invoke_filter (private)

 rp_invoke_filter why filter_info

Invokes the filter described in $argv, writing an error message to the browser if it fails (unless kind is trace).

Parameters:
why (required)
filter_info (required)

Partial Call Graph (max 5 caller/called nodes):
%3 ad_try ad_try (public) ds_add ds_add (public) rp_debug rp_debug (private) rp_report_error rp_report_error (private) rp_invoke_filter rp_invoke_filter rp_invoke_filter->ad_try rp_invoke_filter->ds_add rp_invoke_filter->rp_debug rp_invoke_filter->rp_report_error

Testcases:
No testcase defined.

rp_invoke_proc (private)

 rp_invoke_proc argv

Invokes a registered procedure.

Parameters:
argv (required)

Partial Call Graph (max 5 caller/called nodes):
%3 ad_try ad_try (public) ds_add ds_add (public) rp_debug rp_debug (private) rp_finish_serving_page rp_finish_serving_page (private) rp_report_error rp_report_error (private) rp_invoke_proc rp_invoke_proc rp_invoke_proc->ad_try rp_invoke_proc->ds_add rp_invoke_proc->rp_debug rp_invoke_proc->rp_finish_serving_page rp_invoke_proc->rp_report_error

Testcases:
No testcase defined.

rp_lookup_node_from_host (private)

 rp_lookup_node_from_host host

Lookup host from host_node_map.

Parameters:
host (required)
Returns:
node_id on success or empty string

Partial Call Graph (max 5 caller/called nodes):
%3 acs::root_of_host_noncached acs::root_of_host_noncached (private) rp_lookup_node_from_host rp_lookup_node_from_host acs::root_of_host_noncached->rp_lookup_node_from_host db_string db_string (public) rp_lookup_node_from_host->db_string

Testcases:
No testcase defined.

rp_path_prefixes (private)

 rp_path_prefixes path

Returns all the prefixes of a path ordered from most to least specific.

Parameters:
path (required)

Partial Call Graph (max 5 caller/called nodes):
%3 rp_handle_request rp_handle_request (private) rp_path_prefixes rp_path_prefixes rp_handle_request->rp_path_prefixes

Testcases:
No testcase defined.

rp_register_extension_handler (private)

 rp_register_extension_handler extension [ args... ]

Registers a proc used to handle requests for files with a particular extension.

Parameters:
extension (required)

Partial Call Graph (max 5 caller/called nodes):
%3 packages/acs-tcl/tcl/request-processor-init.tcl packages/acs-tcl/ tcl/request-processor-init.tcl rp_register_extension_handler rp_register_extension_handler packages/acs-tcl/tcl/request-processor-init.tcl->rp_register_extension_handler packages/acs-templating/tcl/acs-integration-init.tcl packages/acs-templating/ tcl/acs-integration-init.tcl packages/acs-templating/tcl/acs-integration-init.tcl->rp_register_extension_handler

Testcases:
No testcase defined.

rp_registered_proc_info_compare (private)

 rp_registered_proc_info_compare info1 info2

A comparison predicate for registered procedures, returning -1, 0, or 1 depending the relative sorted order of $info1 and $info2 in the procedure list. Items with longer paths come first.

Parameters:
info1 (required)
info2 (required)

Partial Call Graph (max 5 caller/called nodes):
%3

Testcases:
No testcase defined.

rp_report_error (private)

 rp_report_error [ -message message ]

Writes an error to the connection.

Switches:
-message (optional)
The message to write (pulled from $::errorInfo if none is specified).

Partial Call Graph (max 5 caller/called nodes):
%3 rp_handler rp_handler (private) rp_report_error rp_report_error rp_handler->rp_report_error rp_invoke_filter rp_invoke_filter (private) rp_invoke_filter->rp_report_error rp_invoke_proc rp_invoke_proc (private) rp_invoke_proc->rp_report_error ad_conn ad_conn (public) rp_report_error->ad_conn ad_log ad_log (public) rp_report_error->ad_log ad_parse_template ad_parse_template (public) rp_report_error->ad_parse_template ad_try ad_try (public) rp_report_error->ad_try ad_url ad_url (public) rp_report_error->ad_url

Testcases:
No testcase defined.

rp_request_denied_filter (private)

 rp_request_denied_filter why

Deny serving the request

Parameters:
why (required)

Partial Call Graph (max 5 caller/called nodes):
%3 ad_return_forbidden ad_return_forbidden (public) rp_request_denied_filter rp_request_denied_filter rp_request_denied_filter->ad_return_forbidden

Testcases:
No testcase defined.

rp_resources_filter (private)

 rp_resources_filter why

This filter runs on all URLs of the form /resources/*. We just ns_returnfile the file, no permissions are checked, the ad_conn structure is not initialized, etc in order to maximize throughput for resource files. There are three mapping possibilities: /resources/package-key/* maps to root/packages/package-key/www/resources/*. If that fails, we map to root/packages/acs-subsite/www/resources/* If that fails, we map to root/www/resources/* If the file doesn't exist we'll log an error and return filter_ok, which will allow packages mounted at "/resources" in a legacy site to work correctly. This is a horrible kludge which may disappear after discussion with the gang.

Parameters:
why (required)
Author:
Don Baccus <dhogaza@pacifier.com>

Partial Call Graph (max 5 caller/called nodes):
%3 acs_package_root_dir acs_package_root_dir (public) ad_conn ad_conn (public) ad_file ad_file (public) rp_serve_resource_file rp_serve_resource_file (private) rp_resources_filter rp_resources_filter rp_resources_filter->acs_package_root_dir rp_resources_filter->ad_conn rp_resources_filter->ad_file rp_resources_filter->rp_serve_resource_file

Testcases:
No testcase defined.

rp_serve_abstract_file (private)

 rp_serve_abstract_file [ -noredirect ] [ -nodirectory ] \
    [ -extension_pattern extension_pattern ] path

Serves up a file given the abstract path. Raises the following exceptions in the obvious cases:

  • notfound (passes back an empty value)
  • redirect (passes back the url to which it wants to redirect)
  • directory (passes back the path of the directory)
Should not be used in .vuh files or elsewhere, instead use the public function rp_internal_redirect.

Switches:
-noredirect (optional, boolean)
-nodirectory (optional, boolean)
-extension_pattern (optional, defaults to ".*")
Parameters:
path (required)
See Also:

Partial Call Graph (max 5 caller/called nodes):
%3 rp_handle_request rp_handle_request (private) rp_serve_abstract_file rp_serve_abstract_file rp_handle_request->rp_serve_abstract_file rp_internal_redirect rp_internal_redirect (public) rp_internal_redirect->rp_serve_abstract_file ad_conn ad_conn (public) rp_serve_abstract_file->ad_conn ad_file ad_file (public) rp_serve_abstract_file->ad_file ad_raise ad_raise (public) rp_serve_abstract_file->ad_raise rp_concrete_file rp_concrete_file (private) rp_serve_abstract_file->rp_concrete_file rp_serve_concrete_file rp_serve_concrete_file (public) rp_serve_abstract_file->rp_serve_concrete_file

Testcases:
No testcase defined.

rp_serve_concrete_file (public)

 rp_serve_concrete_file file

Serves a file.

Parameters:
file (required)

Partial Call Graph (max 5 caller/called nodes):
%3 rp_handle_request rp_handle_request (private) rp_serve_concrete_file rp_serve_concrete_file rp_handle_request->rp_serve_concrete_file rp_serve_abstract_file rp_serve_abstract_file (private) rp_serve_abstract_file->rp_serve_concrete_file ad_file ad_file (public) rp_serve_concrete_file->ad_file ad_raise ad_raise (public) rp_serve_concrete_file->ad_raise ad_try ad_try (public) rp_serve_concrete_file->ad_try ds_add ds_add (public) rp_serve_concrete_file->ds_add ds_init ds_init (public) rp_serve_concrete_file->ds_init

Testcases:
No testcase defined.

rp_serve_resource_file (private)

 rp_serve_resource_file path

Serve the resource file if kernel parameter settings allow this.

Parameters:
path (required)

Partial Call Graph (max 5 caller/called nodes):
%3 rp_resources_filter rp_resources_filter (private) rp_serve_resource_file rp_serve_resource_file rp_resources_filter->rp_serve_resource_file ad_raise ad_raise (public) rp_serve_resource_file->ad_raise parameter::get parameter::get (public) rp_serve_resource_file->parameter::get rp_file_can_be_public_p rp_file_can_be_public_p (private) rp_serve_resource_file->rp_file_can_be_public_p security::csp::add_static_resource_header security::csp::add_static_resource_header (public) rp_serve_resource_file->security::csp::add_static_resource_header

Testcases:
No testcase defined.
[ show source ]