The FreeRADIUS server $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions
cf_priv.h File Reference

Private data structures and types for cf_*.c. More...

#include <stdint.h>
#include <sys/stat.h>
#include <freeradius-devel/server/cf_parse.h>
#include <freeradius-devel/util/rb.h>
#include <freeradius-devel/util/dlist.h>
+ Include dependency graph for cf_priv.h:

Go to the source code of this file.

Data Structures

struct  cf_comment
 A # ... comment line preserved verbatim from the input. More...
 
struct  cf_data
 Internal data that is associated with a configuration section. More...
 
struct  cf_file_t
 
struct  cf_item
 Common header for all CONF_* types. More...
 
struct  cf_pair
 Configuration AVP similar to a fr_pair_t. More...
 
struct  cf_section
 A section grouping multiple CONF_PAIR. More...
 

Macros

#define cf_item_foreach_next(_ci, _iter, _prev)    for (CONF_ITEM *_iter = fr_dlist_next(&(_ci)->children, _prev); _iter; _iter = fr_dlist_next(&(_ci)->children, _iter))
 Iterate over the contents of a list.
 
#define cf_item_foreach_prev(_ci, _iter, _prev)    for (CONF_ITEM *_iter = fr_dlist_prev(&(_ci)->children, _prev); _iter; _iter = fr_dlist_prev(&(_ci)->children, _iter))
 Iterate over the contents of a list in reverse order.
 

Typedefs

typedef enum conf_type CONF_ITEM_TYPE
 

Enumerations

enum  cf_unlang_t {
  CF_UNLANG_NONE = 0 ,
  CF_UNLANG_ALLOW ,
  CF_UNLANG_SERVER ,
  CF_UNLANG_POLICY ,
  CF_UNLANG_MODULES ,
  CF_UNLANG_EDIT ,
  CF_UNLANG_ASSIGNMENT ,
  CF_UNLANG_DICTIONARY ,
  CF_UNLANG_CAN_HAVE_UPDATE
}
 
enum  conf_type {
  CONF_ITEM_INVALID = 0 ,
  CONF_ITEM_PAIR ,
  CONF_ITEM_SECTION ,
  CONF_ITEM_DATA ,
  CONF_ITEM_COMMENT
}
 

Functions

bool _cf_expand_variables (void)
 
bool _cf_preserve_comments (void)
 
static bool cf_item_has_no_children (CONF_ITEM const *ci)
 Check if the CONF_ITEM has no children.
 

Detailed Description

Private data structures and types for cf_*.c.

Id
a6330770a2b1da7b5338235d2369219fe38fc527

Definition in file cf_priv.h.


Data Structure Documentation

◆ cf_comment

struct cf_comment

A # ... comment line preserved verbatim from the input.

Only constructed when cf_preserve_comments is set before parsing; the runtime config parser drops comments as it always has.

Definition at line 145 of file cf_priv.h.

+ Collaboration diagram for cf_comment:
Data Fields
CONF_ITEM item Common set of fields.
char const * text Comment text, with the leading # and any surrounding whitespace stripped.

◆ cf_data

struct cf_data

Internal data that is associated with a configuration section.

Definition at line 155 of file cf_priv.h.

+ Collaboration diagram for cf_data:
Data Fields
void const * data User data.
bool is_talloced If true we can do extra checks.
CONF_ITEM item Common set of fields.
char const * name Additional qualification of type.
char const * type C type of data being stored.

◆ cf_file_t

struct cf_file_t

Definition at line 165 of file cf_priv.h.

+ Collaboration diagram for cf_file_t:
Data Fields
struct stat buf stat about the file
CONF_SECTION * cs CONF_SECTION associated with the file.
char const * filename name of the file
bool from_dir was read from a directory
fr_rb_node_t node

◆ cf_item

struct cf_item

Common header for all CONF_* types.

Definition at line 54 of file cf_priv.h.

+ Collaboration diagram for cf_item:
Data Fields
fr_dlist_head_t children The head of the ordered list of children.
fr_dlist_t entry Entry in dlist.
char const * filename The file the config item was parsed from.
fr_rb_tree_t * ident1 Tree to store the first identifier (name1 || type || attr).
fr_rb_node_t ident1_node Entry in the ident1 tree.
fr_rb_tree_t * ident2 Tree to store the second identifier (name2 || name).
fr_rb_node_t ident2_node Entry in the ident2 tree.
int lineno The line number the config item began on.
CONF_ITEM * parent Parent.
bool parsed Was this item used during parsing?
bool referenced Was this item referenced in the config?
CONF_ITEM_TYPE type Whether the config item is a config_pair, conf_section or cf_data.

