]> git.ipfire.org Git - thirdparty/squid.git/blob - src/acl/UrlLogin.cc
Docs: Copyright updates for 2018 (#114)
[thirdparty/squid.git] / src / acl / UrlLogin.cc
1 /*
2 * Copyright (C) 1996-2018 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9 /* DEBUG: section 28 Access Control */
10
11 #include "squid.h"
12 #include "acl/FilledChecklist.h"
13 #include "acl/RegexData.h"
14 #include "acl/UrlLogin.h"
15 #include "HttpRequest.h"
16 #include "rfc1738.h"
17
18 int
19 ACLUrlLoginStrategy::match(ACLData<char const *> * &data, ACLFilledChecklist *checklist)
20 {
21 if (checklist->request->url.userInfo().isEmpty()) {
22 debugs(28, 5, "URL has no user-info details. cannot match");
23 return 0; // nothing can match
24 }
25
26 static char str[MAX_URL]; // should be big enough for a single URI segment
27
28 const SBuf::size_type len = checklist->request->url.userInfo().copy(str, sizeof(str)-1);
29 str[len] = '\0';
30 rfc1738_unescape(str);
31 return data->match(str);
32 }
33