]>
Commit | Line | Data |
---|---|---|
9d35fe37 | 1 | /* |
f70aedc4 | 2 | * Copyright (C) 1996-2021 The Squid Software Foundation and contributors |
9d35fe37 | 3 | * |
bbc27441 AJ |
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. | |
9d35fe37 AJ |
7 | */ |
8 | ||
bbc27441 AJ |
9 | /* DEBUG: section 28 Access Control */ |
10 | ||
b6f08f5c | 11 | #include "squid.h" |
4eac3407 | 12 | #include "acl/FilledChecklist.h" |
9d35fe37 | 13 | #include "acl/RegexData.h" |
602d9612 | 14 | #include "acl/UrlLogin.h" |
9d35fe37 AJ |
15 | #include "HttpRequest.h" |
16 | #include "rfc1738.h" | |
17 | ||
18 | int | |
4eac3407 | 19 | ACLUrlLoginStrategy::match(ACLData<char const *> * &data, ACLFilledChecklist *checklist) |
9d35fe37 | 20 | { |
92d6986d AJ |
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); | |
9d35fe37 AJ |
32 | } |
33 |