From: Henrik Nordstrom Date: Thu, 25 Feb 2010 23:00:39 +0000 (+0100) Subject: Associate external acl message with the request X-Git-Tag: SQUID_3_2_0_1~400 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8c93a598cf33caf8193da78e4f9daf2e80ca6d9e;p=thirdparty%2Fsquid.git Associate external acl message with the request this change associates external acl message with the request just as is done with the log message, tags etc. Was in a global variable. The old global variable is still there as a fallback, but can probably be removed. --- diff --git a/src/HttpRequest.cc b/src/HttpRequest.cc index 0ce9786b0b..6f83a3387f 100644 --- a/src/HttpRequest.cc +++ b/src/HttpRequest.cc @@ -104,6 +104,7 @@ HttpRequest::init() extacl_user = null_string; extacl_passwd = null_string; extacl_log = null_string; + extacl_message = null_string; pstate = psReadyToParseStartLine; #if FOLLOW_X_FORWARDED_FOR indirect_client_addr.SetEmpty(); @@ -154,6 +155,8 @@ HttpRequest::clean() extacl_log.clean(); + extacl_message.clean(); + #if USE_ADAPTATION adaptHistory_ = NULL; #endif @@ -207,6 +210,7 @@ HttpRequest::clone() const copy->extacl_user = extacl_user; copy->extacl_passwd = extacl_passwd; copy->extacl_log = extacl_log; + copy->extacl_message = extacl_message; assert(copy->inheritProperties(this)); diff --git a/src/HttpRequest.h b/src/HttpRequest.h index 5c935e9440..8946ff2715 100644 --- a/src/HttpRequest.h +++ b/src/HttpRequest.h @@ -208,6 +208,8 @@ public: String extacl_log; /* String to be used for access.log purposes */ + String extacl_message; /* String to be used for error page purposes */ + #if FOLLOW_X_FORWARDED_FOR String x_forwarded_for_iterator; /* XXX a list of IP addresses */ #endif /* FOLLOW_X_FORWARDED_FOR */ diff --git a/src/errorpage.cc b/src/errorpage.cc index 834c6587c8..c5987e7db8 100644 --- a/src/errorpage.cc +++ b/src/errorpage.cc @@ -716,7 +716,9 @@ ErrorState::Convert(char token, bool url_presentable) break; case 'o': - p = external_acl_message ? external_acl_message : "[not available]"; + p = request ? request->extacl_message.termedBuf() : external_acl_message; + if (!p) + p = "[not available]"; break; case 'p': diff --git a/src/external_acl.cc b/src/external_acl.cc index 1b9ae8091b..5bd276e6ce 100644 --- a/src/external_acl.cc +++ b/src/external_acl.cc @@ -806,6 +806,9 @@ aclMatchExternal(external_acl_data *acl, ACLFilledChecklist *ch) if (entry->log.size()) ch->request->extacl_log = entry->log; + + if (entry->message.size()) + ch->request->extacl_message = entry->message; } return result;