44 #define APR_WANT_STRFUNC
67 #if APR_HAVE_NETINET_IN_H
68 #include <netinet/in.h>
70 #if APR_HAVE_ARPA_INET_H
71 #include <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
144 struct in_addr addr,
mask;
272 struct proxy_address;
318 #define AP_VOLATILIZE_T(T, x) (*(T volatile *)&(x))
325 #define PROXY_WORKER_INITIALIZED 0x0001
326 #define PROXY_WORKER_IGNORE_ERRORS 0x0002
327 #define PROXY_WORKER_DRAIN 0x0004
328 #define PROXY_WORKER_GENERIC 0x0008
329 #define PROXY_WORKER_IN_SHUTDOWN 0x0010
330 #define PROXY_WORKER_DISABLED 0x0020
331 #define PROXY_WORKER_STOPPED 0x0040
332 #define PROXY_WORKER_IN_ERROR 0x0080
333 #define PROXY_WORKER_HOT_STANDBY 0x0100
334 #define PROXY_WORKER_FREE 0x0200
335 #define PROXY_WORKER_HC_FAIL 0x0400
336 #define PROXY_WORKER_HOT_SPARE 0x0800
339 #define PROXY_WORKER_INITIALIZED_FLAG 'O'
340 #define PROXY_WORKER_IGNORE_ERRORS_FLAG 'I'
341 #define PROXY_WORKER_DRAIN_FLAG 'N'
342 #define PROXY_WORKER_GENERIC_FLAG 'G'
343 #define PROXY_WORKER_IN_SHUTDOWN_FLAG 'U'
344 #define PROXY_WORKER_DISABLED_FLAG 'D'
345 #define PROXY_WORKER_STOPPED_FLAG 'S'
346 #define PROXY_WORKER_IN_ERROR_FLAG 'E'
347 #define PROXY_WORKER_HOT_STANDBY_FLAG 'H'
348 #define PROXY_WORKER_FREE_FLAG 'F'
349 #define PROXY_WORKER_HC_FAIL_FLAG 'C'
350 #define PROXY_WORKER_HOT_SPARE_FLAG 'R'
352 #define PROXY_WORKER_NOT_USABLE_BITMAP ( PROXY_WORKER_IN_SHUTDOWN | \
353 PROXY_WORKER_DISABLED | PROXY_WORKER_STOPPED | PROXY_WORKER_IN_ERROR | \
354 PROXY_WORKER_HC_FAIL )
357 #define PROXY_WORKER_IS_INITIALIZED(f) ( (f)->s->status & PROXY_WORKER_INITIALIZED )
359 #define PROXY_WORKER_IS_STANDBY(f) ( (f)->s->status & PROXY_WORKER_HOT_STANDBY )
361 #define PROXY_WORKER_IS_SPARE(f) ( (f)->s->status & PROXY_WORKER_HOT_SPARE )
363 #define PROXY_WORKER_IS_USABLE(f) ( ( !( (f)->s->status & PROXY_WORKER_NOT_USABLE_BITMAP) ) && \
364 PROXY_WORKER_IS_INITIALIZED(f) )
366 #define PROXY_WORKER_IS_DRAINING(f) ( (f)->s->status & PROXY_WORKER_DRAIN )
368 #define PROXY_WORKER_IS_GENERIC(f) ( (f)->s->status & PROXY_WORKER_GENERIC )
370 #define PROXY_WORKER_IS_HCFAILED(f) ( (f)->s->status & PROXY_WORKER_HC_FAIL )
372 #define PROXY_WORKER_IS_ERROR(f) ( (f)->s->status & PROXY_WORKER_IN_ERROR )
374 #define PROXY_WORKER_IS(f, b) ( (f)->s->status & (b) )
377 #define PROXY_WORKER_DEFAULT_RETRY 60
380 #define PROXY_WORKER_MAX_SCHEME_SIZE 16
381 #define PROXY_WORKER_MAX_ROUTE_SIZE 96
382 #define PROXY_BALANCER_MAX_ROUTE_SIZE 64
383 #define PROXY_WORKER_MAX_NAME_SIZE 384
384 #define PROXY_BALANCER_MAX_NAME_SIZE 64
385 #define PROXY_WORKER_MAX_HOSTNAME_SIZE 96
386 #define PROXY_BALANCER_MAX_HOSTNAME_SIZE 64
387 #define PROXY_BALANCER_MAX_STICKY_SIZE 64
388 #define PROXY_WORKER_MAX_SECRET_SIZE 64
389 #define PROXY_WORKER_UDS_PATH_SIZE 256
391 #define PROXY_RFC1035_HOSTNAME_SIZE 256
396 #define PROXY_WORKER_RFC1035_NAME_SIZE 512
398 #define PROXY_MAX_PROVIDER_NAME_SIZE 16
400 #define PROXY_STRNCPY(dst, src) ap_proxy_strncpy((dst), (src), (sizeof(dst)))
402 #define PROXY_COPY_CONF_PARAMS(w, c) \
404 (w)->s->timeout = (c)->timeout; \
405 (w)->s->timeout_set = (c)->timeout_set; \
406 (w)->s->recv_buffer_size = (c)->recv_buffer_size; \
407 (w)->s->recv_buffer_size_set = (c)->recv_buffer_size_set; \
408 (w)->s->io_buffer_size = (c)->io_buffer_size; \
409 (w)->s->io_buffer_size_set = (c)->io_buffer_size_set; \
412 #define PROXY_SHOULD_PING_100_CONTINUE(w, r) \
413 ((w)->s->ping_timeout_set \
414 && (PROXYREQ_REVERSE == (r)->proxyreq) \
415 && ap_request_has_body((r)))
417 #define PROXY_DO_100_CONTINUE(w, r) \
418 (PROXY_SHOULD_PING_100_CONTINUE(w, r) \
419 && !apr_table_get((r)->subprocess_env, "force-proxy-request-1.0"))
501 #define ALIGNED_PROXY_WORKER_SHARED_SIZE (APR_ALIGN_DEFAULT(sizeof(proxy_worker_shared)))
520 #define HCHECK_WATHCHDOG_DEFAULT_INTERVAL (30)
526 #define PROXY_FLUSH_WAIT 10000
558 #define ALIGNED_PROXY_BALANCER_SHARED_SIZE (APR_ALIGN_DEFAULT(sizeof(proxy_balancer_shared)))
595 #define PROXY_THREAD_LOCK(x) ( (x) && (x)->tmutex ? apr_thread_mutex_lock((x)->tmutex) : APR_SUCCESS)
596 #define PROXY_THREAD_UNLOCK(x) ( (x) && (x)->tmutex ? apr_thread_mutex_unlock((x)->tmutex) : APR_SUCCESS)
598 #define PROXY_THREAD_LOCK(x) (APR_SUCCESS)
599 #define PROXY_THREAD_UNLOCK(x) (APR_SUCCESS)
602 #define PROXY_GLOBAL_LOCK(x) ( (x) && (x)->gmutex ? apr_global_mutex_lock((x)->gmutex) : APR_SUCCESS)
603 #define PROXY_GLOBAL_UNLOCK(x) ( (x) && (x)->gmutex ? apr_global_mutex_unlock((x)->gmutex) : APR_SUCCESS)
611 #define PROXY_DECLARE(type) type
612 #define PROXY_DECLARE_NONSTD(type) type
613 #define PROXY_DECLARE_DATA
614 #elif defined(PROXY_DECLARE_STATIC)
615 #define PROXY_DECLARE(type) type __stdcall
616 #define PROXY_DECLARE_NONSTD(type) type
617 #define PROXY_DECLARE_DATA
618 #elif defined(PROXY_DECLARE_EXPORT)
619 #define PROXY_DECLARE(type) __declspec(dllexport) type __stdcall
620 #define PROXY_DECLARE_NONSTD(type) __declspec(dllexport) type
621 #define PROXY_DECLARE_DATA __declspec(dllexport)
623 #define PROXY_DECLARE(type) __declspec(dllimport) type __stdcall
624 #define PROXY_DECLARE_NONSTD(type) __declspec(dllimport) type
625 #define PROXY_DECLARE_DATA __declspec(dllimport)
634 #define PROXY_DECLARE_OPTIONAL_HOOK APR_DECLARE_EXTERNAL_HOOK
647 const char *,
const char *,
void *));
711 int flags,
int proxyreq);
713 int forcedec,
int proxyreq);
715 char **passwordp,
char **hostp,
apr_port_t *port);
749 typedef const char *(*ap_proxy_header_reverse_map_fn)(
request_rec *,
751 #elif defined(PROXY_DECLARE_STATIC)
754 #elif defined(PROXY_DECLARE_EXPORT)
755 typedef __declspec(dllexport)
const char *
759 typedef __declspec(dllimport)
const char *
799 #define AP_PROXY_WORKER_IS_PREFIX (1u << 0)
800 #define AP_PROXY_WORKER_IS_MATCH (1u << 1)
801 #define AP_PROXY_WORKER_IS_MALLOCED (1u << 2)
802 #define AP_PROXY_WORKER_NO_UDS (1u << 3)
1017 unsigned int *index);
1030 unsigned int *index);
1064 #define PROXY_DETERMINE_ADDRESS_CHECK (1u << 0)
1080 const char *hostname,
1108 const char *proxyname,
1110 char *server_portstr,
1111 int server_portstr_size);
1152 #define PROXY_CHECK_CONN_EMPTY (1 << 0)
1170 unsigned max_blank_lines,
1196 const char *uds_path,
1340 char *
url,
char *server_portstr,
1407 struct proxy_tunnel_conn;
1432 const char *scheme);
1512 #define PROXY_LBMETHOD "proxylbmethod"
1517 #define PROXY_DYNAMIC_BALANCER_LIMIT 16
1583 #define AP_PROXY_TRANSFER_FLUSH_EACH (0x00)
1584 #define AP_PROXY_TRANSFER_FLUSH_AFTER (0x01)
1585 #define AP_PROXY_TRANSFER_YIELD_PENDING (0x02)
1586 #define AP_PROXY_TRANSFER_YIELD_MAX_READS (0x04)
Symbol export macros and hook functions.
Memory Slot Extension Storage Module for Apache.
APR Platform Definitions.
#define socket
Definition: apr_arch_os2calls.h:41
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
Definition: http_config.h:512
#define APR_UUID_FORMATTED_LENGTH
Definition: apr_uuid.h:46
apr_read_type_e
Definition: apr_buckets.h:62
struct apr_bucket_alloc_t apr_bucket_alloc_t
Definition: apr_buckets.h:128
#define APR_DECLARE_EXTERNAL_HOOK(ns, link, ret, name, args)
Definition: apr_hooks.h:118
#define APR_DECLARE_OPTIONAL_FN(ret, name, args)
Definition: apr_optional.h:50
struct apr_reslist_t apr_reslist_t
Definition: apr_reslist.h:42
struct ap_slotmem_instance_t ap_slotmem_instance_t
Definition: ap_slotmem.h:75
dav_resource int dav_locktoken dav_response int flags
Definition: mod_dav.h:1458
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
const char const char * uri
Definition: mod_dav.h:631
const char * name
Definition: mod_dav.h:805
apr_bucket_brigade ap_input_mode_t apr_read_type_e block
Definition: mod_dav.h:2663
char * ap_proxy_canon_netloc(apr_pool_t *p, char **const urlp, char **userp, char **passwordp, char **hostp, apr_port_t *port)
const char * ap_proxy_ssl_val(apr_pool_t *p, server_rec *s, conn_rec *c, request_rec *r, const char *var)
#define PROXY_DECLARE_DATA
Definition: mod_proxy.h:613
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)
apr_table_t * headers
Definition: mod_proxy.h:1484
int ap_proxy_ssl_engine(conn_rec *c, ap_conf_vector_t *per_dir_config, int enable)
char * ap_proxy_parse_wstatus(apr_pool_t *p, proxy_worker *w)
proxy_worker proxy_server_conf char const char apr_port_t proxyport
Definition: mod_proxy.h:657
PROXY_DECLARE_DATA proxy_wstat_t proxy_wstat_tbl[]
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
Definition: mod_proxy.h:385
struct proxy_tunnel_conn proxy_tunnel_conn_t
Definition: mod_proxy.h:1408
#define PROXY_BALANCER_MAX_NAME_SIZE
Definition: mod_proxy.h:384
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_worker proxy_server_conf char const char * proxyhost
Definition: mod_proxy.h:657
proxy_balancer * ap_proxy_get_balancer(apr_pool_t *p, proxy_server_conf *conf, const char *url, int careactive)
int ap_proxy_ssl_disable(conn_rec *c)
char * ap_proxy_worker_name(apr_pool_t *unused, proxy_worker *worker)
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
Definition: mod_proxy.h:381
module PROXY_DECLARE_DATA proxy_module
#define PROXY_DECLARE(type)
Definition: mod_proxy.h:611
#define PROXY_BALANCER_MAX_ROUTE_SIZE
Definition: mod_proxy.h:382
int ap_proxy_read_input(request_rec *r, proxy_conn_rec *backend, apr_bucket_brigade *input_brigade, apr_off_t max_read)
PROXY
Definition: mod_proxy.h:674
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)
const char * ap_proxy_show_hcmethod(hcmethod_t method)
char * ap_proxy_update_balancer(apr_pool_t *p, proxy_balancer *balancer, const char *url)
int ap_proxy_acquire_connection(const char *proxy_function, proxy_conn_rec **conn, proxy_worker *worker, server_rec *s)
#define PROXY_WORKER_UDS_PATH_SIZE
Definition: mod_proxy.h:389
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)
int ap_proxy_hex2c(const char *x)
enctype
Definition: mod_proxy.h:75
apr_status_t ajp_handle_cping_cpong(apr_socket_t *sock, request_rec *r, apr_interval_time_t timeout)
char * ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, enum enctype t, int forcedec, int proxyreq)
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)
hcmethod_t
Definition: mod_proxy.h:83
int ap_proxy_trans_match(request_rec *r, struct proxy_alias *ent, proxy_dir_conf *dconf)
void ap_proxy_fill_error_brigade(request_rec *r, int status, apr_bucket_brigade *bb, int eoc)
void ap_proxy_c2hex(int ch, char *x)
void ap_proxy_backend_broke(request_rec *r, apr_bucket_brigade *brigade)
proxy_worker_shared * ap_proxy_find_workershm(ap_slotmem_provider_t *storage, ap_slotmem_instance_t *slot, proxy_worker *worker, unsigned int *index)
int() proxy_is_best_callback_fn_t(proxy_worker *current, proxy_worker *prev_best, void *baton)
Definition: mod_proxy.h:981
int
Definition: mod_proxy.h:674
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
Definition: mod_proxy.h:388
int ap_proxy_post_request(proxy_worker *worker, proxy_balancer *balancer, request_rec *r, proxy_server_conf *conf)
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)
proxy_worker * worker
Definition: mod_proxy.h:657
int ap_proxy_connection_reusable(proxy_conn_rec *conn)
int ap_proxy_checkproxyblock(request_rec *r, proxy_server_conf *conf, const char *hostname, apr_sockaddr_t *addr)
#define PROXY_MAX_PROVIDER_NAME_SIZE
Definition: mod_proxy.h:398
#define PROXY_WORKER_MAX_NAME_SIZE
Definition: mod_proxy.h:383
const char apr_size_t dlen
Definition: mod_proxy.h:707
int ap_proxy_valid_balancer_name(char *name, int i)
#define PROXY_WORKER_MAX_SCHEME_SIZE
Definition: mod_proxy.h:380
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_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
Definition: mod_proxy.h:386
apr_status_t ap_proxy_buckets_lifetime_transform(request_rec *r, apr_bucket_brigade *from, apr_bucket_brigade *to)
proxy_worker * proxy_balancer_get_best_worker(proxy_balancer *balancer, request_rec *r, proxy_is_best_callback_fn_t *is_best, void *baton)
#define PROXY_RFC1035_HOSTNAME_SIZE
Definition: mod_proxy.h:391
const char * ap_proxy_de_socketfy(apr_pool_t *p, const char *url)
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)
void hc_show_exprs(request_rec *)
int ap_proxy_connect_to_backend(apr_socket_t **, const char *, apr_sockaddr_t *, const char *, proxy_server_conf *, request_rec *)
const char * ap_proxy_cookie_reverse_map(request_rec *r, proxy_dir_conf *conf, const char *str)
apr_status_t ap_proxy_sync_balancer(proxy_balancer *b, server_rec *s, proxy_server_conf *conf)
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_connection_create_ex(const char *proxy_function, proxy_conn_rec *conn, request_rec *r)
proxy_worker proxy_server_conf * conf
Definition: mod_proxy.h:657
apr_status_t ap_proxy_share_balancer(proxy_balancer *balancer, proxy_balancer_shared *shm, int i)
detach_backend
Definition: mod_proxy.h:674
apr_status_t ap_proxy_ssl_connection_cleanup(proxy_conn_rec *conn, request_rec *r)
#define PROXY_BALANCER_MAX_STICKY_SIZE
Definition: mod_proxy.h:387
unsigned int ap_proxy_hashfunc(const char *str, proxy_hash_t method)
int ap_proxy_retry_worker(const char *proxy_function, proxy_worker *worker, server_rec *s)
int ap_proxy_lb_workers(void)
apr_status_t ap_proxy_initialize_worker(proxy_worker *worker, server_rec *s, apr_pool_t *p)
PROXY_DECLARE_DATA proxy_hcmethods_t proxy_hcmethods[]
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)
int hc_valid_expr(request_rec *, const char *)
apr_status_t ap_proxy_initialize_balancer(proxy_balancer *balancer, server_rec *s, apr_pool_t *p)
request_rec * r
Definition: mod_proxy.h:675
proxy_worker * ap_proxy_get_worker(apr_pool_t *p, proxy_balancer *balancer, proxy_server_conf *conf, const char *url)
const char *(* ap_proxy_header_reverse_map_fn)(request_rec *, proxy_dir_conf *, const char *)
Definition: mod_proxy.h:749
const char * ap_proxy_worker_get_name(const proxy_worker *worker)
apr_status_t balancer_manage(request_rec *, apr_table_t *params)
proxy_hash_t
Definition: mod_proxy.h:1267
apr_off_t ap_proxy_tunnel_conn_bytes_out(const proxy_tunnel_conn_t *tc)
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_off_t ap_proxy_tunnel_conn_bytes_in(const proxy_tunnel_conn_t *tc)
#define PROXY_DECLARE_OPTIONAL_HOOK
Definition: mod_proxy.h:634
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)
proxy_balancer_shared * ap_proxy_find_balancershm(ap_slotmem_provider_t *storage, ap_slotmem_instance_t *slot, proxy_balancer *balancer, unsigned int *index)
proxy_worker * ap_proxy_get_worker_ex(apr_pool_t *p, proxy_balancer *balancer, proxy_server_conf *conf, const char *url, unsigned int mask)
char * ap_proxy_canonenc_ex(apr_pool_t *p, const char *x, int len, enum enctype t, int flags, int proxyreq)
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 * src
Definition: mod_proxy.h:706
proxy_worker proxy_server_conf char * url
Definition: mod_proxy.h:657
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)
void hc_select_exprs(request_rec *, const char *)
const char * ap_proxy_location_reverse_map(request_rec *r, proxy_dir_conf *conf, const char *url)
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 * set_worker_hc_param(apr_pool_t *, server_rec *, proxy_worker *, const char *, const char *, void *)
int ap_proxy_is_socket_connected(apr_socket_t *socket)
@ enc_user
Definition: mod_proxy.h:76
@ enc_path
Definition: mod_proxy.h:76
@ enc_fpath
Definition: mod_proxy.h:76
@ enc_parm
Definition: mod_proxy.h:76
@ enc_search
Definition: mod_proxy.h:76
@ HEAD
Definition: mod_proxy.h:84
@ HEAD11
Definition: mod_proxy.h:84
@ GET
Definition: mod_proxy.h:84
@ OPTIONS
Definition: mod_proxy.h:84
@ PROVIDER
Definition: mod_proxy.h:84
@ EOT
Definition: mod_proxy.h:84
@ GET11
Definition: mod_proxy.h:84
@ OPTIONS11
Definition: mod_proxy.h:84
@ TCP
Definition: mod_proxy.h:84
@ CPING
Definition: mod_proxy.h:84
@ NONE
Definition: mod_proxy.h:84
@ PROXY_HASHFUNC_DEFAULT
Definition: mod_proxy.h:1267
@ PROXY_HASHFUNC_FNV
Definition: mod_proxy.h:1267
@ PROXY_HASHFUNC_APR
Definition: mod_proxy.h:1267
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_interval_time_t
Definition: apr_time.h:55
apr_int64_t apr_time_t
Definition: apr_time.h:45
int fixups(request_rec *r)
Apache connection library.
Definition: ap_regex.h:111
Definition: ap_slotmem.h:86
Definition: apr_buckets.h:263
Definition: apr_arch_global_mutex.h:23
Definition: apr_arch_poll_private.h:124
Definition: apr_network_io.h:239
Definition: apr_arch_networkio.h:37
Definition: apr_arch_thread_mutex.h:28
Structure to store things which are per connection.
Definition: httpd.h:1193
Definition: mod_proxy.h:142
int(* matcher)(struct dirconn_entry *This, request_rec *r)
Definition: mod_proxy.h:146
struct in_addr addr mask
Definition: mod_proxy.h:144
char * name
Definition: mod_proxy.h:143
struct apr_sockaddr_t * hostaddr
Definition: mod_proxy.h:145
Definition: http_config.h:348
Definition: mod_proxy.h:149
const char * name
Definition: mod_proxy.h:150
struct apr_sockaddr_t * addr
Definition: mod_proxy.h:151
Definition: mod_proxy.h:134
proxy_balancer * balancer
Definition: mod_proxy.h:139
const char * real
Definition: mod_proxy.h:135
unsigned int flags
Definition: mod_proxy.h:138
const char * fake
Definition: mod_proxy.h:136
ap_regex_t * regex
Definition: mod_proxy.h:137
Definition: mod_proxy.h:584
apr_status_t(* reset)(proxy_balancer *balancer, server_rec *s)
Definition: mod_proxy.h:589
apr_status_t(* age)(proxy_balancer *balancer, server_rec *s)
Definition: mod_proxy.h:590
apr_status_t(* updatelbstatus)(proxy_balancer *balancer, proxy_worker *elected, server_rec *s)
Definition: mod_proxy.h:591
const char * name
Definition: mod_proxy.h:585
void * context
Definition: mod_proxy.h:588
Definition: mod_proxy.h:528
unsigned int forcerecovery
Definition: mod_proxy.h:549
unsigned int max_attempts_set
Definition: mod_proxy.h:544
proxy_hashes hash
Definition: mod_proxy.h:541
unsigned int sticky_separator_set
Definition: mod_proxy.h:555
char sticky_separator
Definition: mod_proxy.h:550
unsigned int scolonsep
Definition: mod_proxy.h:543
unsigned int need_reset
Definition: mod_proxy.h:546
unsigned int vhosted
Definition: mod_proxy.h:547
unsigned int forcerecovery_set
Definition: mod_proxy.h:551
unsigned int nonce_set
Definition: mod_proxy.h:554
unsigned int inactive
Definition: mod_proxy.h:548
unsigned int sticky_force
Definition: mod_proxy.h:542
unsigned int was_malloced
Definition: mod_proxy.h:545
apr_interval_time_t timeout
Definition: mod_proxy.h:537
unsigned int sticky_force_set
Definition: mod_proxy.h:553
int max_attempts
Definition: mod_proxy.h:539
unsigned int scolonsep_set
Definition: mod_proxy.h:552
int index
Definition: mod_proxy.h:540
apr_time_t wupdated
Definition: mod_proxy.h:538
Definition: mod_proxy.h:560
unsigned int failontimeout_set
Definition: mod_proxy.h:578
int growth
Definition: mod_proxy.h:565
ap_slotmem_instance_t * wslot
Definition: mod_proxy.h:563
int max_workers
Definition: mod_proxy.h:566
ap_conf_vector_t * section_config
Definition: mod_proxy.h:581
proxy_balancer_shared * s
Definition: mod_proxy.h:576
apr_time_t wupdated
Definition: mod_proxy.h:568
ap_slotmem_provider_t * storage
Definition: mod_proxy.h:564
unsigned int lbmethod_set
Definition: mod_proxy.h:580
unsigned int growth_set
Definition: mod_proxy.h:579
apr_array_header_t * errstatuses
Definition: mod_proxy.h:562
proxy_server_conf * sconf
Definition: mod_proxy.h:574
apr_global_mutex_t * gmutex
Definition: mod_proxy.h:570
apr_thread_mutex_t * tmutex
Definition: mod_proxy.h:572
void * context
Definition: mod_proxy.h:575
proxy_balancer_method * lbmethod
Definition: mod_proxy.h:569
apr_array_header_t * workers
Definition: mod_proxy.h:561
int failontimeout
Definition: mod_proxy.h:577
proxy_hashes hash
Definition: mod_proxy.h:567
Definition: mod_proxy.h:304
float cache_completion
Definition: mod_proxy.h:305
int content_length
Definition: mod_proxy.h:306
Definition: mod_proxy.h:310
apr_pool_t * dns_pool
Definition: mod_proxy.h:315
proxy_conn_rec * conn
Definition: mod_proxy.h:314
apr_pool_t * pool
Definition: mod_proxy.h:311
apr_sockaddr_t * addr
Definition: mod_proxy.h:312
apr_reslist_t * res
Definition: mod_proxy.h:313
Definition: mod_proxy.h:274
const char * uds_path
Definition: mod_proxy.h:293
void * data
Definition: mod_proxy.h:284
const char * hostname
Definition: mod_proxy.h:280
apr_pool_t * pool
Definition: mod_proxy.h:279
void * forward
Definition: mod_proxy.h:285
unsigned int inreslist
Definition: mod_proxy.h:292
apr_bucket_brigade * tmp_bb
Definition: mod_proxy.h:295
struct proxy_address * address
Definition: mod_proxy.h:301
apr_pool_t * uds_pool
Definition: mod_proxy.h:299
apr_pool_t * scpool
Definition: mod_proxy.h:282
request_rec * r
Definition: mod_proxy.h:276
apr_sockaddr_t * addr
Definition: mod_proxy.h:281
apr_socket_t * sock
Definition: mod_proxy.h:283
apr_uint32_t flags
Definition: mod_proxy.h:286
unsigned int need_flush
Definition: mod_proxy.h:290
apr_pool_t * fwd_pool
Definition: mod_proxy.h:300
proxy_worker * worker
Definition: mod_proxy.h:278
apr_port_t port
Definition: mod_proxy.h:287
unsigned int is_ssl
Definition: mod_proxy.h:288
const char * ssl_hostname
Definition: mod_proxy.h:294
unsigned int close
Definition: mod_proxy.h:289
conn_rec * connection
Definition: mod_proxy.h:275
Definition: mod_proxy.h:214
apr_array_header_t * cookie_domains
Definition: mod_proxy.h:228
signed char interpolate_env
Definition: mod_proxy.h:230
unsigned int add_forwarded_headers_set
Definition: mod_proxy.h:247
apr_array_header_t * raliases
Definition: mod_proxy.h:226
unsigned int error_override_set
Definition: mod_proxy.h:244
unsigned int error_override
Definition: mod_proxy.h:241
unsigned int alias_set
Definition: mod_proxy.h:245
apr_array_header_t * refs
Definition: mod_proxy.h:250
ap_regex_t * r
Definition: mod_proxy.h:216
struct proxy_alias * alias
Definition: mod_proxy.h:231
apr_interval_time_t async_idle_timeout
Definition: mod_proxy.h:258
unsigned int async_delay_set
Definition: mod_proxy.h:259
unsigned int forward_100_continue
Definition: mod_proxy.h:252
unsigned int async_idle_timeout_set
Definition: mod_proxy.h:260
unsigned int preserve_host_set
Definition: mod_proxy.h:243
signed char p_is_fnmatch
Definition: mod_proxy.h:229
unsigned int preserve_host
Definition: mod_proxy.h:242
const char * p
Definition: mod_proxy.h:215
apr_array_header_t * cookie_paths
Definition: mod_proxy.h:227
unsigned int forward_100_continue_set
Definition: mod_proxy.h:253
unsigned int add_forwarded_headers
Definition: mod_proxy.h:246
apr_interval_time_t async_delay
Definition: mod_proxy.h:257
apr_array_header_t * error_override_codes
Definition: mod_proxy.h:255
Definition: mod_proxy.h:422
unsigned int fnv
Definition: mod_proxy.h:424
unsigned int def
Definition: mod_proxy.h:423
Definition: mod_proxy.h:87
int implemented
Definition: mod_proxy.h:90
char * name
Definition: mod_proxy.h:89
hcmethod_t method
Definition: mod_proxy.h:88
Definition: mod_proxy.h:119
const char * hostname
Definition: mod_proxy.h:122
const char * protocol
Definition: mod_proxy.h:121
const char * creds
Definition: mod_proxy.h:124
apr_port_t port
Definition: mod_proxy.h:126
int use_regex
Definition: mod_proxy.h:125
ap_regex_t * regexp
Definition: mod_proxy.h:123
const char * scheme
Definition: mod_proxy.h:120
Definition: mod_proxy.h:266
apr_array_header_t * cookie_domains
Definition: mod_proxy.h:269
apr_array_header_t * raliases
Definition: mod_proxy.h:267
apr_array_header_t * cookie_paths
Definition: mod_proxy.h:268
Definition: mod_proxy.h:154
unsigned int req_set
Definition: mod_proxy.h:195
unsigned int map_encoded_all
Definition: mod_proxy.h:211
apr_size_t recv_buffer_size
Definition: mod_proxy.h:176
unsigned int viaopt_set
Definition: mod_proxy.h:196
unsigned int bgrowth_set
Definition: mod_proxy.h:204
apr_array_header_t * workers
Definition: mod_proxy.h:160
int req
Definition: mod_proxy.h:167
const char * id
Definition: mod_proxy.h:165
apr_array_header_t * aliases
Definition: mod_proxy.h:157
apr_array_header_t * proxies
Definition: mod_proxy.h:155
unsigned int recv_buffer_size_set
Definition: mod_proxy.h:197
proxy_worker * forward
Definition: mod_proxy.h:162
apr_array_header_t * sec_proxy
Definition: mod_proxy.h:156
unsigned int source_address_set
Definition: mod_proxy.h:203
const char * domain
Definition: mod_proxy.h:164
unsigned int timeout_set
Definition: mod_proxy.h:200
apr_sockaddr_t * source_address
Definition: mod_proxy.h:190
ap_slotmem_provider_t * storage
Definition: mod_proxy.h:193
unsigned int maxfwd_set
Definition: mod_proxy.h:199
unsigned int inherit
Definition: mod_proxy.h:206
long maxfwd
Definition: mod_proxy.h:178
unsigned int proxy_status_set
Definition: mod_proxy.h:202
unsigned int io_buffer_size_set
Definition: mod_proxy.h:198
apr_pool_t * pool
Definition: mod_proxy.h:166
apr_interval_time_t timeout
Definition: mod_proxy.h:179
unsigned int badopt_set
Definition: mod_proxy.h:201
@ via_block
Definition: mod_proxy.h:173
@ via_on
Definition: mod_proxy.h:172
@ via_off
Definition: mod_proxy.h:171
apr_array_header_t * dirconn
Definition: mod_proxy.h:159
apr_global_mutex_t * mutex
Definition: mod_proxy.h:191
unsigned int map_encoded_one
Definition: mod_proxy.h:210
unsigned int bal_persist
Definition: mod_proxy.h:205
apr_size_t io_buffer_size
Definition: mod_proxy.h:177
unsigned int inherit_set
Definition: mod_proxy.h:207
unsigned int ppinherit
Definition: mod_proxy.h:208
int bgrowth
Definition: mod_proxy.h:169
@ bad_ignore
Definition: mod_proxy.h:182
@ bad_error
Definition: mod_proxy.h:181
apr_array_header_t * balancers
Definition: mod_proxy.h:161
ap_slotmem_instance_t * bslot
Definition: mod_proxy.h:192
proxy_worker * reverse
Definition: mod_proxy.h:163
@ status_on
Definition: mod_proxy.h:187
@ status_off
Definition: mod_proxy.h:186
int max_balancers
Definition: mod_proxy.h:168
apr_array_header_t * noproxies
Definition: mod_proxy.h:158
unsigned int ppinherit_set
Definition: mod_proxy.h:209
Definition: mod_proxy.h:1409
apr_interval_time_t timeout
Definition: mod_proxy.h:1414
apr_size_t read_buf_size
Definition: mod_proxy.h:1417
proxy_tunnel_conn_t * origin
Definition: mod_proxy.h:1416
proxy_tunnel_conn_t * client
Definition: mod_proxy.h:1415
request_rec * r
Definition: mod_proxy.h:1410
apr_array_header_t * pfds
Definition: mod_proxy.h:1413
unsigned int nohalfclose
Definition: mod_proxy.h:1419
int replied
Definition: mod_proxy.h:1418
apr_pollset_t * pollset
Definition: mod_proxy.h:1412
const char * scheme
Definition: mod_proxy.h:1411
Definition: mod_proxy.h:428
apr_interval_time_t ttl
Definition: mod_proxy.h:464
unsigned int conn_timeout_set
Definition: mod_proxy.h:488
unsigned int keepalive
Definition: mod_proxy.h:481
unsigned int timeout_set
Definition: mod_proxy.h:485
int fcount
Definition: mod_proxy.h:453
apr_size_t recv_buffer_size
Definition: mod_proxy.h:472
apr_interval_time_t timeout
Definition: mod_proxy.h:467
apr_time_t updated
Definition: mod_proxy.h:462
hcmethod_t method
Definition: mod_proxy.h:461
apr_off_t transferred
Definition: mod_proxy.h:478
unsigned int is_name_matchable
Definition: mod_proxy.h:494
int flush_wait
Definition: mod_proxy.h:448
apr_uint32_t address_expiry
Definition: mod_proxy.h:498
int pcount
Definition: mod_proxy.h:451
int smax
Definition: mod_proxy.h:446
apr_time_t error_time
Definition: mod_proxy.h:463
apr_interval_time_t retry
Definition: mod_proxy.h:466
unsigned int was_malloced
Definition: mod_proxy.h:493
unsigned int ping_timeout_set
Definition: mod_proxy.h:487
unsigned int disablereuse_set
Definition: mod_proxy.h:492
void * context
Definition: mod_proxy.h:480
int retries
Definition: mod_proxy.h:442
apr_size_t response_field_size
Definition: mod_proxy.h:476
int hmax
Definition: mod_proxy.h:447
unsigned int status
Definition: mod_proxy.h:455
apr_size_t elected
Definition: mod_proxy.h:474
unsigned int io_buffer_size_set
Definition: mod_proxy.h:490
unsigned int keepalive_set
Definition: mod_proxy.h:491
int index
Definition: mod_proxy.h:449
apr_size_t io_buffer_size
Definition: mod_proxy.h:473
@ flush_on
Definition: mod_proxy.h:458
@ flush_off
Definition: mod_proxy.h:457
int lbstatus
Definition: mod_proxy.h:443
unsigned int address_ttl_set
Definition: mod_proxy.h:496
apr_interval_time_t interval
Definition: mod_proxy.h:471
apr_interval_time_t conn_timeout
Definition: mod_proxy.h:470
proxy_hashes hash
Definition: mod_proxy.h:454
int fails
Definition: mod_proxy.h:452
apr_port_t port
Definition: mod_proxy.h:477
unsigned int response_field_size_set
Definition: mod_proxy.h:495
unsigned int retry_set
Definition: mod_proxy.h:484
int lbfactor
Definition: mod_proxy.h:444
int lbset
Definition: mod_proxy.h:441
apr_int32_t address_ttl
Definition: mod_proxy.h:497
apr_interval_time_t ping_timeout
Definition: mod_proxy.h:469
unsigned int recv_buffer_size_set
Definition: mod_proxy.h:489
unsigned int is_address_reusable
Definition: mod_proxy.h:483
unsigned int disablereuse
Definition: mod_proxy.h:482
apr_size_t busy
Definition: mod_proxy.h:475
int passes
Definition: mod_proxy.h:450
int min
Definition: mod_proxy.h:445
apr_off_t read
Definition: mod_proxy.h:479
apr_interval_time_t acquire
Definition: mod_proxy.h:468
unsigned int acquire_set
Definition: mod_proxy.h:486
Definition: mod_proxy.h:504
unsigned int local_status
Definition: mod_proxy.h:506
const char * uds_name
Definition: mod_proxy.h:516
apr_thread_mutex_t * tmutex
Definition: mod_proxy.h:511
ap_conf_vector_t * section_config
Definition: mod_proxy.h:514
proxy_balancer * balancer
Definition: mod_proxy.h:509
struct proxy_address *volatile address
Definition: mod_proxy.h:515
proxy_conn_pool * cp
Definition: mod_proxy.h:507
proxy_worker_shared * s
Definition: mod_proxy.h:508
void * context
Definition: mod_proxy.h:513
proxy_hashes hash
Definition: mod_proxy.h:505
Definition: mod_proxy.h:93
unsigned int bit
Definition: mod_proxy.h:94
const char * name
Definition: mod_proxy.h:96
char flag
Definition: mod_proxy.h:95
A structure that represents the current request.
Definition: httpd.h:856
A structure to store information for each virtual server.
Definition: httpd.h:1382
Utilities for EBCDIC conversion.
Apache Mutex support library.