/*
- * Copyright (C) 1996-2014 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2020 The Squid Software Foundation and contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
/* DEBUG: section 28 Access Control */
#include "squid.h"
-#include "acl/Checklist.h"
+#include "acl/FilledChecklist.h"
#include "acl/RegexData.h"
#include "acl/UrlPath.h"
#include "HttpRequest.h"
#include "rfc1738.h"
int
-ACLUrlPathStrategy::match (ACLData<char const *> * &data, ACLFilledChecklist *checklist, ACLFlags &)
+ACLUrlPathStrategy::match (ACLData<char const *> * &data, ACLFilledChecklist *checklist)
{
- char *esc_buf = xstrdup(checklist->request->urlpath.termedBuf());
+ if (checklist->request->url.path().isEmpty())
+ return -1;
+
+ char *esc_buf = SBufToCstring(checklist->request->url.path());
rfc1738_unescape(esc_buf);
int result = data->match(esc_buf);
- safe_free(esc_buf);
+ xfree(esc_buf);
return result;
}
-ACLUrlPathStrategy *
-ACLUrlPathStrategy::Instance()
-{
- return &Instance_;
-}
-
-ACLUrlPathStrategy ACLUrlPathStrategy::Instance_;