1/* Licensed to the Apache Software Foundation (ASF) under one or more 2 * contributor license agreements. See the NOTICE file distributed with 3 * this work for additional information regarding copyright ownership. 4 * The ASF licenses this file to You under the Apache License, Version 2.0 5 * (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 18/** 19 * @file mod_core.h 20 * @brief mod_core private header file 21 * 22 * @defgroup MOD_CORE mod_core 23 * @ingroup APACHE_MODS 24 * @{ 25 */ 26 27#ifndef MOD_CORE_H 28#define MOD_CORE_H 29 30#include "apr.h" 31#include "apr_buckets.h" 32 33#include "httpd.h" 34#include "util_filter.h" 35 36 37#ifdef __cplusplus 38extern "C" { 39#endif 40 41/* Handles for core filters */ 42extern AP_DECLARE_DATA ap_filter_rec_t *ap_http_input_filter_handle; 43extern AP_DECLARE_DATA ap_filter_rec_t *ap_http_header_filter_handle; 44extern AP_DECLARE_DATA ap_filter_rec_t *ap_chunk_filter_handle; 45extern AP_DECLARE_DATA ap_filter_rec_t *ap_http_outerror_filter_handle; 46extern AP_DECLARE_DATA ap_filter_rec_t *ap_byterange_filter_handle; 47 48/* 49 * These (input) filters are internal to the mod_core operation. 50 */ 51apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b, 52 ap_input_mode_t mode, apr_read_type_e block, 53 apr_off_t readbytes); 54 55/* HTTP/1.1 chunked transfer encoding filter. */ 56apr_status_t ap_http_chunk_filter(ap_filter_t *f, apr_bucket_brigade *b); 57 58/* Filter to handle any error buckets on output */ 59apr_status_t ap_http_outerror_filter(ap_filter_t *f, 60 apr_bucket_brigade *b); 61 62char *ap_response_code_string(request_rec *r, int error_index); 63 64/** 65 * Send the minimal part of an HTTP response header. 66 * @param r The current request 67 * @param bb The brigade to add the header to. 68 * @warning Modules should be very careful about using this, and should 69 * the default behavior. Much of the HTTP/1.1 implementation 70 * correctness depends on the full headers. 71 * @deffunc void ap_basic_http_header(request_rec *r, apr_bucket_brigade *bb) 72 */ 73AP_DECLARE(void) ap_basic_http_header(request_rec *r, apr_bucket_brigade *bb); 74 75/** 76 * Send an appropriate response to an http TRACE request. 77 * @param r The current request 78 * @tip returns DONE or the HTTP status error if it handles the TRACE, 79 * or DECLINED if the request was not for TRACE. 80 * request method was not TRACE. 81 */ 82AP_DECLARE_NONSTD(int) ap_send_http_trace(request_rec *r); 83 84/** 85 * Send an appropriate response to an http OPTIONS request. 86 * @param r The current request 87 */ 88AP_DECLARE(int) ap_send_http_options(request_rec *r); 89 90#ifdef __cplusplus 91} 92#endif 93 94#endif /* !MOD_CORE_H */ 95/** @} */ 96