◆ cf_pair

struct cf_pair

Configuration AVP similar to a fr_pair_t.

Definition at line 77 of file cf_priv.h.

+ Collaboration diagram for cf_pair:
Data Fields
char const * attr Attribute name.
CONF_ITEM item Common set of fields.
fr_token_t lhs_quote Name quoting style T_(DOUBLE|SINGLE|BACK)_QUOTE_STRING or T_BARE_WORD.
fr_token_t op Operator e.g. =, :=.
bool pass2 do expansion in pass2.
bool printed Was this item printed already in debug mode?
fr_token_t rhs_quote Value Quoting style T_(DOUBLE|SINGLE|BACK)_QUOTE_STRING or T_BARE_WORD.
char const * value Attribute value.

◆ cf_section

struct cf_section

A section grouping multiple CONF_PAIR.

Definition at line 106 of file cf_priv.h.

+ Collaboration diagram for cf_section:
Data Fields
bool allow_locals allow local variables
int argc number of additional arguments
char const ** argv additional arguments
fr_token_t * argv_quote
bool at_reference this thing was created from an ...
void * base
int depth
CONF_ITEM item Common set of fields.
char const * name1 First name token. Given foo bar {} would be foo.
char const * name2 Second name token. Given foo bar {} would be bar.
fr_token_t name2_quote The type of quoting around name2.
CONF_SECTION * template
cf_unlang_t unlang

Macro Definition Documentation

◆ cf_item_foreach_next

#define cf_item_foreach_next (   _ci,
  _iter,
  _prev 
)     for (CONF_ITEM *_iter = fr_dlist_next(&(_ci)->children, _prev); _iter; _iter = fr_dlist_next(&(_ci)->children, _iter))

Iterate over the contents of a list.

Parameters
[in]_cito iterate over.
[in]_iterName of iteration variable. Will be declared in the scope of the loop.
[in]_prevprevious pointer

Definition at line 180 of file cf_priv.h.

◆ cf_item_foreach_prev

#define cf_item_foreach_prev (   _ci,
  _iter,
  _prev 
)     for (CONF_ITEM *_iter = fr_dlist_prev(&(_ci)->children, _prev); _iter; _iter = fr_dlist_prev(&(_ci)->children, _iter))

Iterate over the contents of a list in reverse order.

Parameters
[in]_cito iterate over.
[in]_iterName of iteration variable. Will be declared in the scope of the loop.
[in]_prevprevious pointer

Definition at line 190 of file cf_priv.h.

Typedef Documentation

◆ CONF_ITEM_TYPE

typedef enum conf_type CONF_ITEM_TYPE

Enumeration Type Documentation

◆ cf_unlang_t

Enumerator
CF_UNLANG_NONE 

no unlang

CF_UNLANG_ALLOW 

allow unlang in this section

CF_UNLANG_SERVER 

this section is a virtual server, allow unlang 2 down

CF_UNLANG_POLICY 

this section is a policy, allow unlang 2 down

CF_UNLANG_MODULES 

this section is in "modules", allow unlang 2 down

CF_UNLANG_EDIT 

only edit commands

CF_UNLANG_ASSIGNMENT 

only assignments inside of map / update

CF_UNLANG_DICTIONARY 

only local variable definitions

CF_UNLANG_CAN_HAVE_UPDATE 

can have "update"

Definition at line 91 of file cf_priv.h.

◆ conf_type

enum conf_type
Enumerator
CONF_ITEM_INVALID 
CONF_ITEM_PAIR 
CONF_ITEM_SECTION 
CONF_ITEM_DATA 
CONF_ITEM_COMMENT 

A # ... line preserved verbatim from the input - only created when the parser is asked to keep comments (off by default; the runtime parser doesn't keep them, tooling can opt in).

Definition at line 39 of file cf_priv.h.

Function Documentation

◆ _cf_expand_variables()

bool _cf_expand_variables ( void  )

Definition at line 837 of file cf_util.c.

+ Here is the caller graph for this function:

◆ _cf_preserve_comments()

bool _cf_preserve_comments ( void  )

Definition at line 817 of file cf_util.c.

+ Here is the caller graph for this function:

◆ cf_item_has_no_children()

static bool cf_item_has_no_children ( CONF_ITEM const *  ci)
inlinestatic

Check if the CONF_ITEM has no children.

Which is the common use-case

Parameters
[in]cito check
Returns
true/false

Definition at line 200 of file cf_priv.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function: