Apache2
|
A structure that represents the current request. More...
#include <httpd.h>
A structure that represents the current request.
ap_method_mask_t request_rec::allowed |
'allowed' is a bitvector of the allowed methods.
A handler must ensure that the request method is one that it is capable of handling. Generally modules should DECLINE any request methods they do not handle. Prior to aborting the handler like this the handler should set r->allowed to the list of methods that it is willing to handle. This bitvector is used to construct the "Allow:" header required for OPTIONS requests, and HTTP_METHOD_NOT_ALLOWED and HTTP_NOT_IMPLEMENTED status codes.
Since the default_handler deals with OPTIONS, all modules can usually decline to deal with OPTIONS. TRACE is always allowed, modules don't need to set it explicitly.
Since the default_handler will always handle a GET, a module which does not implement GET should probably return HTTP_METHOD_NOT_ALLOWED. Unfortunately this means that a Script GET handler can't be installed by mod_actions.
ap_method_list_t* request_rec::allowed_methods |
List of allowed methods
apr_array_header_t* request_rec::allowed_xmethods |
Array of extension methods
char* request_rec::ap_auth_type |
If an authentication check was made, this gets set to the auth type.
char* request_rec::args |
The QUERY_ARGS extracted from this request
int request_rec::assbackwards |
HTTP/0.9, "simple" request (e.g. GET /foo
w/no headers)
ap_request_bnotes_t request_rec::bnotes |
Request flags associated with this request. Use AP_REQUEST_GET_BNOTE() and AP_REQUEST_SET_BNOTE() to access the elements of this field.
unsigned int request_rec::body_indeterminate |
Indicates that the request has a body of unknown length and protocol handlers need to read it, even if only to discard the data. In HTTP/1.1 this is set on chunked transfer encodings, but newer HTTP versions can transfer such bodies by other means. The absence of a "Transfer-Encoding" header is no longer sufficient to conclude that no body is there.
apr_table_t* request_rec::body_table |
For ap_body_to_table(): parsed body
apr_off_t request_rec::bytes_sent |
body byte count, for easy access
char* request_rec::canonical_filename |
The true filename stored in the filesystem, as in the true alpha case and alias correction, e.g. "Image.jpeg" not "IMAGE$1.JPE" on Windows. The core map_to_storage canonicalizes r->filename when they mismatch
int request_rec::chunked |
sending chunked transfer-coding
apr_off_t request_rec::clength |
The "real" content length
conn_rec* request_rec::connection |
The connection to the client
const char* request_rec::content_encoding |
How to encode the data
apr_array_header_t* request_rec::content_languages |
Array of strings representing the content languages
const char* request_rec::content_type |
The content-type for the current request
int request_rec::double_reverse |
have we done double-reverse DNS? -1 yes/failure, 0 not yet, 1 yes/success TODO: 2 bit signed bitfield when this structure is compacted
int request_rec::eos_sent |
A flag to determine if the eos bucket has been sent yet
apr_table_t* request_rec::err_headers_out |
MIME header environment for the response, printed even on errors and persist across internal redirects
unsigned request_rec::expecting_100 |
is client waiting for a 100 response?
char* request_rec::filename |
The filename on disk corresponding to this response
unsigned int request_rec::final_resp_passed |
Whether a final (status >= 200) RESPONSE BUCKET has been passed down the output filters already. Relevant for ap_die(). TODO: compact elsewhere
apr_finfo_t request_rec::finfo |
finfo.protection (st_mode) set to zero if no such file
unsigned int request_rec::flushed |
Whether the response has been flushed through the network, relevant at ap_run_log_transaction() time only. TODO: compact elsewhere
const char* request_rec::handler |
The handler string that we use to call a handler function
int request_rec::header_only |
HEAD request, as opposed to GET
apr_table_t* request_rec::headers_in |
MIME header environment from the request
apr_table_t* request_rec::headers_out |
MIME header environment for the response
const char* request_rec::hostname |
Host, as set by full URI or Host: header. For literal IPv6 addresses, this does NOT include the surrounding [ ]
const struct htaccess_result* request_rec::htaccess |
A linked list of the .htaccess configuration directives accessed by this request. N.B. always add to the head of the list, never to the end. that way, a sub request's list can (temporarily) point to a parent's list
struct ap_filter_t* request_rec::input_filters |
A list of input filters to be used for this request
apr_thread_mutex_t* request_rec::invoke_mtx |
Mutex protect callbacks registered with ap_mpm_register_timed_callback from being run before the original handler finishes running
apr_bucket_brigade* request_rec::kept_body |
The optional kept body of the request.
const struct ap_logconf* request_rec::log |
Optional request log level configuration. Will usually point to a server or per_dir config, i.e. must be copied before modifying
const char* request_rec::log_id |
Id to identify request in access and error log. Set when the first error log entry for this request is generated.
request_rec* request_rec::main |
Pointer to the main request if this is a sub-request (see http_request.h)
const char* request_rec::method |
Request method (eg. GET, HEAD, POST, etc.)
int request_rec::method_number |
M_GET, M_POST, etc.
apr_time_t request_rec::mtime |
Last modified time of the requested resource
request_rec* request_rec::next |
Pointer to the redirected request if this is an external redirect
int request_rec::no_cache |
This response can not be cached
int request_rec::no_local_copy |
There is no local copy of this response
apr_table_t* request_rec::notes |
Notes from one module to another
struct ap_filter_t* request_rec::output_filters |
A list of output filters to be used for this request
apr_uri_t request_rec::parsed_uri |
A struct containing the components of URI
char* request_rec::path_info |
The PATH_INFO extracted from this request
struct ap_conf_vector_t* request_rec::per_dir_config |
Options set in config files, etc.
apr_pool_t* request_rec::pool |
The pool associated with the request
request_rec* request_rec::prev |
Pointer to the previous request if this is an internal redirect
struct ap_filter_t* request_rec::proto_input_filters |
A list of protocol level input filters to be used for this request
int request_rec::proto_num |
Protocol version number of protocol; 1.1 = 1001
struct ap_filter_t* request_rec::proto_output_filters |
A list of protocol level output filters to be used for this request
const char* request_rec::protocol |
Protocol string, as given to us, or HTTP/0.9
int request_rec::proxyreq |
A proxy request (calculated during post_read_request/translate_name) possible values PROXYREQ_NONE, PROXYREQ_PROXY, PROXYREQ_REVERSE, PROXYREQ_RESPONSE
const char* request_rec::range |
The Range: header
int request_rec::read_body |
Method for reading the request body (eg. REQUEST_CHUNKED_ERROR, REQUEST_NO_BODY, REQUEST_CHUNKED_DECHUNK, etc...)
int request_rec::read_chunked |
reading chunked transfer-coding
apr_off_t request_rec::read_length |
Number of bytes that have been read from the request body
apr_off_t request_rec::remaining |
Remaining bytes left to read from the request body
struct ap_conf_vector_t* request_rec::request_config |
Notes on this request
apr_time_t request_rec::request_time |
Time when the request started
apr_off_t request_rec::sent_bodyct |
byte count in stream is for body
server_rec* request_rec::server |
The virtual host for this request
int request_rec::status |
Status line
const char* request_rec::status_line |
Status line, if set by script
apr_table_t* request_rec::subprocess_env |
Array of environment variables to be used for sub processes
int request_rec::taint |
Mark the request as potentially tainted. This might become a bitfield if we identify different taints to be flagged. Always use ap_request_tainted() to check taint.
char* request_rec::the_request |
First line of request
apr_table_t* request_rec::trailers_in |
MIME trailer environment from the request
apr_table_t* request_rec::trailers_out |
MIME trailer environment from the response
char* request_rec::unparsed_uri |
The URI without any parsing performed
char* request_rec::uri |
The path portion of the URI, or "/" if no path provided
int request_rec::used_path_info |
Flag for the handler to accept or reject path_info on the current request. All modules should respect the AP_REQ_ACCEPT_PATH_INFO and AP_REQ_REJECT_PATH_INFO values, while AP_REQ_DEFAULT_PATH_INFO indicates they may follow existing conventions. This is set to the user's preference upon HOOK_VERY_FIRST of the fixups.
char* request_rec::user |
If an authentication check was made, this gets set to the user name.
apr_sockaddr_t* request_rec::useragent_addr |
remote address information from conn_rec, can be overridden if necessary by a module. This is the address that originated the request.
char* request_rec::useragent_host |
Originator's DNS name, if known. NULL if DNS hasn't been checked, "" if it has and no address was found. N.B. Only access this though ap_get_useragent_host()
char* request_rec::useragent_ip |
char* request_rec::vlist_validator |
variant list validator (if negotiated)