]> git.ipfire.org Git - thirdparty/squid.git/blame - src/format/Config.cc
Docs: Copyright updates for 2018 (#114)
[thirdparty/squid.git] / src / format / Config.cc
CommitLineData
bbc27441 1/*
5b74111a 2 * Copyright (C) 1996-2018 The Squid Software Foundation and contributors
bbc27441
AJ
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
f7f3304a 9#include "squid.h"
8a01b99e 10#include "cache_cf.h"
602d9612 11#include "ConfigParser.h"
af69c635 12#include "Debug.h"
31971e6a 13#include "format/Config.h"
31971e6a
AJ
14#include <list>
15
16Format::FmtConfig Format::TheConfig;
17
18void
19Format::FmtConfig::parseFormats()
20{
21 char *name, *def;
22
a25ed26c 23 if ((name = ConfigParser::NextToken()) == nullptr) {
31971e6a 24 self_destruct();
a25ed26c
AJ
25 return;
26 }
31971e6a 27
a25ed26c 28 if ((def = ConfigParser::NextQuotedOrToEol()) == nullptr) {
31971e6a
AJ
29 self_destruct();
30 return;
31 }
32
33 debugs(3, 2, "Custom Format for '" << name << "' is '" << def << "'");
34
35 Format *nlf = new Format(name);
36
37 if (!nlf->parse(def)) {
38 self_destruct();
39 return;
40 }
41
42 // add to global config list
43 nlf->next = formats;
44 formats = nlf;
45}
46
47void
d32b56f3 48Format::FmtConfig::registerTokens(const SBuf &nsName, TokenTableEntry const *tokenArray)
31971e6a 49{
d32b56f3
AJ
50 debugs(46, 2, "register format tokens for '" << nsName << "'");
51 if (tokenArray)
52 tokens.emplace_back(TokenNamespace(nsName, tokenArray));
31971e6a 53 else
fa84c01d 54 debugs(0, DBG_CRITICAL, "BUG: format tokens for '" << nsName << "' missing!");
31971e6a 55}
f53969cc 56