From: Jeff Trawick 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 + further divided into those where all changes are backwards-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 @@ -55,9 +59,10 @@ customised variants.
-Introduces new API to enable apache child processes to serve different purposes.
+Introduces a new API to enable httpd child processes to serve + different purposes.
ap_rxplus
is now provided. This provides the capability to
compile Perl-style expressions like s/regexp/replacement/flags
and to execute them against arbitrary strings. Support for regexp
- backreference.
+ backreferences is also added.
Introduces an API for modules to allocate and manage memory slots - (normally) for shared memory.
+Introduces an API for modules to allocate and manage memory slots, + most commonly for shared memory.
common structures for heartbeat modules (should this be public API?)
+common structures for heartbeat modules
AP_DECLARE_MODULE
macro to declare all modules.APLOG_USE_MODULE
macro necessary for per-module loglevels in
multi-file modules.check_config
hookap_process_fnmatch_configs()
function to process wildcardsap_configfile_t
, ap_cfg_getline()
,
+ ap_cfg_getc()
to return error codes, and add
+ ap_pcfg_strerror()
for retrieving an error description.AllowOverrideList
directive.
@@ -122,18 +128,20 @@
ap_default_type
, ap_requires
, all
+ 2.2 authnz APIap_get_server_name_for_url
to support IPv6
+ literals.ap_register_errorlog_handler
to register error log
format string handlers.error_log
hook have changed. Declaration has moved to
http_core.h
.ap_state_query
to determine if the server is in the
initial configuration preflight phase or not. This is both easier to
use and more correct than the old method of creating a pool userdata
entry in the process pool.ap_get_conn_socket
to get the socket descriptor for a
connection. This should be used instead of accessing the core
connection config directly.APLOG_TRACEn
CONN_STATE
valuesap_escape_html
updated;
+ ap_unescape_all
, ap_escape_path_segment_buffer
EXEC_ON_READ
config
+ reading stage need to call ap_reserve_module_slots()
or
+ ap_reserve_module_slots_directive()
in their
+ pre_config hook
.APLOG_TRACEn
ap_log_*error
become macro wrappers (backwards-compatible if
+ APLOG_MARK
macro is used, except that is no longer possible to
+ use #ifdef
inside the argument list)module_index
added to error_log hookap_log_command_line
EOR
bucket typeap_process_async_request
AP_AUTH_INTERNAL_PER_CONF
and
+ AP_AUTH_INTERNAL_PER_URI
access_checker_ex
hook to apply additional access control
+ and/or bypass authentication.ap_hook_check_access_ex
,
+ ap_hook_check_access
, ap_hook_check_authn
,
+ ap_hook_check_authz
which accept
+ AP_AUTH_INTERNAL_PER_*
flagsap_hook_access_checker
,
+ access_checker_ex
, ap_hook_check_user_id
,
+ ap_hook_auth_checker
When possible, registering all access control hooks (including
- authentication and authorization hooks) using AP_AUTH_INTERNAL_PER_CONF
+ authentication and authorization hooks) using AP_AUTH_INTERNAL_PER_CONF
is recommended. If all modules' access control hooks are registered
with this flag, then whenever the server handles an internal
sub-request that matches the same set of access control configuration
@@ -198,7 +210,8 @@
If your module requires the old behavior and must perform access control checks on every sub-request with a different URI from the initial request, even if that URI matches the same set of access - control configuration directives, then use AP_AUTH_INTERNAL_PER_URI.
+ control configuration directives, then use +AP_AUTH_INTERNAL_PER_URI
.
Introduces a commit_entity() function to the cache provider interface, - allowing atomic writes to cache. Add a cache_status() hook to report - the cache decision. Remove all private structures and functions from the - public mod_cache.h header file.
+Introduces a commit_entity()
function to the cache provider
+ interface, allowing atomic writes to cache. Add a cache_status()
+ hook to report the cache decision. All private structures and functions were
+ removed.
accept
, lockfile
, lock_mech
,
+ set_scoreboard
(locking uses the new ap_mutex API)mpm_query
, timed_callback
, and
+ get_name
monitor
hook,
+ ap_reclaim_child_processes
,
+ ap_relieve_child_processes
ap_get_scoreboard_worker is gratuitously made non-back-compatible +
ap_get_scoreboard_worker
is made non-backwards-compatible
as an alternative version is introduced. Additional proxy_balancer
support. Child status stuff revamped.
I have yet to get a handle on this update.
+no description available
A wrapper for APR proc and global mutexes in httpd.
+A wrapper for APR proc and global mutexes in httpd, providing + common configuration for the underlying mechanism and location + of lock files.
NEW: ap_args_to_table
+NEW: ap_args_to_table
NEW: ap_recent_ctime_ex
+NEW: ap_recent_ctime_ex
unixd_config
conn_rec->remote_ip and conn_rec->remote_addr
conn_rec->remote_ip
and
+ conn_rec->remote_addr
request_rec->useragent_ip
and
+ request_rec->useragent_addr
.conn_rec->client_ip
and
+ conn_rec->client_addr
.
ap_extended_status
to 1
in a
pre-config hook and the extended status data will be
available.
-
diff --git a/docs/manual/new_features_2_4.xml.fr b/docs/manual/new_features_2_4.xml.fr
index 1a8122ad51..8427488de0 100644
--- a/docs/manual/new_features_2_4.xml.fr
+++ b/docs/manual/new_features_2_4.xml.fr
@@ -3,7 +3,7 @@
-
+
+