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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
20 * @brief mod_core private header file
22 * @defgroup MOD_CORE mod_core
23 * @ingroup APACHE_MODS
31 #include "apr_buckets.h"
34 #include "util_filter.h"
41 /* Handles for core filters */
42 AP_DECLARE_DATA extern ap_filter_rec_t *ap_http_input_filter_handle;
43 AP_DECLARE_DATA extern ap_filter_rec_t *ap_http_header_filter_handle;
44 AP_DECLARE_DATA extern ap_filter_rec_t *ap_chunk_filter_handle;
45 AP_DECLARE_DATA extern ap_filter_rec_t *ap_http_outerror_filter_handle;
46 AP_DECLARE_DATA extern ap_filter_rec_t *ap_byterange_filter_handle;
49 * These (input) filters are internal to the mod_core operation.
51 apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b,
52 ap_input_mode_t mode, apr_read_type_e block,
55 /* HTTP/1.1 chunked transfer encoding filter. */
56 apr_status_t ap_http_chunk_filter(ap_filter_t *f, apr_bucket_brigade *b);
58 /* Filter to handle any error buckets on output */
59 apr_status_t ap_http_outerror_filter(ap_filter_t *f,
60 apr_bucket_brigade *b);
62 char *ap_response_code_string(request_rec *r, int error_index);
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 * @fn void ap_basic_http_header(request_rec *r, apr_bucket_brigade *bb)
73 AP_DECLARE(void) ap_basic_http_header(request_rec *r, apr_bucket_brigade *bb);
76 * Send an appropriate response to an http TRACE request.
77 * @param r The current request
78 * @note 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.
82 AP_DECLARE_NONSTD(int) ap_send_http_trace(request_rec *r);
85 * Send an appropriate response to an http OPTIONS request.
86 * @param r The current request
88 AP_DECLARE(int) ap_send_http_options(request_rec *r);
90 /* Used for multipart/byteranges boundary string */
91 AP_DECLARE_DATA extern const char *ap_multipart_boundary;
93 /* Init RNG at startup */
94 AP_CORE_DECLARE(void) ap_init_rng(apr_pool_t *p);
95 /* Update RNG state in parent after fork */
96 AP_CORE_DECLARE(void) ap_random_parent_after_fork(void);
102 #endif /* !MOD_CORE_H */