mod_proxy.h File Reference

Proxy Extension Module for Apache. More...

#include "apr_hooks.h"
#include "apr_optional.h"
#include "apr.h"
#include "apr_lib.h"
#include "apr_strings.h"
#include "apr_buckets.h"
#include "apr_md5.h"
#include "apr_network_io.h"
#include "apr_pools.h"
#include "apr_uri.h"
#include "apr_date.h"
#include "apr_strmatch.h"
#include "apr_fnmatch.h"
#include "apr_reslist.h"
#include "apr_want.h"
#include "apr_uuid.h"
#include "util_mutex.h"
#include "apr_global_mutex.h"
#include "apr_thread_mutex.h"
#include "httpd.h"
#include "http_config.h"
#include "ap_config.h"
#include "http_core.h"
#include "http_protocol.h"
#include "http_request.h"
#include "http_vhost.h"
#include "http_main.h"
#include "http_log.h"
#include "http_connection.h"
#include "http_ssl.h"
#include "util_filter.h"
#include "util_ebcdic.h"
#include "ap_provider.h"
#include "ap_slotmem.h"
Include dependency graph for mod_proxy.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

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_tunnel_rec


#define BALANCER_PREFIX   "balancer://"
#define CRLF   "\015\012"
#define PROXYPASS_NOCANON   0x01
#define PROXYPASS_NOQUERY   0x04
#define AP_VOLATILIZE_T(T, x)   (*(T volatile *)&(x))
#define PROXY_WORKER_DRAIN   0x0004
#define PROXY_WORKER_GENERIC   0x0008
#define PROXY_WORKER_DISABLED   0x0020
#define PROXY_WORKER_STOPPED   0x0040
#define PROXY_WORKER_IN_ERROR   0x0080
#define PROXY_WORKER_FREE   0x0200
#define PROXY_WORKER_HC_FAIL   0x0400
#define PROXY_WORKER_HOT_SPARE   0x0800
#define PROXY_WORKER_IS_STANDBY(f)   ( (f)->s->status & PROXY_WORKER_HOT_STANDBY )
#define PROXY_WORKER_IS_SPARE(f)   ( (f)->s->status & PROXY_WORKER_HOT_SPARE )
#define PROXY_WORKER_IS_DRAINING(f)   ( (f)->s->status & PROXY_WORKER_DRAIN )
#define PROXY_WORKER_IS_GENERIC(f)   ( (f)->s->status & PROXY_WORKER_GENERIC )
#define PROXY_WORKER_IS_HCFAILED(f)   ( (f)->s->status & PROXY_WORKER_HC_FAIL )
#define PROXY_WORKER_IS(f, b)   ( (f)->s->status & (b) )
#define PROXY_RFC1035_HOSTNAME_SIZE   256
#define PROXY_WORKER_RFC1035_NAME_SIZE   512
#define PROXY_STRNCPY(dst, src)   ap_proxy_strncpy((dst), (src), (sizeof(dst)))
#define PROXY_DO_100_CONTINUE(w, r)
#define ALIGNED_PROXY_WORKER_SHARED_SIZE   (APR_ALIGN_DEFAULT(sizeof(proxy_worker_shared)))
#define PROXY_FLUSH_WAIT   10000
#define ALIGNED_PROXY_BALANCER_SHARED_SIZE   (APR_ALIGN_DEFAULT(sizeof(proxy_balancer_shared)))
#define PROXY_THREAD_LOCK(x)   ( (x) && (x)->tmutex ? apr_thread_mutex_lock((x)->tmutex) : APR_SUCCESS)
#define PROXY_THREAD_UNLOCK(x)   ( (x) && (x)->tmutex ? apr_thread_mutex_unlock((x)->tmutex) : APR_SUCCESS)
#define PROXY_GLOBAL_LOCK(x)   ( (x) && (x)->gmutex ? apr_global_mutex_lock((x)->gmutex) : APR_SUCCESS)
#define PROXY_GLOBAL_UNLOCK(x)   ( (x) && (x)->gmutex ? apr_global_mutex_unlock((x)->gmutex) : APR_SUCCESS)
#define PROXY_DECLARE(type)   type
#define PROXY_DECLARE_NONSTD(type)   type
#define PROXY_CHECK_CONN_EMPTY   (1 << 0)
#define PROXY_LBMETHOD   "proxylbmethod"


