44#define APR_WANT_STRFUNC
67#if APR_HAVE_NETINET_IN_H
68#include <netinet/in.h>
70#if APR_HAVE_ARPA_INET_H
80#define PROXY_CANONENC_FORCEDEC 0x01
81#define PROXY_CANONENC_NOENCODEDSLASHENCODING 0x02
84 NONE,
TCP,
OPTIONS,
HEAD,
GET,
CPING,
PROVIDER,
OPTIONS11,
HEAD11,
GET11,
EOT
99#define BALANCER_PREFIX "balancer://"
101#if APR_CHARSET_EBCDIC
104#define CRLF "\015\012"
111#define DEFAULT_MAX_FORWARDS -1
129#define PROXYPASS_NOCANON 0x01
130#define PROXYPASS_INTERPOLATE 0x02
131#define PROXYPASS_NOQUERY 0x04
132#define PROXYPASS_MAP_ENCODED 0x08
133#define PROXYPASS_MAP_SERVLET 0x18
313#define AP_VOLATILIZE_T(T, x) (*(T volatile *)&(x))
320#define PROXY_WORKER_INITIALIZED 0x0001
321#define PROXY_WORKER_IGNORE_ERRORS 0x0002
322#define PROXY_WORKER_DRAIN 0x0004
323#define PROXY_WORKER_GENERIC 0x0008
324#define PROXY_WORKER_IN_SHUTDOWN 0x0010
325#define PROXY_WORKER_DISABLED 0x0020
326#define PROXY_WORKER_STOPPED 0x0040
327#define PROXY_WORKER_IN_ERROR 0x0080
328#define PROXY_WORKER_HOT_STANDBY 0x0100
329#define PROXY_WORKER_FREE 0x0200
330#define PROXY_WORKER_HC_FAIL 0x0400
331#define PROXY_WORKER_HOT_SPARE 0x0800
334#define PROXY_WORKER_INITIALIZED_FLAG 'O'
335#define PROXY_WORKER_IGNORE_ERRORS_FLAG 'I'
336#define PROXY_WORKER_DRAIN_FLAG 'N'
337#define PROXY_WORKER_GENERIC_FLAG 'G'
338#define PROXY_WORKER_IN_SHUTDOWN_FLAG 'U'
339#define PROXY_WORKER_DISABLED_FLAG 'D'
340#define PROXY_WORKER_STOPPED_FLAG 'S'
341#define PROXY_WORKER_IN_ERROR_FLAG 'E'
342#define PROXY_WORKER_HOT_STANDBY_FLAG 'H'
343#define PROXY_WORKER_FREE_FLAG 'F'
344#define PROXY_WORKER_HC_FAIL_FLAG 'C'
345#define PROXY_WORKER_HOT_SPARE_FLAG 'R'
347#define PROXY_WORKER_NOT_USABLE_BITMAP ( PROXY_WORKER_IN_SHUTDOWN | \
348PROXY_WORKER_DISABLED | PROXY_WORKER_STOPPED | PROXY_WORKER_IN_ERROR | \
349PROXY_WORKER_HC_FAIL )
352#define PROXY_WORKER_IS_INITIALIZED(f) ( (f)->s->status & PROXY_WORKER_INITIALIZED )
354#define PROXY_WORKER_IS_STANDBY(f) ( (f)->s->status & PROXY_WORKER_HOT_STANDBY )
356#define PROXY_WORKER_IS_SPARE(f) ( (f)->s->status & PROXY_WORKER_HOT_SPARE )
358#define PROXY_WORKER_IS_USABLE(f) ( ( !( (f)->s->status & PROXY_WORKER_NOT_USABLE_BITMAP) ) && \
359 PROXY_WORKER_IS_INITIALIZED(f) )
361#define PROXY_WORKER_IS_DRAINING(f) ( (f)->s->status & PROXY_WORKER_DRAIN )
363#define PROXY_WORKER_IS_GENERIC(f) ( (f)->s->status & PROXY_WORKER_GENERIC )
365#define PROXY_WORKER_IS_HCFAILED(f) ( (f)->s->status & PROXY_WORKER_HC_FAIL )
367#define PROXY_WORKER_IS_ERROR(f) ( (f)->s->status & PROXY_WORKER_IN_ERROR )
369#define PROXY_WORKER_IS(f, b) ( (f)->s->status & (b) )
372#define PROXY_WORKER_DEFAULT_RETRY 60
375#define PROXY_WORKER_MAX_SCHEME_SIZE 16
376#define PROXY_WORKER_MAX_ROUTE_SIZE 64
377#define PROXY_BALANCER_MAX_ROUTE_SIZE PROXY_WORKER_MAX_ROUTE_SIZE
378#define PROXY_WORKER_MAX_NAME_SIZE 96
379#define PROXY_BALANCER_MAX_NAME_SIZE PROXY_WORKER_MAX_NAME_SIZE
380#define PROXY_WORKER_MAX_HOSTNAME_SIZE 64
381#define PROXY_BALANCER_MAX_HOSTNAME_SIZE PROXY_WORKER_MAX_HOSTNAME_SIZE
382#define PROXY_BALANCER_MAX_STICKY_SIZE 64
383#define PROXY_WORKER_MAX_SECRET_SIZE 64
385#define PROXY_RFC1035_HOSTNAME_SIZE 256
386#define PROXY_WORKER_EXT_NAME_SIZE 384
391#define PROXY_WORKER_RFC1035_NAME_SIZE 512
393#define PROXY_MAX_PROVIDER_NAME_SIZE 16
395#define PROXY_STRNCPY(dst, src) ap_proxy_strncpy((dst), (src), (sizeof(dst)))
397#define PROXY_COPY_CONF_PARAMS(w, c) \
399(w)->s->timeout = (c)->timeout; \
400(w)->s->timeout_set = (c)->timeout_set; \
401(w)->s->recv_buffer_size = (c)->recv_buffer_size; \
402(w)->s->recv_buffer_size_set = (c)->recv_buffer_size_set; \
403(w)->s->io_buffer_size = (c)->io_buffer_size; \
404(w)->s->io_buffer_size_set = (c)->io_buffer_size_set; \
407#define PROXY_SHOULD_PING_100_CONTINUE(w, r) \
408 ((w)->s->ping_timeout_set \
409 && (PROXYREQ_REVERSE == (r)->proxyreq) \
410 && ap_request_has_body((r)))
412#define PROXY_DO_100_CONTINUE(w, r) \
413 (PROXY_SHOULD_PING_100_CONTINUE(w, r) \
414 && !apr_table_get((r)->subprocess_env, "force-proxy-request-1.0"))
498#define ALIGNED_PROXY_WORKER_SHARED_SIZE (APR_ALIGN_DEFAULT(sizeof(proxy_worker_shared)))
516#define HCHECK_WATHCHDOG_DEFAULT_INTERVAL (30)
518#define HCHECK_WATHCHDOG_INTERVAL (2)
524#define PROXY_FLUSH_WAIT 10000
556#define ALIGNED_PROXY_BALANCER_SHARED_SIZE (APR_ALIGN_DEFAULT(sizeof(proxy_balancer_shared)))
592#define PROXY_THREAD_LOCK(x) ( (x) && (x)->tmutex ? apr_thread_mutex_lock((x)->tmutex) : APR_SUCCESS)
593#define PROXY_THREAD_UNLOCK(x) ( (x) && (x)->tmutex ? apr_thread_mutex_unlock((x)->tmutex) : APR_SUCCESS)
595#define PROXY_GLOBAL_LOCK(x) ( (x) && (x)->gmutex ? apr_global_mutex_lock((x)->gmutex) : APR_SUCCESS)
596#define PROXY_GLOBAL_UNLOCK(x) ( (x) && (x)->gmutex ? apr_global_mutex_unlock((x)->gmutex) : APR_SUCCESS)
604#define PROXY_DECLARE(type) type
605#define PROXY_DECLARE_NONSTD(type) type
606#define PROXY_DECLARE_DATA
607#elif defined(PROXY_DECLARE_STATIC)
608#define PROXY_DECLARE(type) type __stdcall
609#define PROXY_DECLARE_NONSTD(type) type
610#define PROXY_DECLARE_DATA
611#elif defined(PROXY_DECLARE_EXPORT)
612#define PROXY_DECLARE(type) __declspec(dllexport) type __stdcall
613#define PROXY_DECLARE_NONSTD(type) __declspec(dllexport) type
614#define PROXY_DECLARE_DATA __declspec(dllexport)
616#define PROXY_DECLARE(type) __declspec(dllimport) type __stdcall
617#define PROXY_DECLARE_NONSTD(type) __declspec(dllimport) type
618#define PROXY_DECLARE_DATA __declspec(dllimport)
627#define PROXY_DECLARE_OPTIONAL_HOOK APR_DECLARE_EXTERNAL_HOOK
639 const char *,
const char *,
void *));
694 int flags,
int proxyreq);
732typedef const char *(*ap_proxy_header_reverse_map_fn)(
request_rec *,
734#elif defined(PROXY_DECLARE_STATIC)
737#elif defined(PROXY_DECLARE_EXPORT)
773#define AP_PROXY_WORKER_IS_PREFIX (1u << 0)
774#define AP_PROXY_WORKER_IS_MATCH (1u << 1)
775#define AP_PROXY_WORKER_IS_MALLOCED (1u << 2)
776#define AP_PROXY_WORKER_NO_UDS (1u << 3)
991 unsigned int *index);
1004 unsigned int *index);
1047#define PROXY_DETERMINE_ADDRESS_CHECK (1u << 0)
1093 char *server_portstr,
1135#define PROXY_CHECK_CONN_EMPTY (1 << 0)
1179 const char *uds_path,
1317 char *
url,
char *server_portstr,
1408 const char *scheme);
1444#define PROXY_LBMETHOD "proxylbmethod"
1449#define PROXY_DYNAMIC_BALANCER_LIMIT 16
1515#define AP_PROXY_TRANSFER_FLUSH_EACH (0x00)
1516#define AP_PROXY_TRANSFER_FLUSH_AFTER (0x01)
1517#define AP_PROXY_TRANSFER_YIELD_PENDING (0x02)
1518#define AP_PROXY_TRANSFER_YIELD_MAX_READS (0x04)
1555extern module PROXY_DECLARE_DATA proxy_module;
Symbol export macros and hook functions.
const char apr_size_t len
Memory Slot Extension Storage Module for Apache.
APR-UTIL Buckets/Bucket Brigades.
APR Global Locking Routines.
APR general purpose library routines.
APR-UTIL registration of functions exported by modules.
APR-UTIL Resource List Routines.
APR-UTIL string matching routines.
APR Thread Mutex Routines.
APR Standard Headers Support.
struct ap_conf_vector_t ap_conf_vector_t
const char apr_port_t port
ap_vhost_iterate_conn_cb void * baton
#define APR_UUID_FORMATTED_LENGTH
apr_pool_t const char * params
const char apr_ssize_t int flags
#define APR_DECLARE_EXTERNAL_HOOK(ns, link, ret, name, args)
apr_memcache_server_t * server
#define APR_DECLARE_OPTIONAL_FN(ret, name, args)
#define PROXY_DECLARE_DATA
int ap_proxy_ssl_engine(conn_rec *c, ap_conf_vector_t *per_dir_config, int enable)
int ap_proxy_connect_backend(const char *proxy_function, proxy_conn_rec *conn, proxy_worker *worker, server_rec *s)
#define PROXY_WORKER_MAX_HOSTNAME_SIZE
#define PROXY_BALANCER_MAX_NAME_SIZE
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)
int ap_proxy_ssl_disable(conn_rec *c)
apr_status_t ap_proxy_set_wstatus(char c, int set, proxy_worker *w)
int ap_proxy_should_override(proxy_dir_conf *conf, int code)
#define PROXY_WORKER_MAX_ROUTE_SIZE
#define PROXY_DECLARE(type)
#define PROXY_BALANCER_MAX_ROUTE_SIZE
int ap_proxy_read_input(request_rec *r, proxy_conn_rec *backend, apr_bucket_brigade *input_brigade, apr_off_t max_read)
char * ap_proxy_canon_netloc(apr_pool_t *p, char **const urlp, char **userp, char **passwordp, char **hostp, apr_port_t *port)
int ap_proxy_release_connection(const char *proxy_function, proxy_conn_rec *conn, server_rec *s)
int ap_proxy_tunnel_run(proxy_tunnel_rec *tunnel)
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)
int ap_proxy_acquire_connection(const char *proxy_function, proxy_conn_rec **conn, proxy_worker *worker, server_rec *s)
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)
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)
int ap_proxy_hex2c(const char *x)
proxy_worker * ap_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)
const char * ap_proxy_de_socketfy(apr_pool_t *p, const char *url)
proxy_worker_shared * ap_proxy_find_workershm(ap_slotmem_provider_t *storage, ap_slotmem_instance_t *slot, proxy_worker *worker, unsigned int *index)
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_trans_match(request_rec *r, struct proxy_alias *ent, proxy_dir_conf *dconf)
char * ap_proxy_canonenc_ex(apr_pool_t *p, const char *x, int len, enum enctype t, int flags, int proxyreq)
void ap_proxy_c2hex(int ch, char *x)
void ap_proxy_backend_broke(request_rec *r, apr_bucket_brigade *brigade)
const char * ap_proxy_location_reverse_map(request_rec *r, proxy_dir_conf *conf, const char *url)
int() proxy_is_best_callback_fn_t(proxy_worker *current, proxy_worker *prev_best, void *baton)
apr_status_t ap_proxy_tunnel_create(proxy_tunnel_rec **tunnel, request_rec *r, conn_rec *c_o, const char *scheme)
apr_status_t ap_proxy_check_connection(const char *scheme, proxy_conn_rec *conn, server_rec *server, unsigned max_blank_lines, int flags)
#define PROXY_WORKER_MAX_SECRET_SIZE
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)
int ap_proxy_post_request(proxy_worker *worker, proxy_balancer *balancer, request_rec *r, proxy_server_conf *conf)
int ap_proxy_checkproxyblock(request_rec *r, proxy_server_conf *conf, apr_sockaddr_t *uri_addr)
int ap_proxy_checkproxyblock2(request_rec *r, proxy_server_conf *conf, const char *hostname, apr_sockaddr_t *addr)
proxy_worker * ap_proxy_get_worker_ex(apr_pool_t *p, proxy_balancer *balancer, proxy_server_conf *conf, const char *url, unsigned int mask)
proxy_balancer * ap_proxy_get_balancer(apr_pool_t *p, proxy_server_conf *conf, const char *url, int careactive)
int ap_proxy_connection_reusable(proxy_conn_rec *conn)
#define PROXY_MAX_PROVIDER_NAME_SIZE
#define PROXY_WORKER_MAX_NAME_SIZE
int ap_proxy_valid_balancer_name(char *name, int i)
#define PROXY_WORKER_MAX_SCHEME_SIZE
int ap_proxy_pre_http_request(conn_rec *c, request_rec *r)
int ap_proxy_conn_is_https(conn_rec *c)
apr_status_t ap_proxy_strncpy(char *dst, const char *src, apr_size_t dlen)
apr_status_t ap_proxy_share_worker(proxy_worker *worker, proxy_worker_shared *shm, int i)
int ap_proxy_worker_can_upgrade(apr_pool_t *p, const proxy_worker *worker, const char *upgrade, const char *dflt)
#define PROXY_BALANCER_MAX_HOSTNAME_SIZE
apr_status_t ap_proxy_buckets_lifetime_transform(request_rec *r, apr_bucket_brigade *from, apr_bucket_brigade *to)
#define PROXY_RFC1035_HOSTNAME_SIZE
const char *(* ap_proxy_header_reverse_map_fn)(request_rec *, proxy_dir_conf *, const char *)
proxy_wstat_t proxy_wstat_tbl[]
int ap_proxy_pre_request(proxy_worker **worker, proxy_balancer **balancer, request_rec *r, proxy_server_conf *conf, char **url)
apr_status_t ap_proxy_connect_uds(apr_socket_t *sock, const char *uds_path, apr_pool_t *p)
int ap_proxy_connect_to_backend(apr_socket_t **, const char *, apr_sockaddr_t *, const char *, proxy_server_conf *, request_rec *)
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)
proxy_balancer_shared * ap_proxy_find_balancershm(ap_slotmem_provider_t *storage, ap_slotmem_instance_t *slot, proxy_balancer *balancer, unsigned int *index)
int ap_proxy_connection_create_ex(const char *proxy_function, proxy_conn_rec *conn, request_rec *r)
apr_status_t ap_proxy_share_balancer(proxy_balancer *balancer, proxy_balancer_shared *shm, int i)
apr_status_t ap_proxy_ssl_connection_cleanup(proxy_conn_rec *conn, request_rec *r)
#define PROXY_BALANCER_MAX_STICKY_SIZE
unsigned int ap_proxy_hashfunc(const char *str, proxy_hash_t method)
const char * ap_proxy_show_hcmethod(hcmethod_t method)
int ap_proxy_fixup_uds_filename(request_rec *r)
int ap_proxy_lb_workers(void)
apr_status_t ap_proxy_initialize_worker(proxy_worker *worker, server_rec *s, apr_pool_t *p)
apr_port_t ap_proxy_port_of_scheme(const char *scheme)
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_proxyerror(request_rec *r, int statuscode, const char *message)
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)
apr_status_t ap_proxy_initialize_balancer(proxy_balancer *balancer, server_rec *s, apr_pool_t *p)
proxy_worker * ap_proxy_balancer_get_best_worker(proxy_balancer *balancer, request_rec *r, proxy_is_best_callback_fn_t *is_best, void *baton)
const char * ap_proxy_cookie_reverse_map(request_rec *r, proxy_dir_conf *conf, const char *str)
int ap_proxy_connection_create(const char *proxy_function, proxy_conn_rec *conn, conn_rec *c, server_rec *s)
int ap_proxy_ssl_enable(conn_rec *c)
char * ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, enum enctype t, int forcedec, int proxyreq)
proxy_hcmethods_t proxy_hcmethods[]
#define PROXY_WORKER_EXT_NAME_SIZE
char * ap_proxy_worker_name(apr_pool_t *p, proxy_worker *worker)
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_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)
const char * ap_proxy_ssl_val(apr_pool_t *p, server_rec *s, conn_rec *c, request_rec *r, const char *var)
char * ap_proxy_update_balancer(apr_pool_t *p, proxy_balancer *balancer, const char *url)
int ap_proxy_is_socket_connected(apr_socket_t *socket)
void apr_size_t apr_size_t * bytes_read
apr_vformatter_buff_t * c
apr_uint32_t apr_pool_t apr_uint32_t apr_pollset_method_e method
apr_int64_t apr_interval_time_t
Apache connection library.
static unsigned char * secret
static const ap_slotmem_provider_t * storage
static apr_status_t balancer_manage(request_rec *r, apr_table_t *params)
static void hc_show_exprs(request_rec *r)
static int hc_valid_expr(request_rec *r, const char *expr)
static apr_OFN_ajp_handle_cping_cpong_t * ajp_handle_cping_cpong
static const char * set_worker_hc_param(apr_pool_t *p, server_rec *s, proxy_worker *worker, const char *key, const char *val, void *v)
static void hc_select_exprs(request_rec *r, const char *expr)
static int ap_proxy_retry_worker(const char *proxy_function, proxy_worker *worker, server_rec *s)
static proxy_worker * proxy_balancer_get_best_worker(proxy_balancer *balancer, request_rec *r, proxy_is_best_callback_fn_t *is_best, void *baton)
static int ap_proxy_clear_connection(request_rec *r, apr_table_t *headers)
Structure to store things which are per connection.
int(* matcher)(struct dirconn_entry *This, request_rec *r)
struct apr_sockaddr_t * hostaddr
struct apr_sockaddr_t * addr
proxy_balancer * balancer
apr_status_t(* reset)(proxy_balancer *balancer, server_rec *s)
apr_status_t(* age)(proxy_balancer *balancer, server_rec *s)
apr_status_t(* updatelbstatus)(proxy_balancer *balancer, proxy_worker *elected, server_rec *s)
unsigned int forcerecovery
unsigned int max_attempts_set
unsigned int sticky_separator_set
unsigned int forcerecovery_set
unsigned int sticky_force
unsigned int was_malloced
apr_interval_time_t timeout
unsigned int sticky_force_set
unsigned int scolonsep_set
unsigned int failontimeout_set
ap_slotmem_instance_t * wslot
ap_conf_vector_t * section_config
proxy_balancer_shared * s
ap_slotmem_provider_t * storage
unsigned int lbmethod_set
apr_array_header_t * errstatuses
proxy_server_conf * sconf
apr_global_mutex_t * gmutex
proxy_balancer_method * lbmethod
apr_array_header_t * workers
apr_bucket_brigade * tmp_bb
struct proxy_address * address
const char * ssl_hostname
apr_array_header_t * cookie_domains
signed char interpolate_env
unsigned int add_forwarded_headers_set
apr_array_header_t * raliases
unsigned int error_override_set
unsigned int error_override
apr_array_header_t * refs
struct proxy_alias * alias
unsigned int forward_100_continue
unsigned int preserve_host_set
unsigned int preserve_host
apr_array_header_t * cookie_paths
unsigned int forward_100_continue_set
unsigned int add_forwarded_headers
apr_array_header_t * error_override_codes
apr_array_header_t * cookie_domains
apr_array_header_t * raliases
apr_array_header_t * cookie_paths
unsigned int map_encoded_all
apr_size_t recv_buffer_size
apr_array_header_t * workers
apr_array_header_t * aliases
apr_array_header_t * proxies
unsigned int recv_buffer_size_set
apr_array_header_t * sec_proxy
unsigned int source_address_set
apr_sockaddr_t * source_address
ap_slotmem_provider_t * storage
unsigned int proxy_status_set
unsigned int io_buffer_size_set
apr_interval_time_t timeout
apr_array_header_t * dirconn
apr_global_mutex_t * mutex
unsigned int map_encoded_one
apr_size_t io_buffer_size
apr_array_header_t * balancers
ap_slotmem_instance_t * bslot
apr_array_header_t * noproxies
unsigned int ppinherit_set
apr_interval_time_t timeout
struct proxy_tunnel_conn * origin
struct proxy_tunnel_conn * client
apr_array_header_t * pfds
unsigned int conn_timeout_set
apr_size_t recv_buffer_size
apr_interval_time_t timeout
unsigned int is_name_matchable
apr_uint32_t address_expiry
apr_interval_time_t retry
unsigned int was_malloced
unsigned int ping_timeout_set
unsigned int disablereuse_set
apr_size_t response_field_size
unsigned int io_buffer_size_set
unsigned int keepalive_set
apr_size_t io_buffer_size
unsigned int address_ttl_set
apr_interval_time_t interval
apr_interval_time_t conn_timeout
unsigned int response_field_size_set
apr_interval_time_t ping_timeout
unsigned int recv_buffer_size_set
unsigned int is_address_reusable
unsigned int disablereuse
apr_interval_time_t acquire
unsigned int local_status
ap_conf_vector_t * section_config
proxy_balancer * balancer
struct proxy_address *volatile address
A structure that represents the current request.
A structure to store information for each virtual server.
Utilities for EBCDIC conversion.
Apache Mutex support library.
typedef int(WSAAPI *apr_winapi_fpt_WSAPoll)(IN OUT LPWSAPOLLFD fdArray