safe_free(headers.adapted_request);
HTTPMSGUNLOCK(adapted_request);
+ safe_free(lastAclName);
+ safe_free(lastAclData);
+
HTTPMSGUNLOCK(reply);
HTTPMSGUNLOCK(request);
#if ICAP_CLIENT
public:
typedef RefCount<AccessLogEntry> Pointer;
- AccessLogEntry() : url(NULL), tcpClient(), reply(NULL), request(NULL),
- adapted_request(NULL) {}
+ AccessLogEntry() :
+ url(nullptr),
+ lastAclName(nullptr),
+ lastAclData(nullptr),
+ reply(nullptr),
+ request(nullptr),
+ adapted_request(nullptr)
+ {}
~AccessLogEntry();
/// Fetch the client IP log string into the given buffer.
{
public:
- Private() : method_str(NULL), lastAclName(NULL), lastAclData(NULL) {}
- ~Private() {
- safe_free(lastAclName);
- safe_free(lastAclData);
- }
+ Private() : method_str(NULL) {}
const char *method_str;
- const char *lastAclName; ///< string for external_acl_type %ACL format code
- const char *lastAclData; ///< string for external_acl_type %DATA format code
-
} _private;
+
+ const char *lastAclName; ///< string for external_acl_type %ACL format code
+ const char *lastAclData; ///< string for external_acl_type %DATA format code
+
HierarchyLogEntry hier;
HttpReply *reply;
HttpRequest *request; //< virgin HTTP request
virtual void parse();
virtual int match(ACLChecklist *checklist);
/* This really should be dynamic based on the external class defn */
- virtual bool requiresAleXXX() const {return true;}
+ virtual bool requiresAle() const {return true;}
virtual bool requiresRequest() const {return true;}
/* when requiresRequest is made dynamic, review this too */
AclMatchedName = name;
int result = 0;
- if (!checklist->hasAleXXX() && requiresAleXXX()) {
+ if (!checklist->hasAle() && requiresAle()) {
debugs(28, DBG_IMPORTANT, "WARNING: " << name << " ACL is used in " <<
"context without an ALE state. Assuming mismatch.");
} else if (!checklist->hasRequest() && requiresRequest()) {
}
bool
-ACL::requiresAleXXX() const
+ACL::requiresAle() const
{
return false;
}
virtual int match(ACLChecklist *checklist) = 0; // XXX: missing const
/// whether our (i.e. shallow) match() requires checklist to have a AccessLogEntry
- virtual bool requiresAleXXX() const;
+ virtual bool requiresAle() const;
/// whether our (i.e. shallow) match() requires checklist to have a request
virtual bool requiresRequest() const;
/// whether our (i.e. shallow) match() requires checklist to have a reply
// for ACL::checklistMatches to use
virtual bool hasRequest() const = 0;
virtual bool hasReply() const = 0;
- virtual bool hasAleXXX() const = 0;
+ virtual bool hasAle() const = 0;
/// change the current ACL list
/// \return a pointer to the old list value (may be nullptr)
// ACLChecklist API
virtual bool hasRequest() const { return request != NULL; }
virtual bool hasReply() const { return reply != NULL; }
- virtual bool hasAleXXX() const { return al != NULL; }
+ virtual bool hasAle() const { return al != NULL; }
public:
Ip::Address src_addr;
if (t->type == Format::LFT_EXT_ACL_NAME) {
// setup for %ACL
- safe_free(ch->al->_private.lastAclName);
- ch->al->_private.lastAclName = xstrdup(acl_data->name);
+ safe_free(ch->al->lastAclName);
+ ch->al->lastAclName = xstrdup(acl_data->name);
}
if (t->type == Format::LFT_EXT_ACL_DATA) {
}
}
- ch->al->_private.lastAclData = sb.c_str();
+ ch->al->lastAclData = xstrdup(sb.c_str());
}
#if USE_IDENT
break;
case LFT_EXT_ACL_NAME:
- out = al->_private.lastAclName;
+ out = al->lastAclName;
break;
case LFT_EXT_ACL_DATA:
- out = al->_private.lastAclData;
+ out = al->lastAclData;
break;
}