Added documentation about new features of settings_t.

This commit is contained in:
Tobias Brunner 2010-11-12 13:51:28 +01:00
parent b79f7d4208
commit 9a1e5261d6
2 changed files with 103 additions and 2 deletions

View File

@ -67,6 +67,61 @@ With reference to the example above, accessing
will return
.BR xxx .
.SH INCLUDING FILES
Using the
.B include
statement it is possible to include other files into strongswan.conf, e.g.
.PP
.EX
include /some/path/*.conf
.EE
.PP
If the file name is not an absolute path, it is considered to be relative
to the directory of the file containing the include statement. The file name
may include shell wildcards (see
.IR sh (1)).
Also, such inclusions can be nested.
.PP
Sections loaded from included files
.I extend
previously loaded sections; already existing values are
.IR replaced .
It is important to note that settings are added relative to the section the
include statment is in.
.PP
As an example, the following three files result in the same final
config as the one given above:
.PP
.EX
a = b
section-one {
somevalue = before include
include include.conf
}
include other.conf
include.conf:
# settings loaded from this file are added to section-one
# the following replaces the previous value
somevalue = asdf
subsection {
othervalue = yyy
}
yetanother = zz
other.conf:
# this extends section-one and subsection
section-one {
subsection {
# this replaces the previous value
othervalue = xxx
}
}
section-two {
x = 12
}
.EE
.SH DEFINED KEYS
The following keys are currently defined (using dot notation). The default
value (if any) is listed in brackets after the key.

View File

@ -1,4 +1,5 @@
/*
* Copyright (C) 2010 Tobias Brunner
* Copyright (C) 2008 Martin Willi
* Hochschule fuer Technik Rapperswil
*
@ -30,11 +31,11 @@ typedef struct settings_t settings_t;
* Generic configuration options read from a config file.
*
* The syntax is quite simple:
*
* @code
* settings := (section|keyvalue)*
* section := name { settings }
* keyvalue := key = value\n
*
* @endcode
* E.g.:
* @code
a = b
@ -54,6 +55,51 @@ typedef struct settings_t settings_t;
*
* Currently only a limited set of printf format specifiers are supported
* (namely %s, %d and %N, see implementation for details).
*
* \section includes Including other files
* Other files can be included, using the include statement e.g.
* @code
* include /somepath/subconfig.conf
* @endcode
* Shell patterns like *.conf are possible.
*
* If the path is relative, the directory of the file containing the include
* statement is used as base.
*
* Sections loaded from included files extend previously loaded sections,
* already existing values are replaced.
*
* All settings included from files are added relative to the section the
* include statment is in.
*
* The following files result in the same final config as above:
*
* @code
a = b
section-one {
somevalue = before include
include include.conf
}
include two.conf
@endcode
* include.conf
* @code
somevalue = asdf
subsection {
othervalue = yyy
}
yetanother = zz
@endcode
* two.conf
* @code
section-one {
subsection {
othervalue = xxx
}
}
section-two {
}
@endcode
*/
struct settings_t {