|
Apache HTTPD
|
Modules | |
| AJP API functions | |
| Private | |
Classes | |
| struct | proxy_hcmethods_t |
| struct | proxy_wstat_t |
| struct | proxy_remote |
| struct | proxy_alias |
| struct | dirconn_entry |
| struct | noproxy_entry |
| struct | proxy_server_conf |
| struct | proxy_dir_conf |
| struct | proxy_req_conf |
| struct | proxy_conn_rec |
| struct | proxy_completion |
| struct | proxy_conn_pool |
| struct | proxy_hashes |
| struct | proxy_worker_shared |
| struct | proxy_worker |
| struct | proxy_balancer_shared |
| struct | proxy_balancer |
| struct | proxy_balancer_method |
| struct | proxy_LINK_section_post_config_t |
| struct | proxy_LINK_scheme_handler_t |
| struct | proxy_LINK_check_trans_t |
| struct | proxy_LINK_canon_handler_t |
| struct | proxy_LINK_create_req_t |
| struct | proxy_LINK_fixups_t |
| struct | proxy_LINK_pre_request_t |
| struct | proxy_LINK_post_request_t |
| struct | proxy_LINK_request_status_t |
| struct | proxy_tunnel_rec |
Enumerations | |
| enum | enctype { enc_path , enc_search , enc_user , enc_fpath , enc_parm } |
| enum | hcmethod_t { NONE , TCP , OPTIONS , HEAD , GET , CPING , PROVIDER , OPTIONS11 , HEAD11 , GET11 , EOT } |
| enum | proxy_hash_t { PROXY_HASHFUNC_DEFAULT , PROXY_HASHFUNC_APR , PROXY_HASHFUNC_FNV } |
Variables | |
| proxy_hcmethods_t | proxy_hcmethods [] |
| proxy_wstat_t | proxy_wstat_tbl [] |
| #define ALIGNED_PROXY_BALANCER_SHARED_SIZE (APR_ALIGN_DEFAULT(sizeof(proxy_balancer_shared))) |
Definition at line 556 of file mod_proxy.h.
| #define ALIGNED_PROXY_WORKER_SHARED_SIZE (APR_ALIGN_DEFAULT(sizeof(proxy_worker_shared))) |
Definition at line 498 of file mod_proxy.h.
| #define AP_PROXY_TRANSFER_FLUSH_AFTER (0x01) |
Definition at line 1516 of file mod_proxy.h.
| #define AP_PROXY_TRANSFER_FLUSH_EACH (0x00) |
Definition at line 1515 of file mod_proxy.h.
| #define AP_PROXY_TRANSFER_YIELD_MAX_READS (0x04) |
Definition at line 1518 of file mod_proxy.h.
| #define AP_PROXY_TRANSFER_YIELD_PENDING (0x02) |
Definition at line 1517 of file mod_proxy.h.
Definition at line 775 of file mod_proxy.h.
Definition at line 774 of file mod_proxy.h.
Definition at line 773 of file mod_proxy.h.
Definition at line 776 of file mod_proxy.h.
| #define APR_WANT_STRFUNC |
Definition at line 44 of file mod_proxy.h.
| #define BALANCER_PREFIX "balancer://" |
Definition at line 99 of file mod_proxy.h.
| #define CRLF "\015\012" |
Definition at line 104 of file mod_proxy.h.
| #define DEFAULT_MAX_FORWARDS -1 |
Definition at line 111 of file mod_proxy.h.
| #define HCHECK_WATHCHDOG_DEFAULT_INTERVAL (30) |
Definition at line 516 of file mod_proxy.h.
| #define HCHECK_WATHCHDOG_INTERVAL (2) |
Definition at line 518 of file mod_proxy.h.
| #define PROXY_BALANCER_MAX_HOSTNAME_SIZE PROXY_WORKER_MAX_HOSTNAME_SIZE |
Definition at line 381 of file mod_proxy.h.
| #define PROXY_BALANCER_MAX_NAME_SIZE PROXY_WORKER_MAX_NAME_SIZE |
Definition at line 379 of file mod_proxy.h.
| #define PROXY_BALANCER_MAX_ROUTE_SIZE PROXY_WORKER_MAX_ROUTE_SIZE |
Definition at line 377 of file mod_proxy.h.
| #define PROXY_BALANCER_MAX_STICKY_SIZE 64 |
Definition at line 382 of file mod_proxy.h.
| #define PROXY_CANONENC_FORCEDEC 0x01 |
Definition at line 80 of file mod_proxy.h.
| #define PROXY_CANONENC_NOENCODEDSLASHENCODING 0x02 |
Definition at line 81 of file mod_proxy.h.
| #define PROXY_CHECK_CONN_EMPTY (1 << 0) |
Definition at line 1135 of file mod_proxy.h.
Definition at line 397 of file mod_proxy.h.
Definition at line 604 of file mod_proxy.h.
| #define PROXY_DECLARE_DATA |
Definition at line 606 of file mod_proxy.h.
Definition at line 605 of file mod_proxy.h.
| #define PROXY_DECLARE_OPTIONAL_HOOK APR_DECLARE_EXTERNAL_HOOK |
Definition at line 627 of file mod_proxy.h.
Definition at line 1047 of file mod_proxy.h.
Definition at line 412 of file mod_proxy.h.
| #define PROXY_DYNAMIC_BALANCER_LIMIT 16 |
Definition at line 1449 of file mod_proxy.h.
| #define PROXY_FLUSH_WAIT 10000 |
Definition at line 524 of file mod_proxy.h.
| #define PROXY_GLOBAL_LOCK | ( | x | ) | ( (x) && (x)->gmutex ? apr_global_mutex_lock((x)->gmutex) : APR_SUCCESS) |
Definition at line 595 of file mod_proxy.h.
| #define PROXY_GLOBAL_UNLOCK | ( | x | ) | ( (x) && (x)->gmutex ? apr_global_mutex_unlock((x)->gmutex) : APR_SUCCESS) |
Definition at line 596 of file mod_proxy.h.
| #define PROXY_LBMETHOD "proxylbmethod" |
Definition at line 1444 of file mod_proxy.h.
| #define PROXY_MAX_PROVIDER_NAME_SIZE 16 |
Definition at line 393 of file mod_proxy.h.
| #define PROXY_RFC1035_HOSTNAME_SIZE 256 |
Definition at line 385 of file mod_proxy.h.
Definition at line 407 of file mod_proxy.h.
Definition at line 395 of file mod_proxy.h.
| #define PROXY_THREAD_LOCK | ( | x | ) | ( (x) && (x)->tmutex ? apr_thread_mutex_lock((x)->tmutex) : APR_SUCCESS) |
Definition at line 592 of file mod_proxy.h.
| #define PROXY_THREAD_UNLOCK | ( | x | ) | ( (x) && (x)->tmutex ? apr_thread_mutex_unlock((x)->tmutex) : APR_SUCCESS) |
Definition at line 593 of file mod_proxy.h.
| #define PROXY_WORKER_DEFAULT_RETRY 60 |
Definition at line 372 of file mod_proxy.h.
| #define PROXY_WORKER_DISABLED 0x0020 |
Definition at line 325 of file mod_proxy.h.
Definition at line 339 of file mod_proxy.h.
| #define PROXY_WORKER_DRAIN 0x0004 |
Definition at line 322 of file mod_proxy.h.
| #define PROXY_WORKER_DRAIN_FLAG 'N' |
Definition at line 336 of file mod_proxy.h.
| #define PROXY_WORKER_EXT_NAME_SIZE 384 |
Definition at line 386 of file mod_proxy.h.
| #define PROXY_WORKER_FREE 0x0200 |
Definition at line 329 of file mod_proxy.h.
Definition at line 343 of file mod_proxy.h.
| #define PROXY_WORKER_GENERIC 0x0008 |
Definition at line 323 of file mod_proxy.h.
Definition at line 337 of file mod_proxy.h.
| #define PROXY_WORKER_HC_FAIL 0x0400 |
Definition at line 330 of file mod_proxy.h.
Definition at line 344 of file mod_proxy.h.
| #define PROXY_WORKER_HOT_SPARE 0x0800 |
Definition at line 331 of file mod_proxy.h.
Definition at line 345 of file mod_proxy.h.
| #define PROXY_WORKER_HOT_STANDBY 0x0100 |
Definition at line 328 of file mod_proxy.h.
Definition at line 342 of file mod_proxy.h.
| #define PROXY_WORKER_IGNORE_ERRORS 0x0002 |
Definition at line 321 of file mod_proxy.h.
Definition at line 335 of file mod_proxy.h.
| #define PROXY_WORKER_IN_ERROR 0x0080 |
Definition at line 327 of file mod_proxy.h.
Definition at line 341 of file mod_proxy.h.
| #define PROXY_WORKER_IN_SHUTDOWN 0x0010 |
Definition at line 324 of file mod_proxy.h.
Definition at line 338 of file mod_proxy.h.
| #define PROXY_WORKER_INITIALIZED 0x0001 |
Definition at line 320 of file mod_proxy.h.
Definition at line 334 of file mod_proxy.h.
Definition at line 369 of file mod_proxy.h.
Definition at line 361 of file mod_proxy.h.
Definition at line 367 of file mod_proxy.h.
Definition at line 363 of file mod_proxy.h.
Definition at line 365 of file mod_proxy.h.
Definition at line 352 of file mod_proxy.h.
Definition at line 356 of file mod_proxy.h.
Definition at line 354 of file mod_proxy.h.
Definition at line 358 of file mod_proxy.h.
| #define PROXY_WORKER_MAX_HOSTNAME_SIZE 64 |
Definition at line 380 of file mod_proxy.h.
| #define PROXY_WORKER_MAX_NAME_SIZE 96 |
Definition at line 378 of file mod_proxy.h.
| #define PROXY_WORKER_MAX_ROUTE_SIZE 64 |
Definition at line 376 of file mod_proxy.h.
| #define PROXY_WORKER_MAX_SCHEME_SIZE 16 |
Definition at line 375 of file mod_proxy.h.
| #define PROXY_WORKER_MAX_SECRET_SIZE 64 |
Definition at line 383 of file mod_proxy.h.
| #define PROXY_WORKER_NOT_USABLE_BITMAP |
Definition at line 347 of file mod_proxy.h.
| #define PROXY_WORKER_RFC1035_NAME_SIZE 512 |
Definition at line 391 of file mod_proxy.h.
| #define PROXY_WORKER_STOPPED 0x0040 |
Definition at line 326 of file mod_proxy.h.
| #define PROXY_WORKER_STOPPED_FLAG 'S' |
Definition at line 340 of file mod_proxy.h.
| #define PROXYPASS_INTERPOLATE 0x02 |
Definition at line 130 of file mod_proxy.h.
| #define PROXYPASS_MAP_ENCODED 0x08 |
Definition at line 132 of file mod_proxy.h.
| #define PROXYPASS_MAP_SERVLET 0x18 /* + MAP_ENCODED */ |
Definition at line 133 of file mod_proxy.h.
| #define PROXYPASS_NOCANON 0x01 |
Definition at line 129 of file mod_proxy.h.
| #define PROXYPASS_NOQUERY 0x04 |
Definition at line 131 of file mod_proxy.h.
| typedef const char *(* ap_proxy_header_reverse_map_fn) (request_rec *, proxy_dir_conf *, const char *) |
Definition at line 732 of file mod_proxy.h.
| typedef apr_status_t() apr_OFN_ajp_handle_cping_cpong_t(apr_socket_t *sock, request_rec *r, apr_interval_time_t timeout) |
Do a AJP CPING and wait for CPONG on the socket
Definition at line 1435 of file mod_proxy.h.
| typedef int() apr_OFN_ap_proxy_clear_connection_t(request_rec *r, apr_table_t *headers) |
Clear the headers referenced by the Connection header from the given table, and remove the Connection header.
| r | request |
| headers | table of headers to clear |
Definition at line 1427 of file mod_proxy.h.
| typedef int() apr_OFN_ap_proxy_retry_worker_t(const char *proxy_function, proxy_worker *worker, server_rec *s) |
Mark a worker for retry
| proxy_function | calling proxy scheme (http, ajp, ...) |
| worker | worker used for retrying |
| s | current server record |
Definition at line 1106 of file mod_proxy.h.
| typedef apr_status_t() apr_OFN_balancer_manage_t(request_rec *, apr_table_t *params) |
Configure and create workers (and balancer) in mod_balancer.
| r | request |
| params | table with the parameters like b=mycluster etc. |
Definition at line 1278 of file mod_proxy.h.
| typedef void() apr_OFN_hc_select_exprs_t(request_rec *, const char *) |
Definition at line 635 of file mod_proxy.h.
| typedef void() apr_OFN_hc_show_exprs_t(request_rec *) |
Definition at line 634 of file mod_proxy.h.
| typedef int() apr_OFN_hc_valid_expr_t(request_rec *, const char *) |
Definition at line 636 of file mod_proxy.h.
| typedef proxy_worker *() apr_OFN_proxy_balancer_get_best_worker_t(proxy_balancer *balancer, request_rec *r, proxy_is_best_callback_fn_t *is_best, void *baton) |
Definition at line 978 of file mod_proxy.h.
| typedef const char *() apr_OFN_set_worker_hc_param_t(apr_pool_t *, server_rec *, proxy_worker *, const char *, const char *, void *) |
Definition at line 639 of file mod_proxy.h.
Definition at line 113 of file mod_proxy.h.
Definition at line 116 of file mod_proxy.h.
Definition at line 115 of file mod_proxy.h.
Definition at line 653 of file mod_proxy.h.
Definition at line 651 of file mod_proxy.h.
| typedef int proxy_HOOK_create_req_t(request_rec *r, request_rec *pr) |
Definition at line 655 of file mod_proxy.h.
| typedef int proxy_HOOK_fixups_t(request_rec *r) |
Definition at line 656 of file mod_proxy.h.
| typedef int proxy_HOOK_post_request_t(proxy_worker *worker, proxy_balancer *balancer, request_rec *r, proxy_server_conf *conf) |
post request hook. It is called after request for updating runtime balancer status.
Definition at line 677 of file mod_proxy.h.
| typedef int proxy_HOOK_pre_request_t(proxy_worker **worker, proxy_balancer **balancer, request_rec *r, proxy_server_conf *conf, char **url) |
pre request hook. It will return the most suitable worker at the moment and corresponding balancer. The url is rewritten from balancer://cluster/uri to scheme://host:port/uri and then the scheme_handler is called.
Definition at line 670 of file mod_proxy.h.
request status hook It is called after all proxy processing has been done. This gives other modules a chance to create default content on failure, for example
Definition at line 685 of file mod_proxy.h.
| typedef int proxy_HOOK_scheme_handler_t(request_rec *r, proxy_worker *worker, proxy_server_conf *conf, char *url, const char *proxyhost, apr_port_t proxyport) |
Definition at line 649 of file mod_proxy.h.
| typedef int proxy_HOOK_section_post_config_t(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s, ap_conf_vector_t *section_config) |
Definition at line 644 of file mod_proxy.h.
| typedef int() proxy_is_best_callback_fn_t(proxy_worker *current, proxy_worker *prev_best, void *baton) |
Definition at line 955 of file mod_proxy.h.
Definition at line 114 of file mod_proxy.h.
| Enumerator | |
|---|---|
| enc_path | |
| enc_search | |
| enc_user | |
| enc_fpath | |
| enc_parm | |
Definition at line 75 of file mod_proxy.h.
| Enumerator | |
|---|---|
| NONE | |
| TCP | |
| OPTIONS | |
| HEAD | |
| GET | |
| CPING | |
| PROVIDER | |
| OPTIONS11 | |
| HEAD11 | |
| GET11 | |
| EOT | |
Definition at line 83 of file mod_proxy.h.
Return a hash based on the passed string
| str | string to produce hash from |
| method | hashing method to use |
| Enumerator | |
|---|---|
| PROXY_HASHFUNC_DEFAULT | |
| PROXY_HASHFUNC_APR | |
| PROXY_HASHFUNC_FNV | |
Definition at line 1234 of file mod_proxy.h.
| int ap_proxy_acquire_connection | ( | const char * | proxy_function, |
| proxy_conn_rec ** | conn, | ||
| proxy_worker * | worker, | ||
| server_rec * | s | ||
| ) |
Acquire a connection from worker connection pool
| proxy_function | calling proxy scheme (http, ajp, ...) |
| conn | acquired connection |
| worker | worker used for obtaining connection |
| s | current server record |
< Module has handled this stage.
Definition at line 2755 of file proxy_util.c.
| void ap_proxy_backend_broke | ( | request_rec * | r, |
| apr_bucket_brigade * | brigade | ||
| ) |
Signal the upstream chain that the connection to the backend broke in the middle of the response. This is done by sending an error bucket with status HTTP_BAD_GATEWAY and an EOS bucket up the filter chain.
| r | current request record of client request |
| brigade | The brigade that is sent through the output filter chain |
Definition at line 4239 of file proxy_util.c.
| proxy_worker * ap_proxy_balancer_get_best_worker | ( | proxy_balancer * | balancer, |
| request_rec * | r, | ||
| proxy_is_best_callback_fn_t * | is_best, | ||
| void * | baton | ||
| ) |
Retrieve the best worker in a balancer for the current request
| balancer | balancer for which to find the best worker |
| r | current request record |
| is_best | a callback function provide by the lbmethod that determines if the current worker is best |
| baton | an lbmethod-specific context pointer (baton) passed to the is_best callback |
Definition at line 1492 of file proxy_util.c.
| apr_status_t ap_proxy_buckets_lifetime_transform | ( | request_rec * | r, |
| apr_bucket_brigade * | from, | ||
| apr_bucket_brigade * | to | ||
| ) |
Definition at line 5157 of file proxy_util.c.
Definition at line 173 of file proxy_util.c.
| char * ap_proxy_canon_netloc | ( | apr_pool_t * | p, |
| char **const | urlp, | ||
| char ** | userp, | ||
| char ** | passwordp, | ||
| char ** | hostp, | ||
| apr_port_t * | port | ||
| ) |
Definition at line 342 of file proxy_util.c.
| char * ap_proxy_canonenc | ( | apr_pool_t * | p, |
| const char * | x, | ||
| int | len, | ||
| enum enctype | t, | ||
| int | forcedec, | ||
| int | proxyreq | ||
| ) |
Definition at line 321 of file proxy_util.c.
| apr_status_t ap_proxy_check_connection | ( | const char * | scheme, |
| proxy_conn_rec * | conn, | ||
| server_rec * | server, | ||
| unsigned | max_blank_lines, | ||
| int | flags | ||
| ) |
Check a connection to the backend
| scheme | calling proxy scheme (http, ajp, ...) |
| conn | acquired connection |
| server | current server record |
| max_blank_lines | how many blank lines to consume, or zero for none (considered data) |
| flags | PROXY_CHECK_* bitmask |
Definition at line 3676 of file proxy_util.c.
| int ap_proxy_checkproxyblock | ( | request_rec * | r, |
| proxy_server_conf * | conf, | ||
| apr_sockaddr_t * | uri_addr | ||
| ) |
Definition at line 816 of file proxy_util.c.
| int ap_proxy_checkproxyblock2 | ( | request_rec * | r, |
| proxy_server_conf * | conf, | ||
| const char * | hostname, | ||
| apr_sockaddr_t * | addr | ||
| ) |
Test whether the hostname/address of the request are blocked by the ProxyBlock configuration.
| r | request |
| conf | server configuration |
| hostname | hostname from request URI |
| addr | resolved address of hostname, or NULL if not known |
< Module has handled this stage.
Definition at line 824 of file proxy_util.c.
Definition at line 3075 of file mod_proxy.c.
| int ap_proxy_connect_backend | ( | const char * | proxy_function, |
| proxy_conn_rec * | conn, | ||
| proxy_worker * | worker, | ||
| server_rec * | s | ||
| ) |
Make a connection to the backend
| proxy_function | calling proxy scheme (http, ajp, ...) |
| conn | acquired connection |
| worker | connection worker |
| s | current server record |
< Module declines to handle
< TCP
< Receive buffer
< For SCTP sockets, this is mapped * to STCP_NODELAY internally.
< Keepalive
< Module has handled this stage.
< Module declines to handle
Definition at line 3770 of file proxy_util.c.
| int ap_proxy_connect_to_backend | ( | apr_socket_t ** | newsock, |
| const char * | proxy_function, | ||
| apr_sockaddr_t * | backend_addr, | ||
| const char * | backend_name, | ||
| proxy_server_conf * | conf, | ||
| request_rec * | r | ||
| ) |
< Receive buffer
< For SCTP sockets, this is mapped * to STCP_NODELAY internally.
Definition at line 2667 of file proxy_util.c.
| apr_status_t ap_proxy_connect_uds | ( | apr_socket_t * | sock, |
| const char * | uds_path, | ||
| apr_pool_t * | p | ||
| ) |
Make a connection to a Unix Domain Socket (UDS) path
| sock | UDS to connect |
| uds_path | UDS path to connect to |
| p | pool to make the sock addr |
Definition at line 3625 of file proxy_util.c.
| int ap_proxy_connection_create | ( | const char * | proxy_function, |
| proxy_conn_rec * | conn, | ||
| conn_rec * | c, | ||
| server_rec * | s | ||
| ) |
Make a connection record for backend connection
| proxy_function | calling proxy scheme (http, ajp, ...) |
| conn | acquired connection |
| c | client connection record (unused, deprecated) |
| s | current server record |
Definition at line 4180 of file proxy_util.c.
| int ap_proxy_connection_create_ex | ( | const char * | proxy_function, |
| proxy_conn_rec * | conn, | ||
| request_rec * | r | ||
| ) |
Make a connection record for backend connection, using request dir config
| proxy_function | calling proxy scheme (http, ajp, ...) |
| conn | acquired connection |
| r | current request record |
Definition at line 4173 of file proxy_util.c.
| int ap_proxy_connection_reusable | ( | proxy_conn_rec * | conn | ) |
Determine if proxy connection can potentially be reused at the end of this request.
| conn | proxy connection |
Definition at line 1602 of file proxy_util.c.
| const char * ap_proxy_cookie_reverse_map | ( | request_rec * | r, |
| proxy_dir_conf * | conf, | ||
| const char * | str | ||
| ) |
< Reverse proxy
Definition at line 1000 of file proxy_util.c.
| int ap_proxy_create_hdrbrgd | ( | apr_pool_t * | p, |
| apr_bucket_brigade * | header_brigade, | ||
| request_rec * | r, | ||
| proxy_conn_rec * | p_conn, | ||
| proxy_worker * | worker, | ||
| proxy_server_conf * | conf, | ||
| apr_uri_t * | uri, | ||
| char * | url, | ||
| char * | server_portstr, | ||
| char ** | old_cl_val, | ||
| char ** | old_te_val | ||
| ) |
Create a HTTP request header brigade, old_cl_val and old_te_val as required.
| p | pool |
| header_brigade | header brigade to use/fill |
| r | request |
| p_conn | proxy connection rec |
| worker | selected worker |
| conf | per-server proxy config |
| uri | uri |
| url | url |
| server_portstr | port as string |
| old_cl_val | stored old content-len val |
| old_te_val | stored old TE val |
< Module has handled this stage.
< Reverse proxy
< Reverse proxy
Definition at line 4523 of file proxy_util.c.
| const char * ap_proxy_de_socketfy | ( | apr_pool_t * | p, |
| const char * | url | ||
| ) |
Strip a unix domain socket (UDS) prefix from the input URL
| p | pool to allocate result from |
| url | a URL potentially prefixed with a UDS path |
Definition at line 1938 of file mod_proxy.c.
| char * ap_proxy_define_balancer | ( | apr_pool_t * | p, |
| proxy_balancer ** | balancer, | ||
| proxy_server_conf * | conf, | ||
| const char * | url, | ||
| const char * | alias, | ||
| int | do_malloc | ||
| ) |
Define and Allocate space for the balancer to proxy configuration
| p | memory pool to allocate balancer from |
| balancer | the new balancer |
| conf | current proxy server configuration |
| url | url containing balancer name |
| alias | alias/fake-path to this balancer |
| do_malloc | true if shared struct should be malloced |
Definition at line 1192 of file proxy_util.c.
| char * ap_proxy_define_match_worker | ( | apr_pool_t * | p, |
| proxy_worker ** | worker, | ||
| proxy_balancer * | balancer, | ||
| proxy_server_conf * | conf, | ||
| const char * | url, | ||
| int | do_malloc | ||
| ) |
Define and Allocate space for the ap_strcmp_match()able worker to proxy configuration.
| p | memory pool to allocate worker from |
| worker | the new worker |
| balancer | the balancer that the worker belongs to |
| conf | current proxy server configuration |
| url | url containing worker name (produces match pattern) |
| do_malloc | true if shared struct should be malloced |
Definition at line 2193 of file proxy_util.c.
| char * ap_proxy_define_worker | ( | apr_pool_t * | p, |
| proxy_worker ** | worker, | ||
| proxy_balancer * | balancer, | ||
| proxy_server_conf * | conf, | ||
| const char * | url, | ||
| int | do_malloc | ||
| ) |
Define and Allocate space for the worker to proxy configuration
| p | memory pool to allocate worker from |
| worker | the new worker |
| balancer | the balancer that the worker belongs to |
| conf | current proxy server configuration |
| url | url containing worker name |
| do_malloc | true if shared struct should be malloced |
Definition at line 2179 of file proxy_util.c.
| char * ap_proxy_define_worker_ex | ( | apr_pool_t * | p, |
| proxy_worker ** | worker, | ||
| proxy_balancer * | balancer, | ||
| proxy_server_conf * | conf, | ||
| const char * | url, | ||
| unsigned int | mask | ||
| ) |
Define and Allocate space for the worker to proxy configuration, of either PREFIXED or MATCHED type according to given mask
| p | memory pool to allocate worker from |
| worker | the new worker |
| balancer | the balancer that the worker belongs to |
| conf | current proxy server configuration |
| url | url containing worker name |
| mask | bitmask of AP_PROXY_WORKER_IS_* |
Definition at line 1952 of file proxy_util.c.
| apr_status_t ap_proxy_determine_address | ( | const char * | proxy_function, |
| proxy_conn_rec * | conn, | ||
| const char * | hostname, | ||
| apr_port_t | hostport, | ||
| unsigned int | flags, | ||
| request_rec * | r, | ||
| server_rec * | s | ||
| ) |
Resolve an address, reusing the one of the worker if any.
| proxy_function | calling proxy scheme (http, ajp, ...) |
| conn | proxy connection the address is used for |
| hostname | host to resolve (should be the worker's if reusable) |
| hostport | port to resolve (should be the worker's if reusable) |
| flags | bitmask of PROXY_DETERMINE_ADDRESS_* |
| r | current request (if any) |
| s | current server (or NULL if r != NULL and ap_proxyerror() should be called on error) |
Definition at line 2941 of file proxy_util.c.
| int ap_proxy_determine_connection | ( | apr_pool_t * | p, |
| request_rec * | r, | ||
| proxy_server_conf * | conf, | ||
| proxy_worker * | worker, | ||
| proxy_conn_rec * | conn, | ||
| apr_uri_t * | uri, | ||
| char ** | url, | ||
| const char * | proxyname, | ||
| apr_port_t | proxyport, | ||
| char * | server_portstr, | ||
| int | server_portstr_size | ||
| ) |
Determine backend hostname and port
| p | memory pool used for processing |
| r | current request |
| conf | current proxy server configuration |
| worker | worker used for processing request |
| conn | proxy connection struct |
| uri | processed uri |
| url | request url |
| proxyname | are we connecting directly or via a proxy |
| proxyport | proxy host port |
| server_portstr | Via headers server port, must be non-NULL |
| server_portstr_size | size of the server_portstr buffer; must be at least one, even if the protocol doesn't use this |
< Module has handled this stage.
< Module has handled this stage.
Definition at line 3207 of file proxy_util.c.
| proxy_balancer_shared * ap_proxy_find_balancershm | ( | ap_slotmem_provider_t * | storage, |
| ap_slotmem_instance_t * | slot, | ||
| proxy_balancer * | balancer, | ||
| unsigned int * | index | ||
| ) |
Find the shm of the balancer as needed
| storage | slotmem provider |
| slot | slotmem instance |
| balancer | balancer of shm to find |
| index | pointer to index within slotmem of balancer |
Definition at line 4435 of file proxy_util.c.
| proxy_worker_shared * ap_proxy_find_workershm | ( | ap_slotmem_provider_t * | storage, |
| ap_slotmem_instance_t * | slot, | ||
| proxy_worker * | worker, | ||
| unsigned int * | index | ||
| ) |
Find the shm of the worker as needed
| storage | slotmem provider |
| slot | slotmem instance |
| worker | worker to find |
| index | pointer to index within slotmem of worker |
Definition at line 4414 of file proxy_util.c.
| int ap_proxy_fixup_uds_filename | ( | request_rec * | r | ) |
Definition at line 2487 of file proxy_util.c.
| proxy_balancer * ap_proxy_get_balancer | ( | apr_pool_t * | p, |
| proxy_server_conf * | conf, | ||
| const char * | url, | ||
| int | careactive | ||
| ) |
Get the balancer from proxy configuration
| p | memory pool used for temporary storage while finding balancer |
| conf | current proxy server configuration |
| url | url to find the worker from; must have balancer:// prefix |
| careactive | true if we care if the balancer is active or not |
Definition at line 1134 of file proxy_util.c.
| proxy_worker * ap_proxy_get_worker | ( | apr_pool_t * | p, |
| proxy_balancer * | balancer, | ||
| proxy_server_conf * | conf, | ||
| const char * | url | ||
| ) |
Get the worker from proxy configuration, both types
| p | memory pool used for finding worker |
| balancer | the balancer that the worker belongs to |
| conf | current proxy server configuration |
| url | url to find the worker from |
Definition at line 1937 of file proxy_util.c.
| proxy_worker * ap_proxy_get_worker_ex | ( | apr_pool_t * | p, |
| proxy_balancer * | balancer, | ||
| proxy_server_conf * | conf, | ||
| const char * | url, | ||
| unsigned int | mask | ||
| ) |
Get the worker from proxy configuration, looking for either PREFIXED or MATCHED or both types of workers according to given mask
| p | memory pool used for finding worker |
| balancer | the balancer that the worker belongs to |
| conf | current proxy server configuration |
| url | url to find the worker from |
| mask | bitmask of AP_PROXY_WORKER_IS_* |
Definition at line 1829 of file proxy_util.c.
| unsigned int ap_proxy_hashfunc | ( | const char * | str, |
| proxy_hash_t | method | ||
| ) |
Definition at line 4267 of file proxy_util.c.
Definition at line 118 of file proxy_util.c.
| apr_status_t ap_proxy_initialize_balancer | ( | proxy_balancer * | balancer, |
| server_rec * | s, | ||
| apr_pool_t * | p | ||
| ) |
Initialize the balancer as needed
| balancer | balancer to initialize |
| s | current server record |
| p | memory pool used for mutex and connection pool |
Definition at line 1320 of file proxy_util.c.
| apr_status_t ap_proxy_initialize_worker | ( | proxy_worker * | worker, |
| server_rec * | s, | ||
| apr_pool_t * | p | ||
| ) |
Initialize the worker by setting up worker connection pool and mutex
| worker | worker to initialize |
| s | current server record |
| p | memory pool used for mutex and connection pool |
Definition at line 2241 of file proxy_util.c.
| int ap_proxy_is_socket_connected | ( | apr_socket_t * | socket | ) |
| socket | socket to test |
Definition at line 3501 of file proxy_util.c.
| int ap_proxy_lb_workers | ( | void | ) |
Calculate maximum number of workers in scoreboard.
Definition at line 4188 of file proxy_util.c.
| const char * ap_proxy_location_reverse_map | ( | request_rec * | r, |
| proxy_dir_conf * | conf, | ||
| const char * | url | ||
| ) |
< Reverse proxy
Definition at line 882 of file proxy_util.c.
| char * ap_proxy_parse_wstatus | ( | apr_pool_t * | p, |
| proxy_worker * | w | ||
| ) |
Create readable representation of worker status bitfield
| p | pool |
| w | worker to use |
Definition at line 4311 of file proxy_util.c.
| int ap_proxy_pass_brigade | ( | apr_bucket_alloc_t * | bucket_alloc, |
| request_rec * | r, | ||
| proxy_conn_rec * | p_conn, | ||
| conn_rec * | origin, | ||
| apr_bucket_brigade * | bb, | ||
| int | flush | ||
| ) |
| bucket_alloc | bucket allocator |
| r | request |
| p_conn | proxy connection |
| origin | connection rec of origin |
| bb | brigade to send to origin |
| flush | flush |
< Module has handled this stage.
Definition at line 5062 of file proxy_util.c.
| apr_port_t ap_proxy_port_of_scheme | ( | const char * | scheme | ) |
Return the port number of a known scheme (eg: http -> 80).
| scheme | scheme to test |
Definition at line 5122 of file proxy_util.c.
| int ap_proxy_post_request | ( | proxy_worker * | worker, |
| proxy_balancer * | balancer, | ||
| request_rec * | r, | ||
| proxy_server_conf * | conf | ||
| ) |
Post request worker and balancer cleanup
| worker | worker used for processing request |
| balancer | balancer used for processing request |
| r | current request |
| conf | current proxy server configuration |
< Module has handled this stage.
< Module declines to handle
< Module has handled this stage.
Definition at line 2649 of file proxy_util.c.
| int ap_proxy_pre_http_request | ( | conn_rec * | c, |
| request_rec * | r | ||
| ) |
< Module has handled this stage.
Definition at line 876 of file proxy_util.c.
| int ap_proxy_pre_request | ( | proxy_worker ** | worker, |
| proxy_balancer ** | balancer, | ||
| request_rec * | r, | ||
| proxy_server_conf * | conf, | ||
| char ** | url | ||
| ) |
Get the most suitable worker and/or balancer for the request
| worker | worker used for processing request |
| balancer | balancer used for processing request |
| r | current request |
| conf | current proxy server configuration |
| url | request url that balancer can rewrite. |
< Module declines to handle
< Module has handled this stage.
< Standard proxy
< Module has handled this stage.
< Reverse proxy
< Module has handled this stage.
< Module declines to handle
Definition at line 2591 of file proxy_util.c.
| int ap_proxy_prefetch_input | ( | request_rec * | r, |
| proxy_conn_rec * | backend, | ||
| apr_bucket_brigade * | input_brigade, | ||
| apr_read_type_e | block, | ||
| apr_off_t * | bytes_read, | ||
| apr_off_t | max_read | ||
| ) |
Prefetch the client request body (in memory), up to a limit. Read what's in the client pipe. If nonblocking is set and read is EAGAIN, pass a FLUSH bucket to the backend and read again in blocking mode.
| r | client request |
| backend | backend connection |
| input_brigade | input brigade to use/fill |
| block | blocking or non-blocking mode |
| bytes_read | number of bytes read |
| max_read | maximum number of bytes to read |
< Module has handled this stage.
Definition at line 4814 of file proxy_util.c.
| int ap_proxy_read_input | ( | request_rec * | r, |
| proxy_conn_rec * | backend, | ||
| apr_bucket_brigade * | input_brigade, | ||
| apr_off_t | max_read | ||
| ) |
Read what's in the client pipe. If the read would block (EAGAIN), pass a FLUSH bucket to the backend and read again in blocking mode.
| r | client request |
| backend | backend connection |
| input_brigade | brigade to use/fill |
| max_read | maximum number of bytes to read |
< Module has handled this stage.
< Module has handled this stage.
Definition at line 4898 of file proxy_util.c.
| int ap_proxy_release_connection | ( | const char * | proxy_function, |
| proxy_conn_rec * | conn, | ||
| server_rec * | s | ||
| ) |
Release a connection back to worker connection pool
| proxy_function | calling proxy scheme (http, ajp, ...) |
| conn | acquired connection |
| s | current server record |
< Module has handled this stage.
Definition at line 2809 of file proxy_util.c.
| apr_status_t ap_proxy_set_wstatus | ( | char | c, |
| int | set, | ||
| proxy_worker * | w | ||
| ) |
Set/unset the worker status bitfield depending on flag
| c | flag |
| set | set or unset bit |
| w | worker to use |
Definition at line 4293 of file proxy_util.c.
| apr_status_t ap_proxy_share_balancer | ( | proxy_balancer * | balancer, |
| proxy_balancer_shared * | shm, | ||
| int | i | ||
| ) |
Share a defined proxy balancer via shm
| balancer | balancer to be shared |
| shm | location of shared info |
| i | index into shm |
Definition at line 1273 of file proxy_util.c.
| apr_status_t ap_proxy_share_worker | ( | proxy_worker * | worker, |
| proxy_worker_shared * | shm, | ||
| int | i | ||
| ) |
Share a defined proxy worker via shm
| worker | worker to be shared |
| shm | location of shared info |
| i | index into shm |
Definition at line 2209 of file proxy_util.c.
| int ap_proxy_should_override | ( | proxy_dir_conf * | conf, |
| int | code | ||
| ) |
Returns 1 if a response with the given status should be overridden.
| conf | proxy directory configuration |
| code | http status code |
Definition at line 4225 of file proxy_util.c.
| const char * ap_proxy_show_hcmethod | ( | hcmethod_t | method | ) |
Return the name of the health check method (eg: "OPTIONS").
| method | method enum |
Definition at line 5784 of file proxy_util.c.
| int ap_proxy_spool_input | ( | request_rec * | r, |
| proxy_conn_rec * | backend, | ||
| apr_bucket_brigade * | input_brigade, | ||
| apr_off_t * | bytes_spooled, | ||
| apr_off_t | max_mem_spool | ||
| ) |
Spool the client request body to memory, or disk above given limit.
| r | client request |
| backend | backend connection |
| input_brigade | input brigade to use/fill |
| bytes_spooled | number of bytes spooled |
| max_mem_spool | maximum number of in-memory bytes |
< Module has handled this stage.
< Module has handled this stage.
< Module has handled this stage.
Definition at line 4942 of file proxy_util.c.
| apr_status_t ap_proxy_ssl_connection_cleanup | ( | proxy_conn_rec * | conn, |
| request_rec * | r | ||
| ) |
Definition at line 1688 of file proxy_util.c.
< Module has handled this stage.
Definition at line 3056 of file mod_proxy.c.
< Module has handled this stage.
Definition at line 3044 of file mod_proxy.c.
| int ap_proxy_ssl_engine | ( | conn_rec * | c, |
| ap_conf_vector_t * | per_dir_config, | ||
| int | enable | ||
| ) |
< Module has handled this stage.
Definition at line 3061 of file mod_proxy.c.
| const char * ap_proxy_ssl_val | ( | apr_pool_t * | p, |
| server_rec * | s, | ||
| conn_rec * | c, | ||
| request_rec * | r, | ||
| const char * | var | ||
| ) |
Definition at line 3080 of file mod_proxy.c.
| apr_status_t ap_proxy_strncpy | ( | char * | dst, |
| const char * | src, | ||
| apr_size_t | dlen | ||
| ) |
Definition at line 94 of file proxy_util.c.
| apr_status_t ap_proxy_sync_balancer | ( | proxy_balancer * | b, |
| server_rec * | s, | ||
| proxy_server_conf * | conf | ||
| ) |
Sync balancer and workers based on any updates w/i shm
| b | balancer to check/update member list of |
| s | server rec |
| conf | config |
Definition at line 4329 of file proxy_util.c.
| int ap_proxy_trans_match | ( | request_rec * | r, |
| struct proxy_alias * | ent, | ||
| proxy_dir_conf * | dconf | ||
| ) |
Find the matched alias for this request and setup for proxy handler
| r | request |
| ent | proxy_alias record |
| dconf | per-dir config or NULL |
< Module declines to handle
< Module declines to handle
< Module has handled this stage.
< Module declines to handle
< Reverse proxy
< Module has served the response completely * - it's safe to die() with no more output
< Module has handled this stage.
Definition at line 825 of file mod_proxy.c.
| apr_status_t ap_proxy_transfer_between_connections | ( | request_rec * | r, |
| conn_rec * | c_i, | ||
| conn_rec * | c_o, | ||
| apr_bucket_brigade * | bb_i, | ||
| apr_bucket_brigade * | bb_o, | ||
| const char * | name, | ||
| int * | sent, | ||
| apr_off_t | bsize, | ||
| int | flags | ||
| ) |
< Module has handled this stage.
< Module declines to handle
Definition at line 5205 of file proxy_util.c.
| apr_status_t ap_proxy_tunnel_create | ( | proxy_tunnel_rec ** | tunnel, |
| request_rec * | r, | ||
| conn_rec * | c_o, | ||
| const char * | scheme | ||
| ) |
Create a tunnel, to be activated by ap_proxy_tunnel_run().
| tunnel | tunnel created |
| r | client request |
| c_o | connection to origin |
| scheme | caller proxy scheme (connect, ws(s), http(s), ...) |
< Descriptors passed to apr_pollset_add() * are not copied
< Non-blocking IO
< Non-blocking IO
< Can write without blocking
< Pending error
< Can write without blocking
< Pending error
< Can read without blocking
< Hangup occurred
< Can write without blocking
< Pending error
< Can read without blocking
< Hangup occurred
Definition at line 5366 of file proxy_util.c.
| int ap_proxy_tunnel_run | ( | proxy_tunnel_rec * | tunnel | ) |
Forward anything from either side of the tunnel to the other, until one end aborts or a polling timeout/error occurs.
| tunnel | tunnel to run |
< Module has handled this stage.
< Can read without blocking
< Can write without blocking
< Hangup occurred
< Pending error
< Can write without blocking
< Can write without blocking
< Can read without blocking
< Can read without blocking
< Hangup occurred
< Module has handled this stage.
< Module declines to handle
< Can write without blocking
< Can read without blocking
< Module has handled this stage.
< Can read without blocking
< Can read without blocking
< Hangup occurred
< Can write without blocking
< Module has handled this stage.
< Module has served the response completely * - it's safe to die() with no more output
< Module has handled this stage.
Definition at line 5617 of file proxy_util.c.
| char * ap_proxy_update_balancer | ( | apr_pool_t * | p, |
| proxy_balancer * | balancer, | ||
| const char * | url | ||
| ) |
Update the balancer's vhost related fields
| p | memory pool used for temporary storage while finding balancer |
| balancer | balancer to be updated |
| url | url to find vhost info |
Definition at line 1168 of file proxy_util.c.
Verifies valid balancer name (eg: balancer://foo)
| name | name to test |
| i | number of chars to test; 0 for all. |
Definition at line 1126 of file proxy_util.c.
| int ap_proxy_worker_can_upgrade | ( | apr_pool_t * | p, |
| const proxy_worker * | worker, | ||
| const char * | upgrade, | ||
| const char * | dflt | ||
| ) |
Return whether a worker upgrade configuration matches Upgrade header
| p | memory pool used for displaying worker name |
| worker | the worker |
| upgrade | the Upgrade header to match |
| dflt | default protocol (NULL for none) |
Definition at line 1772 of file proxy_util.c.
| char * ap_proxy_worker_name | ( | apr_pool_t * | p, |
| proxy_worker * | worker | ||
| ) |
Return the user-land, UDS aware worker name
| p | memory pool used for displaying worker name |
| worker | the worker |
Definition at line 1762 of file proxy_util.c.
| int ap_proxyerror | ( | request_rec * | r, |
| int | statuscode, | ||
| const char * | message | ||
| ) |
Definition at line 432 of file proxy_util.c.
| void proxy_hook_canon_handler | ( | proxy_HOOK_canon_handler_t * | pf, |
| const char *const * | aszPre, | ||
| const char *const * | aszSucc, | ||
| int | nOrder | ||
| ) |
Definition at line 3412 of file mod_proxy.c.
| void proxy_hook_check_trans | ( | proxy_HOOK_check_trans_t * | pf, |
| const char *const * | aszPre, | ||
| const char *const * | aszSucc, | ||
| int | nOrder | ||
| ) |
Definition at line 3409 of file mod_proxy.c.
| void proxy_hook_create_req | ( | proxy_HOOK_create_req_t * | pf, |
| const char *const * | aszPre, | ||
| const char *const * | aszSucc, | ||
| int | nOrder | ||
| ) |
| void proxy_hook_fixups | ( | proxy_HOOK_fixups_t * | pf, |
| const char *const * | aszPre, | ||
| const char *const * | aszSucc, | ||
| int | nOrder | ||
| ) |
| apr_array_header_t * proxy_hook_get_canon_handler | ( | void | ) |
Definition at line 3412 of file mod_proxy.c.
| apr_array_header_t * proxy_hook_get_check_trans | ( | void | ) |
Definition at line 3409 of file mod_proxy.c.
| apr_array_header_t * proxy_hook_get_create_req | ( | void | ) |
| apr_array_header_t * proxy_hook_get_fixups | ( | void | ) |
| apr_array_header_t * proxy_hook_get_post_request | ( | void | ) |
Definition at line 3425 of file mod_proxy.c.
| apr_array_header_t * proxy_hook_get_pre_request | ( | void | ) |
Definition at line 3419 of file mod_proxy.c.
| apr_array_header_t * proxy_hook_get_request_status | ( | void | ) |
| apr_array_header_t * proxy_hook_get_scheme_handler | ( | void | ) |
Definition at line 3406 of file mod_proxy.c.
| apr_array_header_t * proxy_hook_get_section_post_config | ( | void | ) |
| void proxy_hook_post_request | ( | proxy_HOOK_post_request_t * | pf, |
| const char *const * | aszPre, | ||
| const char *const * | aszSucc, | ||
| int | nOrder | ||
| ) |
Definition at line 3425 of file mod_proxy.c.
| void proxy_hook_pre_request | ( | proxy_HOOK_pre_request_t * | pf, |
| const char *const * | aszPre, | ||
| const char *const * | aszSucc, | ||
| int | nOrder | ||
| ) |
Definition at line 3419 of file mod_proxy.c.
| void proxy_hook_request_status | ( | proxy_HOOK_request_status_t * | pf, |
| const char *const * | aszPre, | ||
| const char *const * | aszSucc, | ||
| int | nOrder | ||
| ) |
| void proxy_hook_scheme_handler | ( | proxy_HOOK_scheme_handler_t * | pf, |
| const char *const * | aszPre, | ||
| const char *const * | aszSucc, | ||
| int | nOrder | ||
| ) |
Definition at line 3406 of file mod_proxy.c.
| void proxy_hook_section_post_config | ( | proxy_HOOK_section_post_config_t * | pf, |
| const char *const * | aszPre, | ||
| const char *const * | aszSucc, | ||
| int | nOrder | ||
| ) |
| int proxy_run_canon_handler | ( | request_rec * | r, |
| char * | url | ||
| ) |
< Module declines to handle
< Module declines to handle
Definition at line 3412 of file mod_proxy.c.
| int proxy_run_check_trans | ( | request_rec * | r, |
| const char * | url | ||
| ) |
< Module declines to handle
< Module declines to handle
Definition at line 3409 of file mod_proxy.c.
| int proxy_run_create_req | ( | request_rec * | r, |
| request_rec * | pr | ||
| ) |
< Module has handled this stage.
< Module has handled this stage.
< Module declines to handle
< Module has handled this stage.
Definition at line 92 of file proxy_util.c.
| int proxy_run_fixups | ( | request_rec * | r | ) |
< Module has handled this stage.
< Module has handled this stage.
< Module declines to handle
< Module has handled this stage.
Definition at line 3434 of file mod_proxy.c.
| int proxy_run_post_request | ( | proxy_worker * | worker, |
| proxy_balancer * | balancer, | ||
| request_rec * | r, | ||
| proxy_server_conf * | conf | ||
| ) |
< Module declines to handle
< Module declines to handle
Definition at line 3425 of file mod_proxy.c.
| int proxy_run_pre_request | ( | proxy_worker ** | worker, |
| proxy_balancer ** | balancer, | ||
| request_rec * | r, | ||
| proxy_server_conf * | conf, | ||
| char ** | url | ||
| ) |
< Module declines to handle
< Module declines to handle
Definition at line 3419 of file mod_proxy.c.
| int proxy_run_request_status | ( | int * | status, |
| request_rec * | r | ||
| ) |
< Module has handled this stage.
< Module has handled this stage.
< Module declines to handle
< Module has handled this stage.
Definition at line 3438 of file mod_proxy.c.
| int proxy_run_scheme_handler | ( | request_rec * | r, |
| proxy_worker * | worker, | ||
| proxy_server_conf * | conf, | ||
| char * | url, | ||
| const char * | proxyhost, | ||
| apr_port_t | proxyport | ||
| ) |
< Module declines to handle
< Module declines to handle
Definition at line 3406 of file mod_proxy.c.
| int proxy_run_section_post_config | ( | apr_pool_t * | p, |
| apr_pool_t * | plog, | ||
| apr_pool_t * | ptemp, | ||
| server_rec * | s, | ||
| ap_conf_vector_t * | section_config | ||
| ) |
< Module has handled this stage.
< Module has handled this stage.
< Module declines to handle
< Module has handled this stage.
Definition at line 3431 of file mod_proxy.c.
|
extern |
Definition at line 47 of file mod_proxy.c.
|
extern |
Definition at line 61 of file mod_proxy.c.