44 #define APR_WANT_STRFUNC
66 #if APR_HAVE_NETINET_IN_H
67 #include <netinet/in.h>
69 #if APR_HAVE_ARPA_INET_H
70 #include <arpa/inet.h>
94 #define BALANCER_PREFIX "balancer://"
96 #if APR_CHARSET_EBCDIC
99 #define CRLF "\015\012"
106 #define DEFAULT_MAX_FORWARDS -1
124 #define PROXYPASS_NOCANON 0x01
125 #define PROXYPASS_INTERPOLATE 0x02
126 #define PROXYPASS_NOQUERY 0x04
127 #define PROXYPASS_MAP_ENCODED 0x08
128 #define PROXYPASS_MAP_SERVLET 0x18
190 unsigned int req_set:1;
191 unsigned int viaopt_set:1;
192 unsigned int recv_buffer_size_set:1;
193 unsigned int io_buffer_size_set:1;
194 unsigned int maxfwd_set:1;
195 unsigned int timeout_set:1;
196 unsigned int badopt_set:1;
197 unsigned int proxy_status_set:1;
198 unsigned int source_address_set:1;
199 unsigned int bgrowth_set:1;
200 unsigned int bal_persist:1;
201 unsigned int inherit:1;
202 unsigned int inherit_set:1;
203 unsigned int ppinherit:1;
204 unsigned int ppinherit_set:1;
205 unsigned int map_encoded_one:1;
206 unsigned int map_encoded_all:1;
236 unsigned int error_override:1;
237 unsigned int preserve_host:1;
238 unsigned int preserve_host_set:1;
239 unsigned int error_override_set:1;
240 unsigned int alias_set:1;
241 unsigned int add_forwarded_headers:1;
242 unsigned int add_forwarded_headers_set:1;
247 unsigned int forward_100_continue:1;
248 unsigned int forward_100_continue_set:1;
254 unsigned int async_delay_set:1;
255 unsigned int async_idle_timeout_set:1;
281 unsigned int is_ssl:1;
282 unsigned int close:1;
283 unsigned int need_flush:1;
285 unsigned int inreslist:1;
308 #define AP_VOLATILIZE_T(T, x) (*(T volatile *)&(x))
315 #define PROXY_WORKER_INITIALIZED 0x0001
316 #define PROXY_WORKER_IGNORE_ERRORS 0x0002
317 #define PROXY_WORKER_DRAIN 0x0004
318 #define PROXY_WORKER_GENERIC 0x0008
319 #define PROXY_WORKER_IN_SHUTDOWN 0x0010
320 #define PROXY_WORKER_DISABLED 0x0020
321 #define PROXY_WORKER_STOPPED 0x0040
322 #define PROXY_WORKER_IN_ERROR 0x0080
323 #define PROXY_WORKER_HOT_STANDBY 0x0100
324 #define PROXY_WORKER_FREE 0x0200
325 #define PROXY_WORKER_HC_FAIL 0x0400
326 #define PROXY_WORKER_HOT_SPARE 0x0800
329 #define PROXY_WORKER_INITIALIZED_FLAG 'O'
330 #define PROXY_WORKER_IGNORE_ERRORS_FLAG 'I'
331 #define PROXY_WORKER_DRAIN_FLAG 'N'
332 #define PROXY_WORKER_GENERIC_FLAG 'G'
333 #define PROXY_WORKER_IN_SHUTDOWN_FLAG 'U'
334 #define PROXY_WORKER_DISABLED_FLAG 'D'
335 #define PROXY_WORKER_STOPPED_FLAG 'S'
336 #define PROXY_WORKER_IN_ERROR_FLAG 'E'
337 #define PROXY_WORKER_HOT_STANDBY_FLAG 'H'
338 #define PROXY_WORKER_FREE_FLAG 'F'
339 #define PROXY_WORKER_HC_FAIL_FLAG 'C'
340 #define PROXY_WORKER_HOT_SPARE_FLAG 'R'
342 #define PROXY_WORKER_NOT_USABLE_BITMAP ( PROXY_WORKER_IN_SHUTDOWN | \
343 PROXY_WORKER_DISABLED | PROXY_WORKER_STOPPED | PROXY_WORKER_IN_ERROR | \
344 PROXY_WORKER_HC_FAIL )
347 #define PROXY_WORKER_IS_INITIALIZED(f) ( (f)->s->status & PROXY_WORKER_INITIALIZED )
349 #define PROXY_WORKER_IS_STANDBY(f) ( (f)->s->status & PROXY_WORKER_HOT_STANDBY )
351 #define PROXY_WORKER_IS_SPARE(f) ( (f)->s->status & PROXY_WORKER_HOT_SPARE )
353 #define PROXY_WORKER_IS_USABLE(f) ( ( !( (f)->s->status & PROXY_WORKER_NOT_USABLE_BITMAP) ) && \
354 PROXY_WORKER_IS_INITIALIZED(f) )
356 #define PROXY_WORKER_IS_DRAINING(f) ( (f)->s->status & PROXY_WORKER_DRAIN )
358 #define PROXY_WORKER_IS_GENERIC(f) ( (f)->s->status & PROXY_WORKER_GENERIC )
360 #define PROXY_WORKER_IS_HCFAILED(f) ( (f)->s->status & PROXY_WORKER_HC_FAIL )
362 #define PROXY_WORKER_IS(f, b) ( (f)->s->status & (b) )
365 #define PROXY_WORKER_DEFAULT_RETRY 60
368 #define PROXY_WORKER_MAX_SCHEME_SIZE 16
369 #define PROXY_WORKER_MAX_ROUTE_SIZE 96
370 #define PROXY_BALANCER_MAX_ROUTE_SIZE 64
371 #define PROXY_WORKER_MAX_NAME_SIZE 256
372 #define PROXY_BALANCER_MAX_NAME_SIZE 64
373 #define PROXY_WORKER_MAX_HOSTNAME_SIZE 96
374 #define PROXY_BALANCER_MAX_HOSTNAME_SIZE 64
375 #define PROXY_BALANCER_MAX_STICKY_SIZE 64
376 #define PROXY_WORKER_MAX_SECRET_SIZE 64
378 #define PROXY_RFC1035_HOSTNAME_SIZE 256
383 #define PROXY_WORKER_RFC1035_NAME_SIZE 512
385 #define PROXY_MAX_PROVIDER_NAME_SIZE 16
387 #define PROXY_STRNCPY(dst, src) ap_proxy_strncpy((dst), (src), (sizeof(dst)))
389 #define PROXY_COPY_CONF_PARAMS(w, c) \
391 (w)->s->timeout = (c)->timeout; \
392 (w)->s->timeout_set = (c)->timeout_set; \
393 (w)->s->recv_buffer_size = (c)->recv_buffer_size; \
394 (w)->s->recv_buffer_size_set = (c)->recv_buffer_size_set; \
395 (w)->s->io_buffer_size = (c)->io_buffer_size; \
396 (w)->s->io_buffer_size_set = (c)->io_buffer_size_set; \
399 #define PROXY_DO_100_CONTINUE(w, r) \
400 ((w)->s->ping_timeout_set \
401 && (PROXYREQ_REVERSE == (r)->proxyreq) \
402 && !(apr_table_get((r)->subprocess_env, "force-proxy-request-1.0")) \
403 && ap_request_has_body((r)))
465 unsigned int keepalive:1;
466 unsigned int disablereuse:1;
467 unsigned int is_address_reusable:1;
468 unsigned int retry_set:1;
469 unsigned int timeout_set:1;
470 unsigned int acquire_set:1;
471 unsigned int ping_timeout_set:1;
472 unsigned int conn_timeout_set:1;
473 unsigned int recv_buffer_size_set:1;
474 unsigned int io_buffer_size_set:1;
475 unsigned int keepalive_set:1;
476 unsigned int disablereuse_set:1;
477 unsigned int was_malloced:1;
478 unsigned int is_name_matchable:1;
479 unsigned int response_field_size_set:1;
482 #define ALIGNED_PROXY_WORKER_SHARED_SIZE (APR_ALIGN_DEFAULT(sizeof(proxy_worker_shared)))
499 #define HCHECK_WATHCHDOG_DEFAULT_INTERVAL (30)
505 #define PROXY_FLUSH_WAIT 10000
521 unsigned int sticky_force:1;
522 unsigned int scolonsep:1;
523 unsigned int max_attempts_set:1;
524 unsigned int was_malloced:1;
525 unsigned int need_reset:1;
526 unsigned int vhosted:1;
527 unsigned int inactive:1;
528 unsigned int forcerecovery:1;
530 unsigned int forcerecovery_set:1;
531 unsigned int scolonsep_set:1;
532 unsigned int sticky_force_set:1;
533 unsigned int nonce_set:1;
534 unsigned int sticky_separator_set:1;
537 #define ALIGNED_PROXY_BALANCER_SHARED_SIZE (APR_ALIGN_DEFAULT(sizeof(proxy_balancer_shared)))
574 #define PROXY_THREAD_LOCK(x) ( (x) && (x)->tmutex ? apr_thread_mutex_lock((x)->tmutex) : APR_SUCCESS)
575 #define PROXY_THREAD_UNLOCK(x) ( (x) && (x)->tmutex ? apr_thread_mutex_unlock((x)->tmutex) : APR_SUCCESS)
577 #define PROXY_THREAD_LOCK(x) (APR_SUCCESS)
578 #define PROXY_THREAD_UNLOCK(x) (APR_SUCCESS)
581 #define PROXY_GLOBAL_LOCK(x) ( (x) && (x)->gmutex ? apr_global_mutex_lock((x)->gmutex) : APR_SUCCESS)
582 #define PROXY_GLOBAL_UNLOCK(x) ( (x) && (x)->gmutex ? apr_global_mutex_unlock((x)->gmutex) : APR_SUCCESS)
590 #define PROXY_DECLARE(type) type
591 #define PROXY_DECLARE_NONSTD(type) type
592 #define PROXY_DECLARE_DATA
593 #elif defined(PROXY_DECLARE_STATIC)
594 #define PROXY_DECLARE(type) type __stdcall
595 #define PROXY_DECLARE_NONSTD(type) type
596 #define PROXY_DECLARE_DATA
597 #elif defined(PROXY_DECLARE_EXPORT)
598 #define PROXY_DECLARE(type) __declspec(dllexport) type __stdcall
599 #define PROXY_DECLARE_NONSTD(type) __declspec(dllexport) type
600 #define PROXY_DECLARE_DATA __declspec(dllexport)
602 #define PROXY_DECLARE(type) __declspec(dllimport) type __stdcall
603 #define PROXY_DECLARE_NONSTD(type) __declspec(dllimport) type
604 #define PROXY_DECLARE_DATA __declspec(dllimport)
613 #define PROXY_DECLARE_OPTIONAL_HOOK APR_DECLARE_EXTERNAL_HOOK
626 const char *,
const char *,
void *));
690 int forcedec,
int proxyreq);
692 char **passwordp,
char **hostp,
apr_port_t *port);
726 typedef const char *(*ap_proxy_header_reverse_map_fn)(request_rec *,
728 #elif defined(PROXY_DECLARE_STATIC)
730 proxy_dir_conf *,
const char *);
731 #elif defined(PROXY_DECLARE_EXPORT)
732 typedef __declspec(dllexport) const
char *
734 proxy_dir_conf *, const
char *);
736 typedef __declspec(dllimport) const
char *
738 proxy_dir_conf *, const
char *);
762 const
char *upgrade);
774 proxy_server_conf *conf,
789 proxy_server_conf *conf,
807 proxy_server_conf *conf,
851 proxy_server_conf *conf,
878 proxy_server_conf *conf,
940 proxy_worker *worker,
941 unsigned int *index);
954 unsigned int *index);
970 proxy_server_conf *conf,
985 proxy_server_conf *conf);
1004 proxy_server_conf *conf,
1005 proxy_worker *worker,
1009 const
char *proxyname,
1011 char *server_portstr,
1012 int server_portstr_size);
1024 (const
char *proxy_function, proxy_worker *worker,
server_rec *s));
1039 proxy_worker *worker,
1053 #define PROXY_CHECK_CONN_EMPTY (1 << 0)
1071 unsigned max_blank_lines,
1086 proxy_worker *worker,
1097 const
char *uds_path,
1186 proxy_server_conf *conf);
1202 proxy_dir_conf *dconf);
1223 proxy_worker *worker,
1224 proxy_server_conf *conf,
1226 char *url,
char *server_portstr,
1293 struct proxy_tunnel_conn;
1300 struct proxy_tunnel_conn *client,
1316 const
char *scheme);
1344 #define PROXY_LBMETHOD "proxylbmethod"
1349 #define PROXY_DYNAMIC_BALANCER_LIMIT 16
1415 #define AP_PROXY_TRANSFER_FLUSH_EACH (0x00)
1416 #define AP_PROXY_TRANSFER_FLUSH_AFTER (0x01)
1417 #define AP_PROXY_TRANSFER_YIELD_PENDING (0x02)
1418 #define AP_PROXY_TRANSFER_YIELD_MAX_READS (0x04)
#define socket
Definition: apr_arch_os2calls.h:41
int ap_proxy_trans_match(request_rec *r, struct proxy_alias *ent, proxy_dir_conf *dconf)
int ap_proxy_connect_to_backend(apr_socket_t **, const char *, apr_sockaddr_t *, const char *, proxy_server_conf *, request_rec *)
proxy_worker_shared * s
Definition: mod_proxy.h:489
unsigned int fnv
Definition: mod_proxy.h:408
int ap_proxy_tunnel_run(proxy_tunnel_rec *tunnel)
int ap_proxy_retry_worker(const char *proxy_function, proxy_worker *worker, server_rec *s)
apr_pool_t * pool
Definition: mod_proxy.h:272
proxy_balancer * ap_proxy_get_balancer(apr_pool_t *p, proxy_server_conf *conf, const char *url, int careactive)
int min
Definition: mod_proxy.h:429
proxy_worker proxy_server_conf char const char apr_port_t proxyport
Definition: mod_proxy.h:636
Definition: mod_proxy.h:168
unsigned int growth_set
Definition: mod_proxy.h:558
int hmax
Definition: mod_proxy.h:431
apr_sockaddr_t * addr
Definition: mod_proxy.h:274
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)
int ap_proxy_ssl_enable(conn_rec *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)
void hc_show_exprs(request_rec *)
apr_size_t recv_buffer_size
Definition: mod_proxy.h:171
struct ap_slotmem_instance_t ap_slotmem_instance_t
Definition: ap_slotmem.h:75
void hc_select_exprs(request_rec *, const char *)
ap_regex_t * regex
Definition: mod_proxy.h:132
int ap_proxy_checkproxyblock(request_rec *r, proxy_server_conf *conf, const char *hostname, apr_sockaddr_t *addr)
ap_regex_t * regexp
Definition: mod_proxy.h:118
Definition: mod_proxy.h:1294
char * ap_proxy_worker_name(apr_pool_t *p, proxy_worker *worker)
Definition: apr_arch_thread_mutex.h:28
apr_port_t ap_proxy_port_of_scheme(const char *scheme)
const char * protocol
Definition: mod_proxy.h:116
const char * name
Definition: mod_proxy.h:145
Definition: mod_proxy.h:79
proxy_worker * worker
Definition: mod_proxy.h:271
int lbfactor
Definition: mod_proxy.h:428
Definition: mod_proxy.h:82
char flag
Definition: mod_proxy.h:90
apr_port_t port
Definition: mod_proxy.h:280
struct apr_reslist_t apr_reslist_t
Definition: apr_reslist.h:42
Definition: mod_proxy.h:167
struct proxy_tunnel_conn * origin
Definition: mod_proxy.h:1300
ap_conf_vector_t * section_config
Definition: mod_proxy.h:560
int ap_proxy_connection_create(const char *proxy_function, proxy_conn_rec *conn, conn_rec *c, server_rec *s)
Definition: mod_proxy.h:294
Definition: mod_proxy.h:144
apr_time_t wupdated
Definition: mod_proxy.h:517
float cache_completion
Definition: mod_proxy.h:295
int bgrowth
Definition: mod_proxy.h:164
proxy_balancer_shared * ap_proxy_find_balancershm(ap_slotmem_provider_t *storage, ap_slotmem_instance_t *slot, proxy_balancer *balancer, unsigned int *index)
struct apr_bucket_alloc_t apr_bucket_alloc_t
Definition: apr_buckets.h:123
Definition: mod_proxy.h:442
request_rec * r
Definition: mod_proxy.h:653
proxy_conn_pool * cp
Definition: mod_proxy.h:488
const char * ssl_hostname
Definition: mod_proxy.h:287
const char * name
Definition: mod_proxy.h:564
struct apr_sockaddr_t * hostaddr
Definition: mod_proxy.h:140
apr_interval_time_t interval
Definition: mod_proxy.h:455
const char * uds_path
Definition: mod_proxy.h:286
proxy_hashes hash
Definition: mod_proxy.h:438
Definition: mod_proxy.h:75
proxy_balancer * balancer
Definition: mod_proxy.h:134
ap_slotmem_provider_t * storage
Definition: mod_proxy.h:188
apr_array_header_t * cookie_domains
Definition: mod_proxy.h:264
proxy_server_conf * sconf
Definition: mod_proxy.h:553
int ap_proxy_post_request(proxy_worker *worker, proxy_balancer *balancer, request_rec *r, proxy_server_conf *conf)
int replied
Definition: mod_proxy.h:1303
apr_interval_time_t async_idle_timeout
Definition: mod_proxy.h:253
apr_sockaddr_t * addr
Definition: mod_proxy.h:302
int index
Definition: mod_proxy.h:519
Definition: mod_proxy.h:507
unsigned int ap_proxy_hashfunc(const char *str, proxy_hash_t method)
proxy_worker * reverse
Definition: mod_proxy.h:158
apr_array_header_t * cookie_paths
Definition: mod_proxy.h:263
Definition: mod_proxy.h:166
apr_interval_time_t timeout
Definition: mod_proxy.h:1299
const char * domain
Definition: mod_proxy.h:159
apr_uint32_t flags
Definition: mod_proxy.h:279
Definition: mod_proxy.h:261
const char * scheme
Definition: mod_proxy.h:1296
apr_status_t ap_proxy_initialize_worker(proxy_worker *worker, server_rec *s, apr_pool_t *p)
int ap_proxy_worker_can_upgrade(apr_pool_t *p, const proxy_worker *worker, const char *upgrade)
proxy_hash_t
Definition: mod_proxy.h:1153
int ap_proxy_connect_backend(const char *proxy_function, proxy_conn_rec *conn, proxy_worker *worker, server_rec *s)
Definition: mod_proxy.h:406
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 * real
Definition: mod_proxy.h:130
APR Standard Headers Support.
apr_status_t ap_proxy_connect_uds(apr_socket_t *sock, const char *uds_path, apr_pool_t *p)
apr_size_t busy
Definition: mod_proxy.h:459
void * context
Definition: mod_proxy.h:464
apr_interval_time_t timeout
Definition: mod_proxy.h:516
apr_size_t io_buffer_size
Definition: mod_proxy.h:457
int fails
Definition: mod_proxy.h:436
apr_array_header_t * errstatuses
Definition: mod_proxy.h:541
char * name
Definition: mod_proxy.h:138
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_is_socket_connected(apr_socket_t *socket)
Apache connection library.
int ap_proxy_connection_create_ex(const char *proxy_function, proxy_conn_rec *conn, request_rec *r)
Utilities for EBCDIC conversion.
int ap_proxy_ssl_disable(conn_rec *c)
proxy_balancer_method * lbmethod
Definition: mod_proxy.h:548
PROXY_DECLARE_DATA proxy_hcmethods_t proxy_hcmethods[]
int use_regex
Definition: mod_proxy.h:120
char * ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, enum enctype t, int forcedec, int proxyreq)
const char const char * uri
Definition: mod_dav.h:631
detach_backend
Definition: mod_proxy.h:653
#define PROXY_WORKER_MAX_ROUTE_SIZE
Definition: mod_proxy.h:369
Definition: apr_buckets.h:258
const char apr_size_t dlen
Definition: mod_proxy.h:685
APR Thread Mutex Routines.
void * context
Definition: mod_proxy.h:567
Definition: mod_proxy.h:114
Definition: mod_proxy.h:79
module PROXY_DECLARE_DATA proxy_module
apr_int64_t apr_interval_time_t
Definition: apr_time.h:55
apr_time_t updated
Definition: mod_proxy.h:446
Definition: mod_proxy.h:75
Structure to store things which are per connection.
Definition: httpd.h:1183
int flush_wait
Definition: mod_proxy.h:432
APR-UTIL Resource List Routines.
#define APR_UUID_FORMATTED_LENGTH
Definition: apr_uuid.h:46
int( proxy_is_best_callback_fn_t)(proxy_worker *current, proxy_worker *prev_best, void *baton)
Definition: mod_proxy.h:905
apr_status_t(* updatelbstatus)(proxy_balancer *balancer, proxy_worker *elected, server_rec *s)
Definition: mod_proxy.h:570
APR-UTIL registration of functions exported by modules.
int fixups(request_rec *r)
apr_size_t response_field_size
Definition: mod_proxy.h:460
Symbol export macros and hook functions.
#define PROXY_MAX_PROVIDER_NAME_SIZE
Definition: mod_proxy.h:385
apr_status_t(* reset)(proxy_balancer *balancer, server_rec *s)
Definition: mod_proxy.h:568
#define PROXY_DECLARE_OPTIONAL_HOOK
Definition: mod_proxy.h:613
char * ap_proxy_parse_wstatus(apr_pool_t *p, proxy_worker *w)
apr_array_header_t * cookie_domains
Definition: mod_proxy.h:223
apr_interval_time_t timeout
Definition: mod_proxy.h:174
const char * set_worker_hc_param(apr_pool_t *, server_rec *, proxy_worker *, const char *, const char *, void *)
Definition: mod_proxy.h:149
apr_array_header_t * aliases
Definition: mod_proxy.h:152
#define PROXY_DECLARE_DATA
Definition: mod_proxy.h:592
apr_pool_t * pool
Definition: mod_proxy.h:161
Definition: mod_proxy.h:75
Definition: apr_arch_global_mutex.h:23
signed char interpolate_env
Definition: mod_proxy.h:225
int ap_proxy_conn_is_https(conn_rec *c)
apr_time_t wupdated
Definition: mod_proxy.h:547
const char *(* ap_proxy_header_reverse_map_fn)(request_rec *, proxy_dir_conf *, const char *)
Definition: mod_proxy.h:726
int req
Definition: mod_proxy.h:162
apr_array_header_t * sec_proxy
Definition: mod_proxy.h:151
unsigned int local_status
Definition: mod_proxy.h:487
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)
const char * hostname
Definition: mod_proxy.h:117
unsigned int status
Definition: mod_proxy.h:439
apr_int64_t apr_time_t
Definition: apr_time.h:45
void * forward
Definition: mod_proxy.h:278
#define PROXY_RFC1035_HOSTNAME_SIZE
Definition: mod_proxy.h:378
int ap_proxy_lb_workers(void)
Definition: ap_slotmem.h:86
APR Global Locking Routines.
int ap_proxy_pre_http_request(conn_rec *c, request_rec *r)
apr_bucket_brigade * bb
Definition: mod_dav.h:555
apr_size_t io_buffer_size
Definition: mod_proxy.h:172
const char * ap_proxy_show_hcmethod(hcmethod_t method)
apr_size_t read_buf_size
Definition: mod_proxy.h:1302
Definition: mod_proxy.h:137
int ap_proxy_acquire_connection(const char *proxy_function, proxy_conn_rec **conn, proxy_worker *worker, server_rec *s)
proxy_hashes hash
Definition: mod_proxy.h:486
Definition: mod_proxy.h:1153
#define PROXY_BALANCER_MAX_ROUTE_SIZE
Definition: mod_proxy.h:370
unsigned int flags
Definition: mod_proxy.h:133
A structure to store information for each virtual server.
Definition: httpd.h:1370
void * context
Definition: mod_proxy.h:494
apr_global_mutex_t * mutex
Definition: mod_proxy.h:186
apr_time_t error_time
Definition: mod_proxy.h:447
Definition: mod_proxy.h:75
const char * p
Definition: mod_proxy.h:210
int growth
Definition: mod_proxy.h:544
int
Definition: mod_proxy.h:653
apr_array_header_t * pfds
Definition: mod_proxy.h:1298
int smax
Definition: mod_proxy.h:430
apr_array_header_t * raliases
Definition: mod_proxy.h:262
apr_interval_time_t async_delay
Definition: mod_proxy.h:252
Definition: mod_proxy.h:267
Definition: mod_proxy.h:412
int max_attempts
Definition: mod_proxy.h:518
apr_off_t read
Definition: mod_proxy.h:463
#define APR_DECLARE_EXTERNAL_HOOK(ns, link, ret, name, args)
Definition: apr_hooks.h:118
Definition: apr_arch_networkio.h:37
int ap_proxy_clear_connection(request_rec *r, apr_table_t *headers)
Definition: mod_proxy.h:176
int hc_valid_expr(request_rec *, const char *)
int max_balancers
Definition: mod_proxy.h:163
apr_pollset_t * pollset
Definition: mod_proxy.h:1297
const char * ap_proxy_de_socketfy(apr_pool_t *p, const char *url)
struct in_addr addr mask
Definition: mod_proxy.h:139
apr_interval_time_t ttl
Definition: mod_proxy.h:448
proxy_balancer_shared * s
Definition: mod_proxy.h:555
#define PROXY_WORKER_MAX_NAME_SIZE
Definition: mod_proxy.h:371
Definition: mod_proxy.h:539
const char * ap_proxy_ssl_val(apr_pool_t *p, server_rec *s, conn_rec *c, request_rec *r, const char *var)
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)
Definition: ap_regex.h:111
apr_socket_t * sock
Definition: mod_proxy.h:276
apr_reslist_t * res
Definition: mod_proxy.h:303
request_rec * r
Definition: mod_proxy.h:269
const char * name
Definition: mod_proxy.h:91
APR-UTIL Buckets/Bucket Brigades.
long maxfwd
Definition: mod_proxy.h:173
Definition: mod_proxy.h:129
proxy_worker proxy_server_conf char * url
Definition: mod_proxy.h:636
proxy_worker_shared * ap_proxy_find_workershm(ap_slotmem_provider_t *storage, ap_slotmem_instance_t *slot, proxy_worker *worker, unsigned int *index)
#define PROXY_WORKER_MAX_SECRET_SIZE
Definition: mod_proxy.h:376
hcmethod_t
Definition: mod_proxy.h:78
APR Platform Definitions.
apr_array_header_t * cookie_paths
Definition: mod_proxy.h:222
apr_port_t port
Definition: mod_proxy.h:461
APR general purpose library routines.
#define PROXY_WORKER_MAX_HOSTNAME_SIZE
Definition: mod_proxy.h:373
APR-UTIL string matching routines.
#define PROXY_BALANCER_MAX_STICKY_SIZE
Definition: mod_proxy.h:375
int ap_proxyerror(request_rec *r, int statuscode, const char *message)
void * context
Definition: mod_proxy.h:554
const char * ap_proxy_location_reverse_map(request_rec *r, proxy_dir_conf *conf, const char *url)
apr_status_t ap_proxy_buckets_lifetime_transform(request_rec *r, apr_bucket_brigade *from, apr_bucket_brigade *to)
struct apr_sockaddr_t * addr
Definition: mod_proxy.h:146
int ap_proxy_release_connection(const char *proxy_function, proxy_conn_rec *conn, server_rec *s)
void ap_proxy_backend_broke(request_rec *r, apr_bucket_brigade *brigade)
apr_interval_time_t timeout
Definition: mod_proxy.h:451
Definition: mod_proxy.h:75
void ap_proxy_c2hex(int ch, char *x)
int pcount
Definition: mod_proxy.h:435
Definition: mod_proxy.h:177
apr_array_header_t * workers
Definition: mod_proxy.h:155
#define PROXY_BALANCER_MAX_NAME_SIZE
Definition: mod_proxy.h:372
ap_slotmem_provider_t * storage
Definition: mod_proxy.h:543
apr_array_header_t * error_override_codes
Definition: mod_proxy.h:250
proxy_conn_rec * conn
Definition: mod_proxy.h:304
int ap_proxy_ssl_engine(conn_rec *c, ap_conf_vector_t *per_dir_config, int enable)
Apache Mutex support library.
char * ap_proxy_canon_netloc(apr_pool_t *p, char **const urlp, char **userp, char **passwordp, char **hostp, apr_port_t *port)
int content_length
Definition: mod_proxy.h:296
apr_array_header_t * workers
Definition: mod_proxy.h:540
int implemented
Definition: mod_proxy.h:85
apr_interval_time_t acquire
Definition: mod_proxy.h:452
apr_read_type_e
Definition: apr_buckets.h:57
apr_global_mutex_t * gmutex
Definition: mod_proxy.h:549
apr_off_t transferred
Definition: mod_proxy.h:462
Definition: mod_proxy.h:1153
apr_sockaddr_t * source_address
Definition: mod_proxy.h:185
apr_pool_t * scpool
Definition: mod_proxy.h:275
apr_pool_t * dns_pool
Definition: mod_proxy.h:305
struct proxy_alias * alias
Definition: mod_proxy.h:226
apr_status_t ap_proxy_sync_balancer(proxy_balancer *b, server_rec *s, proxy_server_conf *conf)
A structure that represents the current request.
Definition: httpd.h:860
int retries
Definition: mod_proxy.h:426
int fcount
Definition: mod_proxy.h:437
const char * hostname
Definition: mod_proxy.h:273
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)
proxy_worker * forward
Definition: mod_proxy.h:157
apr_status_t ap_proxy_tunnel_create(proxy_tunnel_rec **tunnel, request_rec *r, conn_rec *c_o, const char *scheme)
enctype
Definition: mod_proxy.h:74
apr_port_t port
Definition: mod_proxy.h:121
int passes
Definition: mod_proxy.h:434
int lbset
Definition: mod_proxy.h:425
dav_buffer const char * str
Definition: mod_dav.h:464
int ap_proxy_should_override(proxy_dir_conf *conf, int code)
apr_interval_time_t retry
Definition: mod_proxy.h:450
const char * id
Definition: mod_proxy.h:160
int status
Definition: mod_dav.h:141
#define PROXY_DECLARE(type)
Definition: mod_proxy.h:590
int ap_proxy_connection_reusable(proxy_conn_rec *conn)
char * name
Definition: mod_proxy.h:84
apr_interval_time_t ping_timeout
Definition: mod_proxy.h:453
struct apr_table_t apr_table_t
Definition: apr_tables.h:56
unsigned int bit
Definition: mod_proxy.h:89
#define PROXY_BALANCER_MAX_HOSTNAME_SIZE
Definition: mod_proxy.h:374
int(* matcher)(struct dirconn_entry *This, request_rec *r)
Definition: mod_proxy.h:141
const char * name
Definition: mod_dav.h:805
int ap_proxy_hex2c(const char *x)
Definition: mod_proxy.h:182
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)
const char * scheme
Definition: mod_proxy.h:115
apr_thread_mutex_t * tmutex
Definition: mod_proxy.h:551
Definition: mod_proxy.h:300
apr_status_t(* age)(proxy_balancer *balancer, server_rec *s)
Definition: mod_proxy.h:569
ap_slotmem_instance_t * bslot
Definition: mod_proxy.h:187
int index
Definition: mod_proxy.h:433
apr_bucket_brigade * tmp_bb
Definition: mod_proxy.h:288
struct apr_pool_t apr_pool_t
Definition: apr_pools.h:60
Definition: mod_proxy.h:79
conn_rec * connection
Definition: mod_proxy.h:268
int ap_proxy_pre_request(proxy_worker **worker, proxy_balancer **balancer, request_rec *r, proxy_server_conf *conf, char **url)
unsigned int lbmethod_set
Definition: mod_proxy.h:559
Definition: http_config.h:355
const char * ap_proxy_cookie_reverse_map(request_rec *r, proxy_dir_conf *conf, const char *str)
hcmethod_t method
Definition: mod_proxy.h:83
int apr_status_t
Definition: apr_errno.h:44
Definition: mod_proxy.h:79
#define APR_DECLARE_OPTIONAL_FN(ret, name, args)
Definition: apr_optional.h:50
proxy_hashes hash
Definition: mod_proxy.h:520
Definition: mod_proxy.h:79
Definition: mod_proxy.h:485
apr_status_t ap_proxy_initialize_balancer(proxy_balancer *balancer, server_rec *s, apr_pool_t *p)
int failontimeout
Definition: mod_proxy.h:556
apr_pool_t * pool
Definition: mod_proxy.h:301
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)
#define PROXY_WORKER_MAX_SCHEME_SIZE
Definition: mod_proxy.h:368
const char * fake
Definition: mod_proxy.h:131
apr_uint16_t apr_port_t
Definition: apr_network_io.h:257
ap_conf_vector_t * section_config
Definition: mod_proxy.h:495
Definition: mod_proxy.h:88
void * data
Definition: mod_proxy.h:277
apr_thread_mutex_t * tmutex
Definition: mod_proxy.h:492
int lbstatus
Definition: mod_proxy.h:427
apr_array_header_t * balancers
Definition: mod_proxy.h:156
Definition: mod_proxy.h:79
proxy_worker proxy_server_conf * conf
Definition: mod_proxy.h:636
apr_size_t recv_buffer_size
Definition: mod_proxy.h:456
Definition: mod_proxy.h:79
Definition: mod_proxy.h:209
unsigned int def
Definition: mod_proxy.h:407
struct ap_conf_vector_t ap_conf_vector_t
Definition: http_config.h:519
hcmethod_t method
Definition: mod_proxy.h:445
apr_interval_time_t conn_timeout
Definition: mod_proxy.h:454
proxy_worker * worker
Definition: mod_proxy.h:636
apr_status_t ap_proxy_ssl_connection_cleanup(proxy_conn_rec *conn, request_rec *r)
apr_array_header_t * raliases
Definition: mod_proxy.h:221
apr_array_header_t * proxies
Definition: mod_proxy.h:150
Definition: mod_proxy.h:441
dav_resource int dav_locktoken dav_response int flags
Definition: mod_dav.h:1452
apr_array_header_t * refs
Definition: mod_proxy.h:245
proxy_balancer * balancer
Definition: mod_proxy.h:490
char * ap_proxy_update_balancer(apr_pool_t *p, proxy_balancer *balancer, const char *url)
ap_regex_t * r
Definition: mod_proxy.h:211
int max_workers
Definition: mod_proxy.h:545
Definition: mod_proxy.h:1153
apr_status_t ap_proxy_share_worker(proxy_worker *worker, proxy_worker_shared *shm, int i)
PROXY
Definition: mod_proxy.h:653
apr_status_t ap_proxy_set_wstatus(char c, int set, proxy_worker *w)
const char * creds
Definition: mod_proxy.h:119
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)
apr_status_t ap_proxy_share_balancer(proxy_balancer *balancer, proxy_balancer_shared *shm, int i)
int ap_proxy_valid_balancer_name(char *name, int i)
Definition: mod_proxy.h:563
unsigned int failontimeout_set
Definition: mod_proxy.h:557
proxy_worker * proxy_balancer_get_best_worker(proxy_balancer *balancer, request_rec *r, proxy_is_best_callback_fn_t *is_best, void *baton)
apr_array_header_t * noproxies
Definition: mod_proxy.h:153
Memory Slot Extension Storage Module for Apache.
proxy_hashes hash
Definition: mod_proxy.h:546
proxy_worker * ap_proxy_get_worker(apr_pool_t *p, proxy_balancer *balancer, proxy_server_conf *conf, const char *url)
ap_slotmem_instance_t * wslot
Definition: mod_proxy.h:542
proxy_worker proxy_server_conf char const char * proxyhost
Definition: mod_proxy.h:636
Definition: apr_network_io.h:266
apr_array_header_t * dirconn
Definition: mod_proxy.h:154
signed char p_is_fnmatch
Definition: mod_proxy.h:224
Definition: mod_proxy.h:79
Definition: mod_proxy.h:181
char sticky_separator
Definition: mod_proxy.h:529
PROXY_DECLARE_DATA proxy_wstat_t proxy_wstat_tbl[]
apr_status_t ap_proxy_check_connection(const char *scheme, proxy_conn_rec *conn, server_rec *server, unsigned max_blank_lines, int flags)
request_rec * r
Definition: mod_proxy.h:1295
int ap_proxy_read_input(request_rec *r, proxy_conn_rec *backend, apr_bucket_brigade *input_brigade, apr_off_t max_read)
const char * src
Definition: mod_proxy.h:685
Definition: apr_arch_poll_private.h:119
apr_size_t elected
Definition: mod_proxy.h:458