NAME
Config::Pound - Parser for Pound configuration file
SYNOPSIS
use Config::Pound;
$cfg = new Config::Pound([$filename, $linter_program]);
$cfg->parse;
$name = $cfg->filename;
@listeners = $cfg->select(name => 'ListenHTTP');
$itr = $cfg->iterator(inorder => 1);
while (defined($node = $itr->next)) {
# do something with $node
}
$cfg->lint(enable => 1, command => 'pound -c -f',
path => '/sbin:/usr/sbin')
$cfg->save(%hash);
$cfg->write($file_or_handle, %hash);
$cfg->backup;
$name = $self->backup_name;
$cfg->reset;
$cfg->push($node);
$node = $cfg->pop;
$node = $cfg->tos;
$node = $cfg->tree;
DESCRIPTION
The Config::Pound class is a parser that converts the Pound configuration file to a parse tree and provides methods for various operations on this tree, such as: searching, modifying and saving it to a file.
An object of this class contains a parse tree representing the configuration read from the file (or created from scratch). See "PARSE TREE" in Config::Proxy, for a detailed discussion. The following describes nodes, specific for Pound configuration files:
- IP (Config::Pound::Node::IP)
-
Objects of this type represent IP addresses or CIDRs from an ACL section in Pound configuration section.
- Section (Config::Pound::Node::Section)
-
A container, representing a
compound statement
, orsection
: a statement that contains multiple sub-statements. Examples of compound statements in Pound configuration file are: ListenHTTP, Section, and Backend (the list is not exhaustive). - Verbatim (Config::Pound::Node::Verbatim)
-
Objects of this class represent verbatim context embedded in a Pound configuration. Currently it is used to represent contents of ConfigText statement in Resolver section.
CONSTRUCTOR
$cfg = new Config::Pound([$filename, $linter]);
Creates and returns a new object for manipulating Pound configuration file. Optional $filename specifies the name of the file to read configuration from. It defaults to /etc/pound/pound.cfg.
Optional $linter parameter supplies a shell command to be called in order to check configuration file syntax. The command will be called by save and write methods before saving the configuration file. See "save" in Config::Proxy and "write" in Config::Proxy. Default linter command is pound -c -f.
METHODS AND ATTRIBUTES
See Config::Proxy, for a detailed discussion of these.
SEE ALSO
Config::Proxy, Config::Proxy::Node, Config::Proxy::Node::Comment, Config::Proxy::Node::Empty, Config::Pound::Node::IP, Config::Proxy::Node::Root Config::Pound::Node::Section, Config::Proxy::Node::Statement, Config::Pound::Node::Verbatim, Config::Proxy::Iterator.
AUTHOR
Sergey Poznyakoff, <gray@gnu.org>
COPYRIGHT AND LICENSE
Copyright (C) 2023, 2024 by Sergey Poznyakoff
This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this library. If not, see <http://www.gnu.org/licenses/>.