ap_mmn.h revision 30b4a330a5f651eb5198fa93dbb9f3d3594564c9
97a9a944b5887e91042b019776c41d5dd74557aferikabele/* ====================================================================
97a9a944b5887e91042b019776c41d5dd74557aferikabele * The Apache Software License, Version 1.1
97a9a944b5887e91042b019776c41d5dd74557aferikabele *
a945f35eff8b6a88009ce73de6d4c862ce58de3cslive * Copyright (c) 2000-2002 The Apache Software Foundation. All rights
a945f35eff8b6a88009ce73de6d4c862ce58de3cslive * reserved.
a945f35eff8b6a88009ce73de6d4c862ce58de3cslive *
5a58787efeb02a1c3f06569d019ad81fd2efa06end * Redistribution and use in source and binary forms, with or without
5a58787efeb02a1c3f06569d019ad81fd2efa06end * modification, are permitted provided that the following conditions
5a58787efeb02a1c3f06569d019ad81fd2efa06end * are met:
5a58787efeb02a1c3f06569d019ad81fd2efa06end *
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * 1. Redistributions of source code must retain the above copyright
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * notice, this list of conditions and the following disclaimer.
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen *
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * 2. Redistributions in binary form must reproduce the above copyright
5a58787efeb02a1c3f06569d019ad81fd2efa06end * notice, this list of conditions and the following disclaimer in
5a58787efeb02a1c3f06569d019ad81fd2efa06end * the documentation and/or other materials provided with the
5a58787efeb02a1c3f06569d019ad81fd2efa06end * distribution.
5a58787efeb02a1c3f06569d019ad81fd2efa06end *
3f08db06526d6901aa08c110b5bc7dde6bc39905nd * 3. The end-user documentation included with the redistribution,
5a58787efeb02a1c3f06569d019ad81fd2efa06end * if any, must include the following acknowledgment:
5a58787efeb02a1c3f06569d019ad81fd2efa06end * "This product includes software developed by the
5a58787efeb02a1c3f06569d019ad81fd2efa06end * Apache Software Foundation (http://www.apache.org/)."
3f08db06526d6901aa08c110b5bc7dde6bc39905nd * Alternately, this acknowledgment may appear in the software itself,
5a58787efeb02a1c3f06569d019ad81fd2efa06end * if and wherever such third-party acknowledgments normally appear.
a63f0ab647ad2ab72efc9bea7a66e24e9ebc5cc2nd *
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd * 4. The names "Apache" and "Apache Software Foundation" must
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd * not be used to endorse or promote products derived from this
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd * software without prior written permission. For written
e1e8390280254f7f0580d701e583f670643d4f3fnilgun * permission, please contact apache@apache.org.
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung *
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd * 5. Products derived from this software may not be called "Apache",
5a58787efeb02a1c3f06569d019ad81fd2efa06end * nor may "Apache" appear in their name, without prior written
5a58787efeb02a1c3f06569d019ad81fd2efa06end * permission of the Apache Software Foundation.
5a58787efeb02a1c3f06569d019ad81fd2efa06end *
5a58787efeb02a1c3f06569d019ad81fd2efa06end * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
5a58787efeb02a1c3f06569d019ad81fd2efa06end * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
5a58787efeb02a1c3f06569d019ad81fd2efa06end * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
5a58787efeb02a1c3f06569d019ad81fd2efa06end * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
06ba4a61654b3763ad65f52283832ebf058fdf1cslive * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
ced7ef1f8c0df1805da0e87dbc5a1b6282910573nd * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
ced7ef1f8c0df1805da0e87dbc5a1b6282910573nd * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
b21197dc8e6b8c764fdcc24d4bae8b0eebb6bc4end * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive * SUCH DAMAGE.
97a9a944b5887e91042b019776c41d5dd74557aferikabele * ====================================================================
f8396ed8364b56ec8adeaa49cac35a929758a29eslive *
ffb01336be79c64046b636e59fa8ddca8ec029edsf * This software consists of voluntary contributions made by many
f8396ed8364b56ec8adeaa49cac35a929758a29eslive * individuals on behalf of the Apache Software Foundation. For more
f8396ed8364b56ec8adeaa49cac35a929758a29eslive * information on the Apache Software Foundation, please see
5a58787efeb02a1c3f06569d019ad81fd2efa06end * <http://www.apache.org/>.
5a58787efeb02a1c3f06569d019ad81fd2efa06end */
5a58787efeb02a1c3f06569d019ad81fd2efa06end
5a58787efeb02a1c3f06569d019ad81fd2efa06end#ifndef APACHE_AP_MMN_H
deeee6bb6fd94c0ba5f3730b58abd9d299c89ccdnd#define APACHE_AP_MMN_H
4db28ee269aa06f7c6232e11cd01f58c3349af23noodl
117c1f888a14e73cdd821dc6c23eb0411144a41cnd/**
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * @package Module Magic Number
4a31db3c3a0202003c1b9f87affa7cc143e120e5sf */
117c1f888a14e73cdd821dc6c23eb0411144a41cnd
ffb01336be79c64046b636e59fa8ddca8ec029edsf/*
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * MODULE_MAGIC_NUMBER_MAJOR
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * Major API changes that could cause compatibility problems for older modules
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * such as structure size changes. No binary compatibility is possible across
2bc7f1cf720973a67f8ff7a8d523e40569ae5b6cnd * a change in the major version.
117c1f888a14e73cdd821dc6c23eb0411144a41cnd *
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * MODULE_MAGIC_NUMBER_MINOR
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * Minor API changes that do not cause binary compatibility problems.
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * Should be reset to 0 when upgrading MODULE_MAGIC_NUMBER_MAJOR.
117c1f888a14e73cdd821dc6c23eb0411144a41cnd *
117c1f888a14e73cdd821dc6c23eb0411144a41cnd * See the MODULE_MAGIC_AT_LEAST macro below for an example.
87ffb6e33f3cbef3b9bb406cc2d27039fa336eaatrawick */
4db28ee269aa06f7c6232e11cd01f58c3349af23noodl
5a58787efeb02a1c3f06569d019ad81fd2efa06end/*
5a58787efeb02a1c3f06569d019ad81fd2efa06end * 20010224 (2.0.13-dev) MODULE_MAGIC_COOKIE reset to "AP20"
5a58787efeb02a1c3f06569d019ad81fd2efa06end * 20010523 (2.0.19-dev) bump for scoreboard structure reordering
5a58787efeb02a1c3f06569d019ad81fd2efa06end * 20010627 (2.0.19-dev) more API changes than I can count
5a58787efeb02a1c3f06569d019ad81fd2efa06end * 20010726 (2.0.22-dev) more big API changes
5a58787efeb02a1c3f06569d019ad81fd2efa06end * 20010808 (2.0.23-dev) dir d_is_absolute bit introduced, bucket changes, etc
654d8eb036bedc99e90e11910ee02d3421417697rbowen * 20010825 (2.0.25-dev) removed d_is_absolute, introduced map_to_storage hook
5a58787efeb02a1c3f06569d019ad81fd2efa06end * 20011002 (2.0.26-dev) removed 1.3-depreciated request_rec.content_language
5a58787efeb02a1c3f06569d019ad81fd2efa06end * 20011127 (2.0.29-dev) bump for postconfig hook change, and removal of socket
5a58787efeb02a1c3f06569d019ad81fd2efa06end * from connection record
5a58787efeb02a1c3f06569d019ad81fd2efa06end * 20011212 (2.0.30-dev) bump for new used_path_info member of request_rec
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf * 20011218 (2.0.30-dev) bump for new sbh member of conn_rec, different
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick * declarations for scoreboard, new parameter to
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick * create_connection hook
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick * 20020102 (2.0.30-dev) bump for changed type of limit_req_body in
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick * core_dir_config
06ba4a61654b3763ad65f52283832ebf058fdf1cslive * 20020109 (2.0.31-dev) bump for changed shm and scoreboard declarations
654d8eb036bedc99e90e11910ee02d3421417697rbowen * 20020111 (2.0.31-dev) bump for ETag fields added at end of cor_dir_config
06ba4a61654b3763ad65f52283832ebf058fdf1cslive * 20020114 (2.0.31-dev) mod_dav changed how it asks its provider to fulfill
06ba4a61654b3763ad65f52283832ebf058fdf1cslive * a GET request
06ba4a61654b3763ad65f52283832ebf058fdf1cslive * 20020118 (2.0.31-dev) Input filtering split of blocking and mode
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive * 20020127 (2.0.31-dev) bump for pre_mpm hook change
97a9a944b5887e91042b019776c41d5dd74557aferikabele * 20020128 (2.0.31-dev) bump for pre_config hook change
654d8eb036bedc99e90e11910ee02d3421417697rbowen * 20020218 (2.0.33-dev) bump for AddOutputFilterByType directive
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive * 20020220 (2.0.33-dev) bump for scoreboard.h structure change
97a9a944b5887e91042b019776c41d5dd74557aferikabele * 20020302 (2.0.33-dev) bump for protocol_filter additions.
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive * 20020306 (2.0.34-dev) bump for filter type renames.
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive * 20020318 (2.0.34-dev) mod_dav's API for REPORT generation changed
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive * 20020319 (2.0.34-dev) M_INVALID changed, plus new M_* methods for RFC 3253
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive * 20020327 (2.0.35-dev) Add parameter to quick_handler hook
ffb01336be79c64046b636e59fa8ddca8ec029edsf */
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick
ffb01336be79c64046b636e59fa8ddca8ec029edsf#define MODULE_MAGIC_COOKIE 0x41503230UL /* "AP20" */
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick#ifndef MODULE_MAGIC_NUMBER_MAJOR
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick#define MODULE_MAGIC_NUMBER_MAJOR 20020327
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick#endif
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick#define MODULE_MAGIC_NUMBER_MINOR 0 /* 0...n */
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf#define MODULE_MAGIC_NUMBER MODULE_MAGIC_NUMBER_MAJOR /* backward compat */
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf/**
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf * Determine if the server's current MODULE_MAGIC_NUMBER is at least a
ffb01336be79c64046b636e59fa8ddca8ec029edsf * specified value.
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick * <pre>
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf * Useful for testing for features.
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick * For example, suppose you wish to use the apr_table_overlap
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick * function. You can do this:
77c77cf89621f21c8e2bbad63058b5eaa5f88d4ajim *
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick * #if MODULE_MAGIC_AT_LEAST(19980812,2)
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf * ... use apr_table_overlap()
ced7ef1f8c0df1805da0e87dbc5a1b6282910573nd * #else
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick * ... alternative code which doesn't use apr_table_overlap()
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf * #endif
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf * </pre>
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf * @param major The major module magic number
ced7ef1f8c0df1805da0e87dbc5a1b6282910573nd * @param minor The minor module magic number
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick * @deffunc MODULE_MAGIC_AT_LEAST(int major, int minor)
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick */
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick#define MODULE_MAGIC_AT_LEAST(major,minor) \
4a31db3c3a0202003c1b9f87affa7cc143e120e5sf ((major) > MODULE_MAGIC_NUMBER_MAJOR \
4a31db3c3a0202003c1b9f87affa7cc143e120e5sf || ((major) == MODULE_MAGIC_NUMBER_MAJOR \
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick && (minor) >= MODULE_MAGIC_NUMBER_MINOR))
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick#endif /* !APACHE_AP_MMN_H */
ffb01336be79c64046b636e59fa8ddca8ec029edsf