Kea: radius_parsers.h Source File

| Kea 3.2.0-git

radius_parsers.h
Go to the documentation of this file.
1// Copyright (C) 2020-2026 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 <radius_tls.h>
14#include <cc/data.h>
15#include <cc/simple_parser.h>
16#include <set>
17
18namespace isc {
19namespace radius {
20
22 class RadiusConfigParser : public data::SimpleParser {
23public:
24
29 void parse(data::ElementPtr& config);
30
32 static const std::set<std::string> RADIUS_KEYWORDS;
33
35 static const data::SimpleDefaults RADIUS_DEFAULTS;
36
38 static const AttrDefList USED_STANDARD_ATTR_DEFS;
39};
40
42 class RadiusServiceParser : public data::SimpleParser {
43public:
44
50 void parse(const RadiusServicePtr& service,
51 const data::ConstElementPtr& srv_cfg);
52
54 static const std::set<std::string> SERVICE_KEYWORDS;
55
60 void checkAttributes(const RadiusServicePtr& service);
61};
62
64 class RadiusServerListParser : public data::SimpleParser {
65public:
66
72 void parse(const RadiusServicePtr& service,
73 const data::ConstElementPtr& srv_list);
74};
75
77 class RadiusServerParser : public data::SimpleParser {
78public:
79
85 void parse(const RadiusServicePtr& service,
86 const data::ElementPtr& server);
87};
88
90 class RadiusAttributeListParser : public data::SimpleParser {
91public:
92
98 void parse(const RadiusServicePtr& service,
99 const data::ConstElementPtr& attr_list);
100};
101
103 class RadiusAttributeParser : public data::SimpleParser {
104public:
105
111 void parse(const RadiusServicePtr& service, const data::ElementPtr& attr);
112
114 static const data::SimpleDefaults ATTRIBUTE_DEFAULTS;
115};
116
117} // end of namespace isc::radius
118} // end of namespace isc
119
120#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:90
isc::radius::RadiusAttributeListParser::parse
void parse(const RadiusServicePtr &service, const data::ConstElementPtr &attr_list)
Parses Radius list of attribute configurations.
Definition radius_parsers.cc:620
isc::radius::RadiusAttributeParser
Attribute configuration parser for Radius.
Definition radius_parsers.h:103
isc::radius::RadiusAttributeParser::ATTRIBUTE_DEFAULTS
static const data::SimpleDefaults ATTRIBUTE_DEFAULTS
Defaults for Radius attribute configuration.
Definition radius_parsers.h:114
isc::radius::RadiusAttributeParser::parse
void parse(const RadiusServicePtr &service, const data::ElementPtr &attr)
Parses Radius attribute configuration.
Definition radius_parsers.cc:629
isc::radius::RadiusConfigParser
Configuration parser for Radius.
Definition radius_parsers.h:22
isc::radius::RadiusConfigParser::RADIUS_KEYWORDS
static const std::set< std::string > RADIUS_KEYWORDS
Keywords (aka global configuration entry names).
Definition radius_parsers.h:32
isc::radius::RadiusConfigParser::parse
void parse(data::ElementPtr &config)
Parses Radius configuration.
Definition radius_parsers.cc:98
isc::radius::RadiusConfigParser::RADIUS_DEFAULTS
static const data::SimpleDefaults RADIUS_DEFAULTS
Defaults for Radius configuration.
Definition radius_parsers.h:35
isc::radius::RadiusConfigParser::USED_STANDARD_ATTR_DEFS
static const AttrDefList USED_STANDARD_ATTR_DEFS
Needed standard attributes definitions.
Definition radius_parsers.h:38
isc::radius::RadiusServerListParser
Server list parser for Radius.
Definition radius_parsers.h:64
isc::radius::RadiusServerListParser::parse
void parse(const RadiusServicePtr &service, const data::ConstElementPtr &srv_list)
Parses Radius server list.
Definition radius_parsers.cc:517
isc::radius::RadiusServerParser
Server parser for Radius.
Definition radius_parsers.h:77
isc::radius::RadiusServerParser::parse
void parse(const RadiusServicePtr &service, const data::ElementPtr &server)
Parses Radius server.
Definition radius_parsers.cc:526
isc::radius::RadiusServiceParser
Service parser for Radius.
Definition radius_parsers.h:42
isc::radius::RadiusServiceParser::SERVICE_KEYWORDS
static const std::set< std::string > SERVICE_KEYWORDS
Keywords (aka service configuration entry names).
Definition radius_parsers.h:54
isc::radius::RadiusServiceParser::checkAttributes
void checkAttributes(const RadiusServicePtr &service)
Check Radius attributes.
Definition radius_parsers.cc:498
isc::radius::RadiusServiceParser::parse
void parse(const RadiusServicePtr &service, const data::ConstElementPtr &srv_cfg)
Parses Radius service.
Definition radius_parsers.cc:358
data.h
simple_parser.h
isc::config
Definition command_interpreter.cc:23
isc::data::ConstElementPtr
boost::shared_ptr< const Element > ConstElementPtr
Definition data.h:30
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:29
isc::radius
Definition cfg_attribute.cc:21
isc::radius::AttrDefList
std::list< AttrDef > AttrDefList
List of Attribute definitions.
Definition client_dictionary.h:84
isc::radius::RadiusServicePtr
boost::shared_ptr< RadiusService > RadiusServicePtr
Type of pointers to Radius service.
Definition radius_service.h:80
isc
Defines the logger used by the top-level component of kea-lfc.
Definition check_exists_add.cc:18
radius.h
radius_access.h
radius_accounting.h
radius_tls.h