Configuration scheme ==================== Configuration is in an INI-like format. Sections start with lines `[...]`. Every setting must be in a section. `#` and `;` comment lines are supported. Settings are `nmae = value`. Whitespace around the name and value is ignored. The configuration files are resolved to a configuration for each pairwise **link** between a client and a server. Sections -------- The same config key may appear in multiple sections; for example, in a section specific to a link, as well as one for all links to a server. Unless otherwise specified, any particular config setting for a particular link is the value from the first of the following applicable sections, or failing that the built-in default: * `[ ]` * `[]` * `[]` (often `[SERVER]`) * `[COMMON]` `` is the client's virtual address in IPv4 or IPv6 literal syntax (without any surrounding `[..]`. `` must be in the syntrax of a valid lowercase DNS hostname (and not look like an address), or be literally `SERVER`. There are also these special sections: * `[ LIMIT]` * `[LIMIT]` Files ----- Both client and server read the files * `/etc/hippotat/main.cfg` (if it exists) * `/etc/hippotat/config.d/*` * `/etc/hippotat/secrets.d/*` Here `*` means all contained files whose names consists of only ascii alphanumerics plus `-` and `_`. The `--config` option can be used to override the directory (usually `/etc/hippotat`). Additonally each `--extra-config` option names an existing file or directory to be processed analagously. The ini file format sections from these files are all unioned. Later files (in the list above, or alphabetically later) can override settings from earlier ones. Note that although it is conventional for information for a particular server or client to be in a file named after that endpoint, there is no semantic link: all the files are always read and the appropriate section from each is applied to every link. (If `main.cfg` does not exist, `master.cfg` will be tried for backward compatibility reasons.)