26 #ifndef APACHE_HTTP_PROTOCOL_H
27 #define APACHE_HTTP_PROTOCOL_H
80 const char *method,
const char *
uri,
81 const char *protocol);
94 const char **pmethod,
const char **puri,
const char **pprotocol);
396 #define AP_METHOD_CHECK_ALLOWED(mask, methname) \
397 ((mask) & (AP_METHOD_BIT << ap_method_number_of((methname))))
509 if (len <= INT_MAX) {
706 #define AP_GET_BASIC_AUTH_PW_NOTE "AP_GET_BASIC_AUTH_PW_NOTE"
722 const char **username,
723 const char **password);
736 #define AP_GETLINE_FOLD (1 << 0)
737 #define AP_GETLINE_CRLF (1 << 1)
738 #define AP_GETLINE_NOSPC_EOL (1 << 2)
740 #define AP_GETLINE_NONBLOCK (1 << 3)
854 #define AP_PROTOCOL_HTTP1 "http/1.1"
920 const char *protocol))
990 const char *protocol);
1051 #define AP_BUCKET_IS_ERROR(e) (e->type == &ap_bucket_type_error)
1102 #define AP_BUCKET_IS_REQUEST(e) (e->type == &ap_bucket_type_request)
1119 const char *protocol,
1138 const char *protocol,
1156 const char *protocol,
1175 const char *protocol,
1218 #define AP_BUCKET_IS_RESPONSE(e) (e->type == &ap_bucket_type_response)
1245 int status,
const char *reason,
1287 #define AP_BUCKET_IS_HEADERS(e) (e->type == &ap_bucket_type_headers)
1365 const char *
name,
const char *value);
#define AP_FN_ATTR_SENTINEL
Definition: ap_config.h:231
#define AP_DECLARE_HOOK(ret, name, args)
Definition: ap_hooks.h:74
APR-UTIL Buckets/Bucket Brigades.
APR Portability Routines.
int int ap_rflush(request_rec *r)
int ap_method_number_of(const char *method)
int ap_parse_request_line(request_rec *r)
ap_condition_e
Definition: http_protocol.h:260
int protocol_switch(conn_rec *c, request_rec *r, server_rec *s, const char *protocol)
void ap_set_etag(request_rec *r)
void ap_method_registry_init(apr_pool_t *p)
request_rec * ap_create_request(conn_rec *c)
void ap_finalize_sub_req_protocol(request_rec *sub_r)
void ap_setup_make_content_type(apr_pool_t *pool)
AP_DECLARE_DATA const apr_bucket_type_t ap_bucket_type_response
apr_status_t ap_rgetline(char **s, apr_size_t n, apr_size_t *read, request_rec *r, int flags, apr_bucket_brigade *bb)
const char * http_scheme(const request_rec *r)
void ap_set_accept_ranges(request_rec *r)
apr_status_t ap_get_protocol_upgrades(conn_rec *c, request_rec *r, server_rec *s, int report_all, const apr_array_header_t **pupgrades)
ap_method_list_t * ap_make_method_list(apr_pool_t *p, int nelts)
apr_bucket * ap_bucket_request_make(apr_bucket *b, const char *method, const char *uri, const char *protocol, apr_table_t *headers, apr_pool_t *p)
int ap_map_http_request_error(apr_status_t rv, int status)
int ap_meets_conditions(request_rec *r)
ap_condition_e ap_condition_if_modified_since(request_rec *r, apr_table_t *headers)
const char * ap_get_status_line(int status)
int ap_method_register(apr_pool_t *p, const char *methname)
apr_status_t ap_h1_append_headers(apr_bucket_brigade *b, request_rec *r, apr_table_t *headers)
void ap_method_list_remove(ap_method_list_t *l, const char *method)
apr_bucket * ap_bucket_request_clone(apr_bucket *source, apr_pool_t *p, apr_bucket_alloc_t *list)
const char * ap_get_protocol(conn_rec *c)
int ap_h1_tokenize_request_line(request_rec *r, const char *line, const char **pmethod, const char **puri, const char **pprotocol)
void ap_set_etag_fd(request_rec *r, apr_file_t *fd)
void ap_method_list_add(ap_method_list_t *l, const char *method)
const char * protocol_get(const conn_rec *c)
void ap_send_interim_response(request_rec *r, int send_headers)
void ap_parse_uri(request_rec *r, const char *uri)
apr_time_t ap_rationalize_mtime(request_rec *r, apr_time_t mtime)
void ap_note_digest_auth_failure(request_rec *r)
int note_auth_failure(request_rec *r, const char *auth_type)
void ap_send_error_response(request_rec *r, int recursive_error)
void ap_finalize_request_protocol(request_rec *r)
void ap_note_auth_failure(request_rec *r)
AP_DECLARE_DATA ap_filter_rec_t * ap_old_write_func
int ap_get_basic_auth_pw(request_rec *r, const char **pw)
apr_status_t ap_h1_append_header(apr_bucket_brigade *b, apr_pool_t *pool, const char *name, const char *value)
void ap_note_basic_auth_failure(request_rec *r)
apr_status_t ap_http_header_filter(ap_filter_t *f, apr_bucket_brigade *b)
int ap_set_keepalive(request_rec *r)
void ap_set_sub_req_protocol(request_rec *rnew, const request_rec *r)
ap_condition_e ap_condition_if_range(request_rec *r, apr_table_t *headers)
int ap_rprintf(request_rec *r, const char *fmt,...) __attribute__((format(printf
ap_condition_e ap_condition_if_unmodified_since(request_rec *r, apr_table_t *headers)
const char * ap_make_content_type(request_rec *r, const char *type)
char * ap_make_etag(request_rec *r, int force_weak)
int ap_should_client_block(request_rec *r)
apr_status_t ap_get_basic_auth_components(const request_rec *r, const char **username, const char **password)
int ap_index_of_response(int status)
int ap_post_read_request(request_rec *r)
int protocol_propose(conn_rec *c, request_rec *r, server_rec *s, const apr_array_header_t *offers, apr_array_header_t *proposals)
apr_bucket * ap_bucket_response_create(int status, const char *reason, apr_table_t *headers, apr_table_t *notes, apr_pool_t *p, apr_bucket_alloc_t *list)
void ap_set_content_length(request_rec *r, apr_off_t length)
apr_status_t ap_switch_protocol(conn_rec *c, request_rec *r, server_rec *s, const char *protocol)
int log_transaction(request_rec *r)
apr_bucket * ap_bucket_request_maken(apr_bucket *b, const char *method, const char *uri, const char *protocol, apr_table_t *headers, apr_pool_t *p)
int ap_method_in_list(ap_method_list_t *l, const char *method)
const char * ap_method_name_of(apr_pool_t *p, int methnum)
int ap_rputc(int c, request_rec *r)
void ap_set_last_modified(request_rec *r)
apr_bucket * ap_bucket_headers_make(apr_bucket *b, apr_table_t *headers, apr_pool_t *p)
const char * ap_get_status_line_ex(apr_pool_t *p, int status)
int ap_assign_request_line(request_rec *r, const char *method, const char *uri, const char *protocol)
void ap_clear_method_list(ap_method_list_t *l)
apr_bucket * ap_bucket_response_make(apr_bucket *b, int status, const char *reason, apr_table_t *headers, apr_table_t *notes, apr_pool_t *p)
void ap_get_mime_headers_core(request_rec *r, apr_bucket_brigade *bb)
void ap_set_content_type(request_rec *r, const char *ct)
apr_status_t ap_byterange_filter(ap_filter_t *f, apr_bucket_brigade *b)
int ap_check_request_header(request_rec *r)
int ap_getline(char *s, int n, request_rec *r, int flags)
apr_bucket * ap_bucket_error_make(apr_bucket *b, int error, const char *buf, apr_pool_t *p)
AP_DECLARE_DATA const apr_bucket_type_t ap_bucket_type_request
apr_bucket * ap_bucket_request_createn(const char *method, const char *uri, const char *protocol, apr_table_t *headers, apr_pool_t *p, apr_bucket_alloc_t *list)
void ap_copy_method_list(ap_method_list_t *dest, ap_method_list_t *src)
ap_condition_e ap_condition_if_match(request_rec *r, apr_table_t *headers)
ap_condition_e ap_condition_if_none_match(request_rec *r, apr_table_t *headers)
const char * ap_select_protocol(conn_rec *c, request_rec *r, server_rec *s, const apr_array_header_t *choices)
void ap_set_std_response_headers(request_rec *r)
apr_status_t ap_content_length_filter(ap_filter_t *, apr_bucket_brigade *)
apr_size_t ap_send_mmap(apr_mmap_t *mm, request_rec *r, apr_size_t offset, apr_size_t length)
int ap_rvputs(request_rec *r,...) AP_FN_ATTR_SENTINEL
apr_status_t ap_fgetline(char **s, apr_size_t n, apr_size_t *read, ap_filter_t *f, int flags, apr_bucket_brigade *bb, apr_pool_t *p)
void pre_read_request(request_rec *r, conn_rec *c)
request_rec * ap_read_request(conn_rec *c)
apr_bucket * ap_bucket_headers_clone(apr_bucket *source, apr_pool_t *p, apr_bucket_alloc_t *list)
apr_bucket * ap_bucket_headers_create(apr_table_t *headers, apr_pool_t *p, apr_bucket_alloc_t *list)
int ap_rwrite(const void *buf, int nbyte, request_rec *r)
void ap_h1_add_end_chunk(apr_bucket_brigade *b, apr_bucket *eos, request_rec *r, apr_table_t *trailers)
apr_bucket * ap_bucket_error_create(int error, const char *buf, apr_pool_t *p, apr_bucket_alloc_t *list)
long ap_get_client_block(request_rec *r, char *buffer, apr_size_t bufsiz)
int ap_setup_client_block(request_rec *r, int read_policy)
apr_port_t default_port(const request_rec *r)
int post_read_request(request_rec *r)
int ap_is_allowed_protocol(conn_rec *c, request_rec *r, server_rec *s, const char *protocol)
int ap_discard_request_body(request_rec *r)
AP_DECLARE_DATA const apr_bucket_type_t ap_bucket_type_headers
apr_status_t ap_h1_terminate_header(apr_bucket_brigade *b)
int ap_vrprintf(request_rec *r, const char *fmt, va_list vlist)
apr_bucket * ap_bucket_request_create(const char *method, const char *uri, const char *protocol, apr_table_t *headers, apr_pool_t *p, apr_bucket_alloc_t *list)
apr_status_t ap_send_fd(apr_file_t *fd, request_rec *r, apr_off_t offset, apr_size_t length, apr_size_t *nbytes)
AP_DECLARE_DATA const apr_bucket_type_t ap_bucket_type_error
apr_status_t ap_old_write_filter(ap_filter_t *f, apr_bucket_brigade *b)
void ap_get_mime_headers(request_rec *r)
char * ap_make_etag_ex(request_rec *r, etag_rec *er)
apr_bucket * ap_bucket_response_clone(apr_bucket *source, apr_pool_t *p, apr_bucket_alloc_t *list)
@ AP_CONDITION_NONE
Definition: http_protocol.h:261
@ AP_CONDITION_STRONG
Definition: http_protocol.h:264
@ AP_CONDITION_WEAK
Definition: http_protocol.h:263
@ AP_CONDITION_NOMATCH
Definition: http_protocol.h:262
struct apr_bucket_alloc_t apr_bucket_alloc_t
Definition: apr_buckets.h:128
dav_resource int dav_locktoken dav_response int flags
Definition: mod_dav.h:1458
request_rec * r
Definition: mod_dav.h:518
dav_buffer const char * str
Definition: mod_dav.h:465
int status
Definition: mod_dav.h:141
apr_bucket_brigade * bb
Definition: mod_dav.h:555
const char * s
Definition: mod_dav.h:1327
dav_error * src
Definition: mod_dav.h:186
apr_bucket_brigade request_rec apr_pool_t * pool
Definition: mod_dav.h:557
const char const char * uri
Definition: mod_dav.h:631
const char * name
Definition: mod_dav.h:805
apr_table_t * headers
Definition: mod_proxy.h:1484
int apr_status_t
Definition: apr_errno.h:44
apr_uint16_t apr_port_t
Definition: apr_network_io.h:230
struct apr_pool_t apr_pool_t
Definition: apr_pools.h:60
struct apr_table_t apr_table_t
Definition: apr_tables.h:56
apr_int64_t apr_time_t
Definition: apr_time.h:45
void insert_error_filter(request_rec *r)
#define AP_DECLARE_DATA
Definition: macros.h:15
#define AP_DECLARE(x)
Definition: macros.h:1
#define AP_CORE_DECLARE(x)
Definition: macros.h:3
#define AP_DECLARE_NONSTD(x)
Definition: macros.h:2
A bucket referring to an HTTP error.
Definition: http_protocol.h:1033
const char * data
Definition: http_protocol.h:1039
apr_bucket_refcount refcount
Definition: http_protocol.h:1035
int status
Definition: http_protocol.h:1037
A bucket referring to a HTTP request.
Definition: http_protocol.h:1083
apr_pool_t * pool
Definition: http_protocol.h:1086
const char * protocol
Definition: http_protocol.h:1089
const char * method
Definition: http_protocol.h:1087
apr_bucket_refcount refcount
Definition: http_protocol.h:1085
const char * uri
Definition: http_protocol.h:1088
apr_table_t * headers
Definition: http_protocol.h:1090
A bucket referring to a HTTP response.
Definition: http_protocol.h:1199
const char * reason
Definition: http_protocol.h:1204
apr_pool_t * pool
Definition: http_protocol.h:1202
apr_table_t * headers
Definition: http_protocol.h:1205
apr_bucket_refcount refcount
Definition: http_protocol.h:1201
apr_table_t * notes
Definition: http_protocol.h:1206
int status
Definition: http_protocol.h:1203
This structure is used for recording information about the registered filters. It associates a name w...
Definition: util_filter.h:226
The representation of a filter chain.
Definition: util_filter.h:278
Structure for handling HTTP methods.
Definition: httpd.h:658
Definition: apr_buckets.h:263
Definition: apr_buckets.h:539
Definition: apr_buckets.h:136
Definition: apr_buckets.h:229
Definition: apr_arch_file_io.h:107
Definition: apr_file_info.h:174
Definition: apr_mmap.h:62
Structure to store things which are per connection.
Definition: httpd.h:1193
A structure with the ingredients for a file based etag.
Definition: http_protocol.h:208
const char * pathname
Definition: http_protocol.h:216
apr_time_t request_time
Definition: http_protocol.h:212
int force_weak
Definition: http_protocol.h:220
apr_file_t * fd
Definition: http_protocol.h:218
const char * vlist_validator
Definition: http_protocol.h:210
apr_finfo_t * finfo
Definition: http_protocol.h:214
A structure that represents the current request.
Definition: httpd.h:856
A structure to store information for each virtual server.
Definition: httpd.h:1382