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 11:18:21 +00:00
1 parent b6aa2cbc4b
commit c6ab946c86
124 files changed
+2293 -2174

No files matched your search

+4 -4
View File
@@ -24,7 +24,7 @@ main() {
exec chpst -u sww:sww /usr/local/bin/sww "$command"
}
# make_state_dir_for_sww makes the state directory, SWW_STATE_DIR in
# make_state_dir_for_sww makes the state directory, SWW_WAF_STATE_DIR in
# either form, when it is missing, gives it and every file in it to the
# sww user, and sets its mode to 0700. So a volume mounted there needs no
# change of owner; chown -R changes a symbolic link itself, never what it
@@ -34,20 +34,20 @@ main() {
# end the script either: waf reports a directory it cannot write.
make_state_dir_for_sww() {
local dir
if dir="$(setting SWW_STATE_DIR /var/lib/sww)" && [[ "$dir" == /* ]]; then
if dir="$(setting SWW_WAF_STATE_DIR /var/lib/sww)" && [[ "$dir" == /* ]]; then
{ mkdir -p -- "$dir" && chown -R sww:sww "$dir" &&
chmod 0700 "$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, when it is missing, and gives it and every file in it to
# the sww user. As for the state directory, a setting that cannot be read
# or is not an absolute path changes 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
}