You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ni...@apache.org on 2010/06/13 16:04:27 UTC
svn commit: r954227 - /httpd/httpd/trunk/docs/manual/new_api_2_4.xml
Author: niq
Date: Sun Jun 13 14:04:27 2010
New Revision: 954227
URL: http://svn.apache.org/viewvc?rev=954227&view=rev
Log:
Make a start on documenting API changes in a form we can publish
Added:
httpd/httpd/trunk/docs/manual/new_api_2_4.xml
Added: httpd/httpd/trunk/docs/manual/new_api_2_4.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/new_api_2_4.xml?rev=954227&view=auto
==============================================================================
--- httpd/httpd/trunk/docs/manual/new_api_2_4.xml (added)
+++ httpd/httpd/trunk/docs/manual/new_api_2_4.xml Sun Jun 13 14:04:27 2010
@@ -0,0 +1,196 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
+<?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?>
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<manualpage metafile="new_api_2_4.xml.meta">
+
+<title>API Changes in Apache HTTP Server 2.4 since 2.2</title>
+
+<summary>
+ <p>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.</p>
+ <p>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).</p>
+ <p>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 <code>make docs</code>.</p>
+</summary>
+
+ <section id="ap_expr">
+ <title>ap_expr (NEW!)</title>
+ <p>Introduces a new API to parse and evaluate boolean and algebraic
+ expressions, including provision for a standard syntax and
+ customised variants.</p>
+ </section>
+
+ <section id="ap_listen">
+ <title>ap_listen (changed; back-compatible)</title>
+ <p>Introduces new API to enable apache child processes to serve different purposes.</p>
+ </section>
+
+ <section id="ap_mpm">
+ <title>ap_mpm (changed)</title>
+ <p><code>ap_mpm_run</code> is replaced by a new <code>mpm</code> hook.
+ Also <code>ap_graceful_stop_signalled</code> is lost, and
+ <code>ap_mpm_register_timed_callback</code> is new.</p>
+ </section>
+
+ <section id="ap_slotmem">
+ <title>ap_slotmem (NEW!)</title>
+ <p>Introduces an API for modules to allocate and manage memory slots
+ (normally) for shared memory.</p>
+ </section>
+
+ <section id="ap_socache">
+ <title>ap_socache (NEW!)</title>
+ <p>API to manage a shared object cache.</p>
+ </section>
+
+ <section id="heartbeat">
+ <title>heartbeat (NEW!)</title>
+ <p>common structures for heartbeat modules (should this be public API?)</p>
+ </section>
+
+ <section id="http_config">
+ <title>http_config (changed)</title>
+ <ul>
+ <li>Introduces per-module, per-directory loglevels, including macro wrappers.</li>
+ <li>New AP_DECLARE_MODULE macro to declare all modules.</li>
+ <li>New API to retain data across module unload/load</li>
+ <li>New check_config hook</li>
+ <li>New ap_process_fnmatch_configs() to process wildcards</li>
+ </ul>
+ </section>
+
+ <section id="http_core">
+ <title>http_core (changed)</title>
+ <ul>
+ <li>REMOVED ap_default_type, ap_requires, all 2.2 authnz API</li>
+ <li>Introduces Optional Functions for logio and authnz</li>
+ <li>New function ap_get_server_name_for_url to support ipv6 literals.</li>
+ </ul>
+ </section>
+
+ <section id="httpd">
+ <title>httpd (changed)</title>
+ <ul>
+ <li>Introduce per-directory, per-module loglevel</li>
+ <li>New loglevels APLOG_TRACEn</li>
+ <li>Support for mod_request kept_body</li>
+ <li>Support buffering filter data for async requests</li>
+ <li>New CONN_STATE values</li>
+ <li>Function changes: ap_escape_html updated; ap_unescape_all, ap_escape_path_segment_buffer</li>
+ </ul>
+ </section>
+
+ <section id="http_log">
+ <title>http_log (changed)</title>
+ <ul>
+ <li>Introduce per-directory, per-module loglevel</li>
+ <li>New loglevels APLOG_TRACEn</li>
+ <li>ap_log_*error become macro wrappers (fully back-compatible change)</li>
+ <li>piped logging revamped</li>
+ <li>module_index added to error_log hook</li>
+ <li>new function: ap_log_command_line</li>
+ </ul>
+ </section>
+
+ <section id="http_request">
+ <title>http_request (changed)</title>
+ <ul>
+ <li>New auth_internal API and auth_provider API</li>
+ <li>New EOR bucket type</li>
+ <li>New function ap_process_async_request</li>
+ <li>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?)</li>
+ </ul>
+ </section>
+
+ <section id="mod_auth">
+ <title>mod_auth (NEW!)</title>
+ <p>Introduces the new provider framework for authn and authz</p>
+ </section>
+
+ <section id="mod_core">
+ <title>mod_core (NEW!)</title>
+ <p>This introduces low-level APIs to send arbitrary headers,
+ and exposes functions to handle HTTP OPTIONS and TRACE.</p>
+ </section>
+
+ <section id="mod_request">
+ <title>mod_request (NEW!)</title>
+ <p>The API for <module>mod_request</module>, to make input data
+ available to multiple application/handler modules where required,
+ and to parse HTML form data.</p>
+ </section>
+
+ <section id="mpm_common">
+ <title>mpm_common (changed)</title>
+ <ul>
+ <li>REMOVES: accept, lockfile, lock_mech, set_scoreboard (locking uses the new ap_mutex API)</li>
+ <li>NEW API to drop privileges (delegates this platform-dependent
+ function to modules)</li>
+ <li>NEW Hooks: mpm_query, mpm_note_child_killed, timed_callback, get_name, and function ap_mpm_note_child_killed</li>
+ </ul>
+ </section>
+
+ <section id="scoreboard">
+ <title>scoreboard (changed)</title>
+ <p>ap_get_scoreboard_worker is gratuitously made non-back-compatible
+ as an alternative version is introduced. Additional proxy_balancer
+ support. Child status stuff revamped.</p>
+ </section>
+
+ <section id="util_cookies">
+ <title>util_cookies (NEW!)</title>
+ <p>Introduces a new API for managing HTTP Cookies.</p>
+ </section>
+
+ <section id="util_ldap">
+ <title>util_ldap (changed)</title>
+ <p>I have yet to get a handle on this update.</p>
+ </section>
+
+ <section id="util_mutex">
+ <title>util_mutex (NEW!)</title>
+ <p>A wrapper for APR proc and global mutexes in httpd.</p>
+ </section>
+
+ <section id="util_script">
+ <title>util_script (changed)</title>
+ <p>NEW: ap_args_to_table</p>
+ </section>
+
+ <section id="util_time">
+ <title>util_time (changed)</title>
+ <p>NEW: ap_recent_ctime_ex</p>
+ </section>
+
+</manualpage>