UrlLogin.cc
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2017 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
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 
virtual bool match(M)=0
virtual int match(ACLData< char const * > *&, ACLFilledChecklist *)
Definition: UrlLogin.cc:19
void userInfo(const SBuf &s)
Definition: URL.h:66
void const char HLPCB void * data
Definition: stub_helper.cc:16
#define debugs(SECTION, LEVEL, CONTENT)
Definition: Debug.h:123
URL url
the request URI
Definition: HttpRequest.h:103
int unsigned int const char *desc STUB void int len
Definition: stub_fd.cc:20
HttpRequest * request
void rfc1738_unescape(char *url)
Definition: rfc1738.c:146
#define MAX_URL
Definition: defines.h:118
MemBlob::size_type size_type
Definition: SBuf.h:90

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors