ap_mmn.h revision 145c5beb31c8b8027abb03cfde5f16d93d198753
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder/* Licensed to the Apache Software Foundation (ASF) under one or more
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * contributor license agreements. See the NOTICE file distributed with
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * this work for additional information regarding copyright ownership.
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * The ASF licenses this file to You under the Apache License, Version 2.0
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu Prodescu * (the "License"); you may not use this file except in compliance with
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * the License. You may obtain a copy of the License at
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder *
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * http://www.apache.org/licenses/LICENSE-2.0
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder *
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * Unless required by applicable law or agreed to in writing, software
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * distributed under the License is distributed on an "AS IS" BASIS,
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * See the License for the specific language governing permissions and
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * limitations under the License.
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder */
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder/**
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * @file ap_mpm.h
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * @brief Module Magic Number
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder *
a3631d87c556bfbce810f6207abeee30ca6a6590Christian Maeder * @defgroup APACHE_CORE_MMN Module Magic Number
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * @ingroup APACHE_CORE
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * @{
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder */
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder#ifndef APACHE_AP_MMN_H
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder#define APACHE_AP_MMN_H
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder
10b02b2343246df6773585636fe3ddbefa3b6a1bChristian Maeder/*
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * MODULE_MAGIC_NUMBER_MAJOR
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * Major API changes that could cause compatibility problems for older modules
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * such as structure size changes. No binary compatibility is possible across
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * a change in the major version.
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder *
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * MODULE_MAGIC_NUMBER_MINOR
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * Minor API changes that do not cause binary compatibility problems.
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * Should be reset to 0 when upgrading MODULE_MAGIC_NUMBER_MAJOR.
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder *
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * See the MODULE_MAGIC_AT_LEAST macro below for an example.
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder */
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder/*
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20010224 (2.0.13-dev) MODULE_MAGIC_COOKIE reset to "AP20"
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20010523 (2.0.19-dev) bump for scoreboard structure reordering
e418cbe496169f326cdaa6b4ba60f23d74c6b0bdChristian Maeder * 20010627 (2.0.19-dev) more API changes than I can count
e418cbe496169f326cdaa6b4ba60f23d74c6b0bdChristian Maeder * 20010726 (2.0.22-dev) more big API changes
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20010808 (2.0.23-dev) dir d_is_absolute bit introduced, bucket changes, etc
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20010825 (2.0.25-dev) removed d_is_absolute, introduced map_to_storage hook
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20011002 (2.0.26-dev) removed 1.3-deprecated request_rec.content_language
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20011127 (2.0.29-dev) bump for postconfig hook change, and removal of
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * socket from connection record
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20011212 (2.0.30-dev) bump for new used_path_info member of request_rec
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20011218 (2.0.30-dev) bump for new sbh member of conn_rec, different
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * declarations for scoreboard, new parameter to
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * create_connection hook
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020102 (2.0.30-dev) bump for changed type of limit_req_body in
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * core_dir_config
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020109 (2.0.31-dev) bump for changed shm and scoreboard declarations
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020111 (2.0.31-dev) bump for ETag fields added at end of cor_dir_config
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020114 (2.0.31-dev) mod_dav changed how it asks its provider to fulfill
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * a GET request
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20020118 (2.0.31-dev) Input filtering split of blocking and mode
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20020127 (2.0.31-dev) bump for pre_mpm hook change
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20020128 (2.0.31-dev) bump for pre_config hook change
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20020218 (2.0.33-dev) bump for AddOutputFilterByType directive
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020220 (2.0.33-dev) bump for scoreboard.h structure change
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020302 (2.0.33-dev) bump for protocol_filter additions.
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20020306 (2.0.34-dev) bump for filter type renames.
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020318 (2.0.34-dev) mod_dav's API for REPORT generation changed
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020319 (2.0.34-dev) M_INVALID changed, plus new M_* methods for RFC 3253
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020327 (2.0.35-dev) Add parameter to quick_handler hook
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020329 (2.0.35-dev) bump for addition of freelists to bucket API
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020329.1 (2.0.36) minor bump for new arg to opt fn ap_cgi_build_command
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020506 (2.0.37-dev) Removed r->boundary in request_rec.
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020529 (2.0.37-dev) Standardized the names of some apr_pool_*_set funcs
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020602 (2.0.37-dev) Bucket API change (metadata buckets)
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020612 (2.0.38-dev) Changed server_rec->[keep_alive_]timeout to apr time
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20020625 (2.0.40-dev) Changed conn_rec->keepalive to an enumeration
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20020628 (2.0.40-dev) Added filter_init to filter registration functions
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20020903 (2.0.41-dev) APR's error constants changed
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20020903.1 (2.1.0-dev) allow_encoded_slashes added to core_dir_config
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20020903.2 (2.0.46-dev) add ap_escape_logitem
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20030213.1 (2.1.0-dev) changed log_writer optional fn's to return previous
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * handler
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20030821 (2.1.0-dev) bumped mod_include's entire API
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20030821.1 (2.1.0-dev) added XHTML doctypes
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20030821.2 (2.1.0-dev) added ap_escape_errorlog_item
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20030821.3 (2.1.0-dev) added ap_get_server_revision / ap_version_t
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20040425 (2.1.0-dev) removed ap_add_named_module API
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * changed ap_add_module, ap_add_loaded_module,
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * ap_setup_prelinked_modules,
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * ap_process_resource_config
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20040425.1 (2.1.0-dev) Added ap_module_symbol_t and
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * ap_prelinked_module_symbols
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20050101.0 (2.1.2-dev) Axed misnamed http_method for http_scheme
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * (which it was!)
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20050127.0 (2.1.3-dev) renamed regex_t->ap_regex_t,
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * regmatch_t->ap_regmatch_t, REG_*->AP_REG_*,
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * removed reg* in place of ap_reg*; added ap_regex.h
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20050217.0 (2.1.3-dev) Axed find_child_by_pid, mpm_*_completion_context
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * (winnt mpm) symbols from the public sector, and
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * decorated real_exit_code with ap_ in the win32/os.h.
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20050305.0 (2.1.4-dev) added pid and generation fields to worker_score
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20050305.1 (2.1.5-dev) added ap_vhost_iterate_given_conn.
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20050305.2 (2.1.5-dev) added AP_INIT_TAKE_ARGV.
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20050305.3 (2.1.5-dev) added Protocol Framework.
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20050701.0 (2.1.7-dev) Bump MODULE_MAGIC_COOKIE to "AP21"!
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20050701.1 (2.1.7-dev) trace_enable member added to core server_config
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20050708.0 (2.1.7-dev) Bump MODULE_MAGIC_COOKIE to "AP22"!
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20050708.1 (2.1.7-dev) add proxy request_status hook (minor)
7bffb8b0e6cae4bb7ecb59b99327add6106c06b9Christian Maeder * 20050919.0 (2.1.8-dev) mod_ssl ssl_ext_list optional function added
7bffb8b0e6cae4bb7ecb59b99327add6106c06b9Christian Maeder * 20051005.0 (2.1.8-dev) NET_TIME filter eliminated
f52a4838c101d52bbbd689f6b51f2c1c9202f0a8Christian Maeder * 20051005.0 (2.3.0-dev) Bump MODULE_MAGIC_COOKIE to "AP24"!
7bffb8b0e6cae4bb7ecb59b99327add6106c06b9Christian Maeder * 20051115.0 (2.3.0-dev) Added use_canonical_phys_port to core_dir_config
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20060110.0 (2.3.0-dev) Conversion of Authz to be provider based
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * addition of <SatisfyAll><SatisfyOne>
7bffb8b0e6cae4bb7ecb59b99327add6106c06b9Christian Maeder * removal of Satisfy, Allow, Deny, Order
7bffb8b0e6cae4bb7ecb59b99327add6106c06b9Christian Maeder * 20060110.1 (2.3.0-dev) minex and minex_set members added to
7bffb8b0e6cae4bb7ecb59b99327add6106c06b9Christian Maeder * cache_server_conf (minor)
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20060110.2 (2.3.0-dev) flush_packets and flush_wait members added to
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * proxy_server (minor)
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20060110.3 (2.3.0-dev) added inreslist member to proxy_conn_rec (minor)
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20060110.4 (2.3.0-dev) Added server_scheme member to server_rec (minor)
7bffb8b0e6cae4bb7ecb59b99327add6106c06b9Christian Maeder * 20060905.0 (2.3.0-dev) Replaced ap_get_server_version() with
7bffb8b0e6cae4bb7ecb59b99327add6106c06b9Christian Maeder * ap_get_server_banner() and ap_get_server_description()
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20060905.1 (2.3.0-dev) Enable retry=0 for the worker (minor)
7bffb8b0e6cae4bb7ecb59b99327add6106c06b9Christian Maeder * 20060905.2 (2.3.0-dev) Added ap_all_available_mutexes_string,
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * ap_available_mutexes_string and
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * ap_parse_mutex()
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20060905.3 (2.3.0-dev) Added conn_rec::clogging_input_filters.
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * 20060905.4 (2.3.0-dev) Added proxy_balancer::sticky_path.
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * 20060905.5 (2.3.0-dev) Added ap_mpm_safe_kill()
adda0e6252b14215228e4071b347c49b808894f8Christian Maeder * 20070823.0 (2.3.0-dev) Removed ap_all_available_mutexes_string,
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * ap_available_mutexes_string for macros
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder * 20070823.1 (2.3.0-dev) add ap_send_interim_response()
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder *
adda0e6252b14215228e4071b347c49b808894f8Christian Maeder */
adda0e6252b14215228e4071b347c49b808894f8Christian Maeder
adda0e6252b14215228e4071b347c49b808894f8Christian Maeder#define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */
adda0e6252b14215228e4071b347c49b808894f8Christian Maeder
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder#ifndef MODULE_MAGIC_NUMBER_MAJOR
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder#define MODULE_MAGIC_NUMBER_MAJOR 20070823
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder#endif
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder#define MODULE_MAGIC_NUMBER_MINOR 1 /* 0...n */
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder/**
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * Determine if the server's current MODULE_MAGIC_NUMBER is at least a
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * specified value.
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * <pre>
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * Useful for testing for features.
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * For example, suppose you wish to use the apr_table_overlap
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * function. You can do this:
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder *
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * #if AP_MODULE_MAGIC_AT_LEAST(19980812,2)
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * ... use apr_table_overlap()
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * #else
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * ... alternative code which doesn't use apr_table_overlap()
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * #endif
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * </pre>
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder * @param major The major module magic number
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * @param minor The minor module magic number
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder * @fn AP_MODULE_MAGIC_AT_LEAST(int major, int minor)
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder */
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder#define AP_MODULE_MAGIC_AT_LEAST(major,minor) \
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder ((major) < MODULE_MAGIC_NUMBER_MAJOR \
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder || ((major) == MODULE_MAGIC_NUMBER_MAJOR \
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder && (minor) <= MODULE_MAGIC_NUMBER_MINOR))
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder/** @deprecated present for backwards compatibility */
e2ca90217abd35b3d5f98bfe73ecffb34badd837Christian Maeder#define MODULE_MAGIC_NUMBER MODULE_MAGIC_NUMBER_MAJOR
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder#define MODULE_MAGIC_AT_LEAST old_broken_macro_we_hope_you_are_not_using
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder#endif /* !APACHE_AP_MMN_H */
ee31a8a5f5d786472f2b5dfb271b38e6d401fa35Christian Maeder/** @} */
45ad02e03fb913ba373d8fdcfe50244be3df31eaChristian Maeder