Read every setting through viper and rename the settings (closes #211)
check / check (push) Waiting to run

Every setting of waf and rproxy is read through viper, in place of the
os.LookupEnv function Main passed down. NewViper turns AutomaticEnv and
AllowEmptyEnv on, so a setting that is set but empty reads as set. A
setting may also be given as a file, the _FILE form, which rproxy's
settings now have too; rproxy still writes nothing to disk.

The settings are renamed: waf's take the prefix SWW_WAF_, rproxy's take
SWW_RPROXY_, and the shared SWW_COMMAND keeps SWW_. The Core Rule Set's
settings take SWW_WAF_CORE_RULE_SET_ rather than SWW_WAF_WAF_.

Model: deepseek-v4-pro (first version); opus-5-5 (rework)
This commit is contained in:
sneak committed 2026-11-11 10:15:12 +00:00
1 parent b93bad5842
commit c516e34145
122 files changed
+2288 -2170

No files matched your search

+4 -4
View File
@@ -27,20 +27,20 @@ main() {
# give_state_dir_to_sww gives the state directory and every file in
# it to the sww user, so that a volume mounted there needs no change
# of owner; chown -R changes a symbolic link itself, never what it points
# to. When SWW_STATE_DIR, in either form, cannot be read or is not the
# to. When SWW_WAF_STATE_DIR, in either form, cannot be read or is not the
# absolute path of a directory, no owner is changed, and waf starts and
# stops with a message naming the setting. A change of owner that fails, as
# on a volume mounted read-only, does not end the script either: waf
# reports a directory it cannot write.
give_state_dir_to_sww() {
local dir
if dir="$(setting SWW_STATE_DIR /var/lib/sww)" &&
if dir="$(setting SWW_WAF_STATE_DIR /var/lib/sww)" &&
[[ "$dir" == /* && -d "$dir" ]]; then
chown -R sww:sww "$dir" || true
fi
}
# make_cache_dir_for_sww makes the cache directory, SWW_CACHE_DIR in
# make_cache_dir_for_sww makes the cache directory, SWW_WAF_CACHE_DIR in
# either form, and gives it and every file in it to the sww user, as
# give_state_dir_to_sww does the state directory. Unlike that one, it is
# made when it is missing, since the cache files need no volume. As there,
@@ -48,7 +48,7 @@ give_state_dir_to_sww() {
# nothing, and a failure does not end the script.
make_cache_dir_for_sww() {
local dir
if dir="$(setting SWW_CACHE_DIR /var/cache/sww)" && [[ "$dir" == /* ]]; then
if dir="$(setting SWW_WAF_CACHE_DIR /var/cache/sww)" && [[ "$dir" == /* ]]; then
{ mkdir -p -- "$dir" && chown -R sww:sww "$dir"; } || true
fi
}