| Kea 3.0.2-git

radius_parsers.h
Go to the documentation of this file.
1// Copyright (C) 2020-2025 Internet Systems Consortium, Inc. ("ISC")
2//
3// This Source Code Form is subject to the terms of the Mozilla Public
4// License, v. 2.0. If a copy of the MPL was not distributed with this
5// file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7#ifndef RADIUS_PARSER_H
8#define RADIUS_PARSER_H
9
10#include <radius.h>
11#include <radius_access.h>
12#include <radius_accounting.h>
13#include <cc/data.h>
14#include <cc/simple_parser.h>
15#include <set>
16
17 namespace isc {
18 namespace radius {
19
21 class RadiusConfigParser : public data::SimpleParser {
22 public:
23
28 void parse(data::ElementPtr& config);
29
31 static const std::set<std::string> RADIUS_KEYWORDS;
32
34 static const data::SimpleDefaults RADIUS_DEFAULTS;
35
37 static const AttrDefList USED_STANDARD_ATTR_DEFS;
38};
39
41 class RadiusServiceParser : public data::SimpleParser {
42 public:
43
49 void parse(const RadiusServicePtr& service,
50 const data::ConstElementPtr& srv_cfg);
51
53 static const std::set<std::string> SERVICE_KEYWORDS;
54
59 void checkAttributes(const RadiusServicePtr& service);
60};
61
63 class RadiusServerListParser : public data::SimpleParser {
64 public:
65
71 void parse(const RadiusServicePtr& service,
72 const data::ConstElementPtr& srv_list);
73};
74
76 class RadiusServerParser : public data::SimpleParser {
77 public:
78
84 void parse(const RadiusServicePtr& service,
85 const data::ElementPtr& server);
86};
87
89 class RadiusAttributeListParser : public data::SimpleParser {
90 public:
91
97 void parse(const RadiusServicePtr& service,
98 const data::ConstElementPtr& attr_list);
99};
100
102 class RadiusAttributeParser : public data::SimpleParser {
103 public:
104
110 void parse(const RadiusServicePtr& service, const data::ElementPtr& attr);
111
113 static const data::SimpleDefaults ATTRIBUTE_DEFAULTS;
114};
115
116} // end of namespace isc::radius
117} // end of namespace isc
118
119#endif
isc::data::SimpleParser
A simple parser.
Definition lib/cc/simple_parser.h:68
isc::radius::RadiusAttributeListParser
Attribute list parser for Radius.
Definition radius_parsers.h:89
isc::radius::RadiusAttributeListParser::parse
void parse(const RadiusServicePtr &service, const data::ConstElementPtr &attr_list)
Parses Radius list of attribute configurations.
Definition radius_parsers.cc:497
isc::radius::RadiusAttributeParser
Attribute configuration parser for Radius.
Definition radius_parsers.h:102
isc::radius::RadiusAttributeParser::ATTRIBUTE_DEFAULTS
static const data::SimpleDefaults ATTRIBUTE_DEFAULTS
Defaults for Radius attribute configuration.
Definition radius_parsers.h:113
isc::radius::RadiusAttributeParser::parse
void parse(const RadiusServicePtr &service, const data::ElementPtr &attr)
Parses Radius attribute configuration.
Definition radius_parsers.cc:506
isc::radius::RadiusConfigParser
Configuration parser for Radius.
Definition radius_parsers.h:21
isc::radius::RadiusConfigParser::RADIUS_KEYWORDS
static const std::set< std::string > RADIUS_KEYWORDS
Keywords (aka global configuration entry names).
Definition radius_parsers.h:31
isc::radius::RadiusConfigParser::parse
void parse(data::ElementPtr &config)
Parses Radius configuration.
Definition radius_parsers.cc:95
isc::radius::RadiusConfigParser::RADIUS_DEFAULTS
static const data::SimpleDefaults RADIUS_DEFAULTS
Defaults for Radius configuration.
Definition radius_parsers.h:34
isc::radius::RadiusConfigParser::USED_STANDARD_ATTR_DEFS
static const AttrDefList USED_STANDARD_ATTR_DEFS
Needed standard attributes definitions.
Definition radius_parsers.h:37
isc::radius::RadiusServerListParser
Server list parser for Radius.
Definition radius_parsers.h:63
isc::radius::RadiusServerListParser::parse
void parse(const RadiusServicePtr &service, const data::ConstElementPtr &srv_list)
Parses Radius server list.
Definition radius_parsers.cc:411
isc::radius::RadiusServerParser
Server parser for Radius.
Definition radius_parsers.h:76
isc::radius::RadiusServerParser::parse
void parse(const RadiusServicePtr &service, const data::ElementPtr &server)
Parses Radius server.
Definition radius_parsers.cc:420
isc::radius::RadiusServiceParser
Service parser for Radius.
Definition radius_parsers.h:41
isc::radius::RadiusServiceParser::SERVICE_KEYWORDS
static const std::set< std::string > SERVICE_KEYWORDS
Keywords (aka service configuration entry names).
Definition radius_parsers.h:53
isc::radius::RadiusServiceParser::checkAttributes
void checkAttributes(const RadiusServicePtr &service)
Check Radius attributes.
Definition radius_parsers.cc:392
isc::radius::RadiusServiceParser::parse
void parse(const RadiusServicePtr &service, const data::ConstElementPtr &srv_cfg)
Parses Radius service.
Definition radius_parsers.cc:311
data.h
simple_parser.h
isc::config
Definition command_interpreter.cc:23
isc::data::ConstElementPtr
boost::shared_ptr< const Element > ConstElementPtr
Definition data.h:29
isc::data::SimpleDefaults
std::vector< SimpleDefault > SimpleDefaults
This specifies all default values in a given scope (e.g. a subnet).
Definition lib/cc/simple_parser.h:39
isc::data::ElementPtr
boost::shared_ptr< Element > ElementPtr
Definition data.h:28
isc::radius
Definition cfg_attribute.cc:21
isc::radius::AttrDefList
std::list< AttrDef > AttrDefList
List of Attribute definitions.
Definition client_dictionary.h:79
isc::radius::RadiusServicePtr
boost::shared_ptr< RadiusService > RadiusServicePtr
Type of pointers to Radius service.
Definition radius_service.h:60
isc
Defines the logger used by the top-level component of kea-lfc.
Definition agent_parser.cc:148
radius.h
radius_access.h
radius_accounting.h