/* 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. */ /** * @file mod_core.h * @brief mod_core private header file * * @defgroup MOD_CORE mod_core * @ingroup APACHE_MODS * @{ */ #ifndef MOD_CORE_H #define MOD_CORE_H #include "apr.h" #include "apr_buckets.h" #include "httpd.h" #include "util_filter.h" #ifdef __cplusplus extern "C" { #endif /* Handles for core filters */ AP_DECLARE_DATA extern ap_filter_rec_t *ap_http_input_filter_handle; AP_DECLARE_DATA extern ap_filter_rec_t *ap_http_header_filter_handle; AP_DECLARE_DATA extern ap_filter_rec_t *ap_chunk_filter_handle; AP_DECLARE_DATA extern ap_filter_rec_t *ap_http_outerror_filter_handle; AP_DECLARE_DATA extern ap_filter_rec_t *ap_byterange_filter_handle; /* * These (input) filters are internal to the mod_core operation. */ apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b, ap_input_mode_t mode, apr_read_type_e block, apr_off_t readbytes); /* HTTP/1.1 chunked transfer encoding filter. */ apr_status_t ap_http_chunk_filter(ap_filter_t *f, apr_bucket_brigade *b); /* Filter to handle any error buckets on output */ apr_status_t ap_http_outerror_filter(ap_filter_t *f, apr_bucket_brigade *b); char *ap_response_code_string(request_rec *r, int error_index); /** * Send the minimal part of an HTTP response header. * @param r The current request * @param bb The brigade to add the header to. * @warning Modules should be very careful about using this, and should * the default behavior. Much of the HTTP/1.1 implementation * correctness depends on the full headers. * @fn void ap_basic_http_header(request_rec *r, apr_bucket_brigade *bb) */ AP_DECLARE(void) ap_basic_http_header(request_rec *r, apr_bucket_brigade *bb); /** * Send an appropriate response to an http TRACE request. * @param r The current request * @note returns DONE or the HTTP status error if it handles the TRACE, * or DECLINED if the request was not for TRACE. * request method was not TRACE. */ AP_DECLARE_NONSTD(int) ap_send_http_trace(request_rec *r); /** * Send an appropriate response to an http OPTIONS request. * @param r The current request */ AP_DECLARE(int) ap_send_http_options(request_rec *r); /* Used for multipart/byteranges boundary string */ AP_DECLARE_DATA extern const char *ap_multipart_boundary; /* Init RNG at startup */ AP_CORE_DECLARE(void) ap_init_rng(apr_pool_t *p); /* Update RNG state in parent after fork */ AP_CORE_DECLARE(void) ap_random_parent_after_fork(void); #ifdef __cplusplus } #endif #endif /* !MOD_CORE_H */ /** @} */