blob: 0d7058ba87433280fb4d4c2b3d01937129dd6b05 [file] [log] [blame]
/* 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.
*/
#ifndef MODPERL_APACHE_COMPAT_H
#define MODPERL_APACHE_COMPAT_H
/* back compat adjustements for older Apache versions */
#if !APR_HAS_THREADS
typedef unsigned long apr_os_thread_t;
typedef void * apr_thread_mutex_t;
typedef void * apr_thread_rwlock_t;
#endif
/* back compat adjustements for older Apache versions
* BACK_COMPAT_MARKER: make back compat issues easy to find :)
*/
/* use the following format:
* #if ! AP_MODULE_MAGIC_AT_LEAST(20020903,4)
* [compat code]
* #endif
* and don't forget to insert comments explaining exactly
* which httpd release allows us to remove the compat code
*/
/* pre-APACHE_2.2.4 */
#if ! AP_MODULE_MAGIC_AT_LEAST(20051115,4)
/* added in APACHE_2.2.4 */
AP_DECLARE(const char *) ap_get_server_description(void);
AP_DECLARE(const char *) ap_get_server_banner(void);
#endif /* pre-APACHE_2.2.4 */
/* since-APACHE-2.3.0 */
#if AP_MODULE_MAGIC_AT_LEAST(20060905,0)
/* removed in APACHE-2.3.0 */
AP_DECLARE(const char *) ap_get_server_version(void);
#endif /* since-APACHE-2.3.0 */
/* ap_http_scheme is called ap_http_method in httpd 2.0 */
#ifndef ap_http_scheme
#define ap_http_scheme(r) ap_http_method(r)
#endif
#if AP_SERVER_MAJORVERSION_NUMBER>2 || AP_SERVER_MINORVERSION_NUMBER>=2
#define MP_HTTPD_HAS_OVERRIDE_OPTS
#endif
#define MP_HTTPD_OVERRIDE_HTACCESS (OR_LIMIT|OR_OPTIONS|OR_FILEINFO|OR_AUTHCFG|OR_INDEXES)
#define MP_HTTPD_OVERRIDE_OPTS_UNSET (-1)
#if AP_SERVER_MAJORVERSION_NUMBER>2 || \
(AP_SERVER_MAJORVERSION_NUMBER == 2 && AP_SERVER_MINORVERSION_NUMBER>=3)
/* 2.4 API */
#define MP_HTTPD_OVERRIDE_OPTS_DEFAULT (OPT_UNSET | \
OPT_ALL | \
OPT_SYM_OWNER | \
OPT_MULTI)
#define mp_add_loaded_module(modp, pool, name) \
ap_add_loaded_module((modp), (pool), (name))
#define mp_loglevel(s) ((s)->log.level)
#define mp_module_index_ perl_module.module_index,
#else
/* 2.2 API */
#define MP_HTTPD_OVERRIDE_OPTS_DEFAULT (OPT_UNSET | \
OPT_ALL | \
OPT_INCNOEXEC | \
OPT_SYM_OWNER | \
OPT_MULTI)
#define mp_add_loaded_module(modp, pool, name) \
ap_add_loaded_module((modp), (pool))
#define mp_loglevel(s) ((s)->loglevel)
#define mp_module_index_
#define ap_unixd_config unixd_config
#endif /* 2.4 vs. 2.2 API */
#ifndef PROXYREQ_RESPONSE
#define PROXYREQ_RESPONSE (3)
#endif
#endif /* MODPERL_APACHE_COMPAT_H */
/*
* Local Variables:
* c-basic-offset: 4
* indent-tabs-mode: nil
* End:
*/