From 77ea946c1d313df6562ba6bdabee8983440b2005 Mon Sep 17 00:00:00 2001 From: Nick Kew Date: Sun, 13 Jun 2010 14:04:27 +0000 Subject: [PATCH] Make a start on documenting API changes in a form we can publish git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@954227 13f79535-47bb-0310-9956-ffa450edef68 --- docs/manual/new_api_2_4.xml | 196 ++++++++++++++++++++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 docs/manual/new_api_2_4.xml diff --git a/docs/manual/new_api_2_4.xml b/docs/manual/new_api_2_4.xml new file mode 100644 index 0000000000..e7b9a26ff6 --- /dev/null +++ b/docs/manual/new_api_2_4.xml @@ -0,0 +1,196 @@ + + + + + + + + +API Changes in Apache HTTP Server 2.4 since 2.2 + + +

This document describes changes to the Apache HTTPD API from + version 2.2 to 2.4, that may be of interest to module/application + developers and core hacks. At the time of writing, the 2.4 API + is not finalised, and this document may serve to highlight + points that call for further review.

+

API changes fall into two categories: APIs that are altogether new, + and existing APIs that are expanded or changed. The latter are + further divided into those where all changes are back-compatible + (so existing modules can ignore them), and those that might + require attention by maintainers. As with the transition from + HTTPD 2.0 to 2.2, existing modules and applications will require + recompiling and may call for some attention, but most should not + require any substantial updating (although some may be able to + take advantage of API changes to offer significant improvements).

+

For the purpose of this document, the API is split according + to the public header files. These headers are themselves the + reference documentation, and can be used to generate a browsable + HTML reference with make docs.

+
+ +
+ ap_expr (NEW!) +

Introduces a new API to parse and evaluate boolean and algebraic + expressions, including provision for a standard syntax and + customised variants.

+
+ +
+ ap_listen (changed; back-compatible) +

Introduces new API to enable apache child processes to serve different purposes.

+
+ +
+ ap_mpm (changed) +

ap_mpm_run is replaced by a new mpm hook. + Also ap_graceful_stop_signalled is lost, and + ap_mpm_register_timed_callback is new.

+
+ +
+ ap_slotmem (NEW!) +

Introduces an API for modules to allocate and manage memory slots + (normally) for shared memory.

+
+ +
+ ap_socache (NEW!) +

API to manage a shared object cache.

+
+ +
+ heartbeat (NEW!) +

common structures for heartbeat modules (should this be public API?)

+
+ +
+ http_config (changed) +
    +
  • Introduces per-module, per-directory loglevels, including macro wrappers.
  • +
  • New AP_DECLARE_MODULE macro to declare all modules.
  • +
  • New API to retain data across module unload/load
  • +
  • New check_config hook
  • +
  • New ap_process_fnmatch_configs() to process wildcards
  • +
+
+ +
+ http_core (changed) +
    +
  • REMOVED ap_default_type, ap_requires, all 2.2 authnz API
  • +
  • Introduces Optional Functions for logio and authnz
  • +
  • New function ap_get_server_name_for_url to support ipv6 literals.
  • +
+
+ +
+ httpd (changed) +
    +
  • Introduce per-directory, per-module loglevel
  • +
  • New loglevels APLOG_TRACEn
  • +
  • Support for mod_request kept_body
  • +
  • Support buffering filter data for async requests
  • +
  • New CONN_STATE values
  • +
  • Function changes: ap_escape_html updated; ap_unescape_all, ap_escape_path_segment_buffer
  • +
+
+ +
+ http_log (changed) +
    +
  • Introduce per-directory, per-module loglevel
  • +
  • New loglevels APLOG_TRACEn
  • +
  • ap_log_*error become macro wrappers (fully back-compatible change)
  • +
  • piped logging revamped
  • +
  • module_index added to error_log hook
  • +
  • new function: ap_log_command_line
  • +
+
+ +
+ http_request (changed) +
    +
  • New auth_internal API and auth_provider API
  • +
  • New EOR bucket type
  • +
  • New function ap_process_async_request
  • +
  • New functions ap_hook_check_access, ap_hook_check_authn, ap_hook_check_authz (why are these called ap_hook_* when they are functions not hooks?)
  • +
+
+ +
+ mod_auth (NEW!) +

Introduces the new provider framework for authn and authz

+
+ +
+ mod_core (NEW!) +

This introduces low-level APIs to send arbitrary headers, + and exposes functions to handle HTTP OPTIONS and TRACE.

+
+ +
+ mod_request (NEW!) +

The API for mod_request, to make input data + available to multiple application/handler modules where required, + and to parse HTML form data.

+
+ +
+ mpm_common (changed) +
    +
  • REMOVES: accept, lockfile, lock_mech, set_scoreboard (locking uses the new ap_mutex API)
  • +
  • NEW API to drop privileges (delegates this platform-dependent + function to modules)
  • +
  • NEW Hooks: mpm_query, mpm_note_child_killed, timed_callback, get_name, and function ap_mpm_note_child_killed
  • +
+
+ +
+ scoreboard (changed) +

ap_get_scoreboard_worker is gratuitously made non-back-compatible + as an alternative version is introduced. Additional proxy_balancer + support. Child status stuff revamped.

+
+ +
+ util_cookies (NEW!) +

Introduces a new API for managing HTTP Cookies.

+
+ +
+ util_ldap (changed) +

I have yet to get a handle on this update.

+
+ +
+ util_mutex (NEW!) +

A wrapper for APR proc and global mutexes in httpd.

+
+ +
+ util_script (changed) +

NEW: ap_args_to_table

+
+ +
+ util_time (changed) +

NEW: ap_recent_ctime_ex

+
+ +
-- 2.50.1