mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-05-05 12:26:52 +02:00
main/squid: add missing patch
This commit is contained in:
parent
a47dfb4b49
commit
211d79bf3c
111
main/squid/squid-3.3.9-loggable-urlgroup.patch
Normal file
111
main/squid/squid-3.3.9-loggable-urlgroup.patch
Normal file
@ -0,0 +1,111 @@
|
||||
diff --git a/src/HttpRequest.cc b/src/HttpRequest.cc
|
||||
index 5e817ed..7d02411 100644
|
||||
--- a/src/HttpRequest.cc
|
||||
+++ b/src/HttpRequest.cc
|
||||
@@ -113,6 +113,7 @@ HttpRequest::init()
|
||||
peer_login = NULL; // not allocated/deallocated by this class
|
||||
peer_domain = NULL; // not allocated/deallocated by this class
|
||||
vary_headers = NULL;
|
||||
+ urlgroup = null_string;
|
||||
myportname = null_string;
|
||||
tag = null_string;
|
||||
#if USE_AUTH
|
||||
@@ -161,6 +162,7 @@ HttpRequest::clean()
|
||||
range = NULL;
|
||||
}
|
||||
|
||||
+ urlgroup.clean();
|
||||
myportname.clean();
|
||||
|
||||
tag.clean();
|
||||
@@ -223,6 +225,7 @@ HttpRequest::clone() const
|
||||
copy->vary_headers = vary_headers ? xstrdup(vary_headers) : NULL;
|
||||
// XXX: what to do with copy->peer_domain?
|
||||
|
||||
+ copy->urlgroup = urlgroup;
|
||||
copy->tag = tag;
|
||||
copy->extacl_log = extacl_log;
|
||||
copy->extacl_message = extacl_message;
|
||||
diff --git a/src/HttpRequest.h b/src/HttpRequest.h
|
||||
index 8b89110..75ae8e6 100644
|
||||
--- a/src/HttpRequest.h
|
||||
+++ b/src/HttpRequest.h
|
||||
@@ -195,6 +195,8 @@ public:
|
||||
|
||||
char *peer_domain; /* Configured peer forceddomain */
|
||||
|
||||
+ String urlgroup;
|
||||
+
|
||||
String myportname; // Internal tag name= value from port this requests arrived in.
|
||||
|
||||
String tag; /* Internal tag for this request */
|
||||
diff --git a/src/client_side_request.cc b/src/client_side_request.cc
|
||||
index 1c467d9..00c5bbd 100644
|
||||
--- a/src/client_side_request.cc
|
||||
+++ b/src/client_side_request.cc
|
||||
@@ -1208,6 +1208,15 @@ ClientRequestContext::clientRedirectDone(char *result)
|
||||
redirect_state = REDIRECT_DONE;
|
||||
|
||||
if (result) {
|
||||
+ if (result[0] == '!') {
|
||||
+ char *t = strchr(result+1, '!');
|
||||
+ if (t != NULL) {
|
||||
+ old_request->urlgroup.reset(NULL);
|
||||
+ old_request->urlgroup.append(result + 1, t - result - 1);
|
||||
+ result = t + 1;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
http_status status = (http_status) atoi(result);
|
||||
|
||||
if (status == HTTP_MOVED_PERMANENTLY
|
||||
@@ -1224,7 +1233,7 @@ ClientRequestContext::clientRedirectDone(char *result)
|
||||
} else {
|
||||
debugs(85, DBG_CRITICAL, "ERROR: URL-rewrite produces invalid " << status << " redirect Location: " << result);
|
||||
}
|
||||
- } else if (strcmp(result, http->uri)) {
|
||||
+ } else if (result[0] != 0 && strcmp(result, http->uri)) {
|
||||
// XXX: validate the URL properly *without* generating a whole new request object right here.
|
||||
// XXX: the clone() should be done only AFTER we know the new URL is valid.
|
||||
HttpRequest *new_request = old_request->clone();
|
||||
diff --git a/src/format/ByteCode.h b/src/format/ByteCode.h
|
||||
index ef25149..557f35e 100644
|
||||
--- a/src/format/ByteCode.h
|
||||
+++ b/src/format/ByteCode.h
|
||||
@@ -65,6 +65,7 @@ typedef enum {
|
||||
/*LFT_REQUEST_QUERY, */
|
||||
LFT_REQUEST_VERSION_OLD_2X,
|
||||
LFT_REQUEST_VERSION,
|
||||
+ LFT_REQUEST_URLGROUP,
|
||||
|
||||
/* request header details pre-adaptation */
|
||||
LFT_REQUEST_HEADER,
|
||||
diff --git a/src/format/Format.cc b/src/format/Format.cc
|
||||
index 1717360..91ca16d 100644
|
||||
--- a/src/format/Format.cc
|
||||
+++ b/src/format/Format.cc
|
||||
@@ -923,6 +923,12 @@ Format::Format::assemble(MemBuf &mb, const AccessLogEntry::Pointer &al, int logS
|
||||
out = tmp;
|
||||
break;
|
||||
|
||||
+ case LFT_REQUEST_URLGROUP:
|
||||
+ if (al->request)
|
||||
+ out = al->request->urlgroup.termedBuf();
|
||||
+ quote = 1;
|
||||
+ break;
|
||||
+
|
||||
case LFT_SERVER_REQ_METHOD:
|
||||
if (al->adapted_request) {
|
||||
out = al->adapted_request->method.image();
|
||||
diff --git a/src/format/Token.cc b/src/format/Token.cc
|
||||
index 099dcbe..01fef74 100644
|
||||
--- a/src/format/Token.cc
|
||||
+++ b/src/format/Token.cc
|
||||
@@ -116,6 +116,7 @@ static TokenTableEntry TokenTable2C[] = {
|
||||
{"rp", LFT_REQUEST_URLPATH_OLD_31},
|
||||
/* { "rq", LFT_REQUEST_QUERY }, * / / * the query-string, INCLUDING the leading ? */
|
||||
{"rv", LFT_REQUEST_VERSION},
|
||||
+ {"rG", LFT_REQUEST_URLGROUP},
|
||||
|
||||
{"<rm", LFT_SERVER_REQ_METHOD},
|
||||
{"<ru", LFT_SERVER_REQ_URI},
|
||||
Loading…
x
Reference in New Issue
Block a user