mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
Fix for multiple proxy bugs - review please:
#10722 Reverse proxying cookies #15207 Proxy passing canonicalised URIs to backend #16812 Case-insensitivity of proxypassreverse #19317 Canonicalised URI causing infinite loop #20372 AllowEncodedSlashes May also fix 13577 (untested) This is really two fixes: 10722 and 15207; the others are trivial consequences. To make review easier, the simpler fix (#15207) is entirely contained in #ifdef FIX_15207 (new code) and #ifndef FIX_15207 (removed code) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@104070 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -49,6 +49,7 @@
|
||||
#include "apr_strings.h"
|
||||
#include "apr_uri.h"
|
||||
#include "apr_date.h"
|
||||
#include "apr_strmatch.h"
|
||||
#include "apr_fnmatch.h"
|
||||
#define APR_WANT_STRFUNC
|
||||
#include "apr_want.h"
|
||||
@@ -158,6 +159,14 @@ typedef struct {
|
||||
bad_body
|
||||
} badopt; /* how to deal with bad headers */
|
||||
char badopt_set;
|
||||
/* putting new stuff on the end maximises binary back-compatibility.
|
||||
* the strmatch_patterns are really a const just to have a
|
||||
* case-independent strstr.
|
||||
*/
|
||||
apr_array_header_t* cookie_paths ;
|
||||
apr_array_header_t* cookie_domains ;
|
||||
const apr_strmatch_pattern* cookie_path_str ;
|
||||
const apr_strmatch_pattern* cookie_domain_str ;
|
||||
|
||||
} proxy_server_conf;
|
||||
|
||||
@@ -229,7 +238,6 @@ PROXY_DECLARE(char *)ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, en
|
||||
PROXY_DECLARE(char *)ap_proxy_canon_netloc(apr_pool_t *p, char **const urlp, char **userp,
|
||||
char **passwordp, char **hostp, apr_port_t *port);
|
||||
PROXY_DECLARE(const char *)ap_proxy_date_canon(apr_pool_t *p, const char *x);
|
||||
PROXY_DECLARE(apr_table_t *)ap_proxy_read_headers(request_rec *r, request_rec *rp, char *buffer, int size, conn_rec *c);
|
||||
PROXY_DECLARE(int) ap_proxy_liststr(const char *list, const char *val);
|
||||
PROXY_DECLARE(char *)ap_proxy_removestr(apr_pool_t *pool, const char *list, const char *val);
|
||||
PROXY_DECLARE(int) ap_proxy_hex2sec(const char *x);
|
||||
|
Reference in New Issue
Block a user