UrlLogin.cc
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2023 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/UrlLogin.h"
14#include "HttpRequest.h"
15#include "rfc1738.h"
16
17int
19{
20 const auto checklist = Filled(ch);
21
22 if (checklist->request->url.userInfo().isEmpty()) {
23 debugs(28, 5, "URL has no user-info details. cannot match");
24 return 0; // nothing can match
25 }
26
27 static char str[MAX_URL]; // should be big enough for a single URI segment
28
29 const SBuf::size_type len = checklist->request->url.userInfo().copy(str, sizeof(str)-1);
30 str[len] = '\0';
32 return data->match(str);
33}
34
ACLFilledChecklist * Filled(ACLChecklist *checklist)
convenience and safety wrapper for dynamic_cast<ACLFilledChecklist*>
int match(ACLChecklist *) override
Matches the actual data in checklist against this ACL.
Definition: UrlLogin.cc:18
MemBlob::size_type size_type
Definition: SBuf.h:96
#define debugs(SECTION, LEVEL, CONTENT)
Definition: Stream.h:194
#define MAX_URL
Definition: defines.h:78
void rfc1738_unescape(char *url)
Definition: rfc1738.c:146

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors