AnnotationData.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 #include "squid.h"
10 #include "acl/Acl.h"
11 #include "acl/AnnotationData.h"
12 #include "acl/Checklist.h"
13 #include "cache_cf.h"
14 #include "ConfigParser.h"
15 #include "Debug.h"
16 #include "format/Format.h"
17 #include "sbuf/Algorithms.h"
18 
19 const char *AnnotationBlackList[] = {
20  "user",
21  "group",
22  "password",
23  "status",
24  "message",
25  "log",
26  "tag",
27  "ttl",
28  "ha1",
29  "rewrite-url",
30  "url",
31  nullptr
32 };
33 
35  : notes(new Notes("annotation_data", AnnotationBlackList)) {}
36 
39 {
40  SBufList sl;
41  if (const char *strNotes = notes->toString())
42  sl.push_back(SBuf(strNotes));
43  return sl;
44 }
45 
46 void
48 {
49  notes->parseKvPair();
50  if (char *t = ConfigParser::PeekAtToken()) {
51  debugs(29, DBG_CRITICAL, "FATAL: Unexpected argument '" << t << "' after annotation specification");
52  self_destruct();
53  return;
54  }
55 }
56 
57 void
59 {
60  notes->updateNotePairs(pairs, delimiters, al);
61 }
62 
65 {
66  return new ACLAnnotationData;
67 }
68 
Definition: SBuf.h:87
void self_destruct(void)
Definition: cache_cf.cc:255
virtual SBufList dump() const
static char * PeekAtToken()
#define DBG_CRITICAL
Definition: Debug.h:44
const char * toString(const char *sep="\r\n") const
Definition: Notes.cc:228
#define debugs(SECTION, LEVEL, CONTENT)
Definition: Debug.h:123
const char * AnnotationBlackList[]
void annotate(NotePairs::Pointer pairs, const CharacterSet *delimiters, const AccessLogEntry::Pointer &al)
Stores annotations into pairs.
virtual ACLData< NotePairs::Entry * > * clone() const
optimized set of C chars, with quick membership test and merge support
Definition: CharacterSet.h:17
virtual void parse()
Notes::Pointer notes
std::list< SBuf > SBufList
Definition: forward.h:26
Definition: Notes.h:108
void updateNotePairs(NotePairsPointer pairs, const CharacterSet *delimiters, const AccessLogEntryPointer &al)
Definition: Notes.cc:214
void parseKvPair()
Parses an annotate line with "key=value" or "key+=value" formats.
Definition: Notes.cc:189

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors