Read every setting through viper and rename the settings (closes #211)
check / check (push) Successful in 5m3s

Every setting of discriminator 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. Discriminator'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 authored and clawbot committed 2026-11-10 00:30:09 +00:00
1 parent c1bb813a5e
commit 9a8cf93029
115 files changed
+2222 -2104

No files matched your search

+3 -3
View File
@@ -40,7 +40,7 @@ const (
// headers and body.
DispositionDeny = "deny"
// DispositionClose tells rproxy to close the visitor's connection
// without an answer, which SWW_BAN_RESPONSE asks for when it is close.
// without an answer, which SWW_WAF_BAN_RESPONSE asks for when it is close.
// discriminator closing the question's connection instead would read as
// discriminator being down, and rproxy would then let the request through.
DispositionClose = "close"
@@ -302,7 +302,7 @@ func asTheVisitorSentIt(r *http.Request, body []byte) *http.Request {
}
// allow answers a question with DispositionAllow and, while
// SWW_ADD_LOOKUP_HEADERS is set, the client's AS number and country.
// SWW_WAF_ADD_LOOKUP_HEADERS is set, the client's AS number and country.
func (rq *request) allow() {
rq.allowed = true
@@ -328,7 +328,7 @@ func (rq *request) deny(r refusal) {
rq.refused = &r
if r.status == 0 {
// SWW_BAN_RESPONSE is close. Written past rq.out, since the log line's
// SWW_WAF_BAN_RESPONSE is close. Written past rq.out, since the log line's
// status stays 0: the visitor is sent nothing.
rq.out.Header().Set(DispositionHeader, DispositionClose)
rq.out.ResponseWriter.WriteHeader(http.StatusOK)