typedef struct proxy_balancer proxy_balancer
typedef struct proxy_worker proxy_worker
typedef struct proxy_conn_pool proxy_conn_pool
typedef struct proxy_balancer_method proxy_balancer_method
typedef const char *(* ap_proxy_header_reverse_map_fn) (request_rec *, proxy_dir_conf *, const char *)
typedef intproxy_is_best_callback_fn_t) (proxy_worker *current, proxy_worker *prev_best, void *baton)


enum  enctype {
  enc_path, enc_search, enc_user, enc_fpath,
enum  hcmethod_t {


void hc_show_exprs (request_rec *)
void hc_select_exprs (request_rec *, const char *)
int hc_valid_expr (request_rec *, const char *)
const char * set_worker_hc_param (apr_pool_t *, server_rec *, proxy_worker *, const char *, const char *, void *)
 PROXY_DECLARE_OPTIONAL_HOOK (proxy, PROXY, int, section_post_config,(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s, ap_conf_vector_t *section_config)) int proxy_hook_scheme_handler(request_rec *r
int proxy_hook_check_trans (request_rec *r, const char *url)
int proxy_hook_canon_handler (request_rec *r, char *url)
 PROXY_DECLARE_OPTIONAL_HOOK (proxy, PROXY, int, create_req,(request_rec *r, request_rec *pr)) PROXY_DECLARE_OPTIONAL_HOOK(proxy
request_rec proxy_conn_rec *backend int proxy_hook_pre_request (proxy_worker **worker, proxy_balancer **balancer, request_rec *r, proxy_server_conf *conf, char **url)
int proxy_hook_post_request (proxy_worker *worker, proxy_balancer *balancer, request_rec *r, proxy_server_conf *conf)
 PROXY_DECLARE_OPTIONAL_HOOK (proxy, PROXY, int, request_status,(int *status, request_rec *r)) apr_status_t ap_proxy_strncpy(char *dst
int ap_proxy_hex2c (const char *x)
void ap_proxy_c2hex (int ch, char *x)
char * ap_proxy_canonenc (apr_pool_t *p, const char *x, int len, enum enctype t, int forcedec, int proxyreq)
char * ap_proxy_canon_netloc (apr_pool_t *p, char **const urlp, char **userp, char **passwordp, char **hostp, apr_port_t *port)
int ap_proxyerror (request_rec *r, int statuscode, const char *message)
int ap_proxy_checkproxyblock (request_rec *r, proxy_server_conf *conf, const char *hostname, apr_sockaddr_t *addr)
int ap_proxy_pre_http_request (conn_rec *c, request_rec *r)
int ap_proxy_connect_to_backend (apr_socket_t **, const char *, apr_sockaddr_t *, const char *, proxy_server_conf *, request_rec *)
apr_status_t ap_proxy_ssl_connection_cleanup (proxy_conn_rec *conn, request_rec *r)
int ap_proxy_ssl_enable (conn_rec *c)
int ap_proxy_ssl_disable (conn_rec *c)
int ap_proxy_ssl_engine (conn_rec *c, ap_conf_vector_t *per_dir_config, int enable)
int ap_proxy_conn_is_https (conn_rec *c)
const char * ap_proxy_ssl_val (apr_pool_t *p, server_rec *s, conn_rec *c, request_rec *r, const char *var)
const char * ap_proxy_location_reverse_map (request_rec *r, proxy_dir_conf *conf, const char *url)
const char * ap_proxy_cookie_reverse_map (request_rec *r, proxy_dir_conf *conf, const char *str)
char * ap_proxy_worker_name (apr_pool_t *p, proxy_worker *worker)
int ap_proxy_worker_can_upgrade (apr_pool_t *p, const proxy_worker *worker, const char *upgrade, const char *dflt)
proxy_workerap_proxy_get_worker (apr_pool_t *p, proxy_balancer *balancer, proxy_server_conf *conf, const char *url)
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)
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)
apr_status_t ap_proxy_share_worker (proxy_worker *worker, proxy_worker_shared *shm, int i)
apr_status_t ap_proxy_initialize_worker (proxy_worker *worker, server_rec *s, apr_pool_t *p)
int ap_proxy_valid_balancer_name (char *name, int i)
proxy_balancerap_proxy_get_balancer (apr_pool_t *p, proxy_server_conf *conf, const char *url, int careactive)
char * ap_proxy_update_balancer (apr_pool_t *p, proxy_balancer *balancer, const char *url)
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)
apr_status_t ap_proxy_share_balancer (proxy_balancer *balancer, proxy_balancer_shared *shm, int i)
apr_status_t ap_proxy_initialize_balancer (proxy_balancer *balancer, server_rec *s, apr_pool_t *p)
proxy_workerap_proxy_balancer_get_best_worker (proxy_balancer *balancer, request_rec *r, proxy_is_best_callback_fn_t *is_best, void *baton)
proxy_workerproxy_balancer_get_best_worker (proxy_balancer *balancer, request_rec *r, proxy_is_best_callback_fn_t *is_best, void *baton)
proxy_worker_sharedap_proxy_find_workershm (ap_slotmem_provider_t *storage, ap_slotmem_instance_t *slot, proxy_worker *worker, unsigned int *index)
proxy_balancer_sharedap_proxy_find_balancershm (ap_slotmem_provider_t *storage, ap_slotmem_instance_t *slot, proxy_balancer *balancer, unsigned int *index)
int ap_proxy_pre_request (proxy_worker **worker, proxy_balancer **balancer, request_rec *r, proxy_server_conf *conf, char **url)
int ap_proxy_post_request (proxy_worker *worker, proxy_balancer *balancer, request_rec *r, proxy_server_conf *conf)
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)
int ap_proxy_retry_worker (const char *proxy_function, proxy_worker *worker, server_rec *s)
int ap_proxy_acquire_connection (const char *proxy_function, proxy_conn_rec **conn, proxy_worker *worker, server_rec *s)
int ap_proxy_release_connection (const char *proxy_function, proxy_conn_rec *conn, server_rec *s)
apr_status_t ap_proxy_check_connection (const char *scheme, proxy_conn_rec *conn, server_rec *server, unsigned max_blank_lines, int flags)
int ap_proxy_connect_backend (const char *proxy_function, proxy_conn_rec *conn, proxy_worker *worker, server_rec *s)
apr_status_t ap_proxy_connect_uds (apr_socket_t *sock, const char *uds_path, apr_pool_t *p)
int ap_proxy_connection_create (const char *proxy_function, proxy_conn_rec *conn, conn_rec *c, server_rec *s)
int ap_proxy_connection_create_ex (const char *proxy_function, proxy_conn_rec *conn, request_rec *r)
int ap_proxy_connection_reusable (proxy_conn_rec *conn)
void ap_proxy_backend_broke (request_rec *r, apr_bucket_brigade *brigade)
unsigned int ap_proxy_hashfunc (const char *str, proxy_hash_t method)
apr_status_t ap_proxy_set_wstatus (char c, int set, proxy_worker *w)
char * ap_proxy_parse_wstatus (apr_pool_t *p, proxy_worker *w)
apr_status_t ap_proxy_sync_balancer (proxy_balancer *b, server_rec *s, proxy_server_conf *conf)
int ap_proxy_trans_match (request_rec *r, struct proxy_alias *ent, proxy_dir_conf *dconf)
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)
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)
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)
int ap_proxy_read_input (request_rec *r, proxy_conn_rec *backend, apr_bucket_brigade *input_brigade, apr_off_t max_read)
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)
apr_status_t ap_proxy_tunnel_create (proxy_tunnel_rec **tunnel, request_rec *r, conn_rec *c_o, const char *scheme)
int ap_proxy_tunnel_run (proxy_tunnel_rec *tunnel)
int ap_proxy_clear_connection (request_rec *r, apr_table_t *headers)
apr_status_t balancer_manage (request_rec *, apr_table_t *params)
apr_status_t ajp_handle_cping_cpong (apr_socket_t *sock, request_rec *r, apr_interval_time_t timeout)
int ap_proxy_is_socket_connected (apr_socket_t *socket)
int ap_proxy_lb_workers (void)
int ap_proxy_should_override (proxy_dir_conf *conf, int code)
apr_port_t ap_proxy_port_of_scheme (const char *scheme)
const char * ap_proxy_show_hcmethod (hcmethod_t method)
const char * ap_proxy_de_socketfy (apr_pool_t *p, const char *url)
apr_status_t ap_proxy_buckets_lifetime_transform (request_rec *r, apr_bucket_brigade *from, apr_bucket_brigade *to)
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)


PROXY_DECLARE_DATA proxy_hcmethods_t proxy_hcmethods []
PROXY_DECLARE_DATA proxy_wstat_t proxy_wstat_tbl []
proxy_worker proxy_server_confconf
proxy_worker proxy_server_conf char * url
proxy_worker proxy_server_conf char const char * proxyhost
proxy_worker proxy_server_conf char const char apr_port_t proxyport
const char * src
const char apr_size_t dlen
module PROXY_DECLARE_DATA proxy_module

Detailed Description

Proxy Extension Module for Apache.