waf: the comment on readQuestion says rproxy treats a refused question as no answer #326

Closed
opened 2026-11-11 04:08:57 +01:00 by clawbot · 2 comments
Collaborator

Not blocking: need not be fixed before real traffic. Found by the end-to-end check of sww rproxy (#321) on next at f7e3190.

Where

internal/waf/waf.go, the comment above readQuestion (lines 216 to 219).

What is wrong

The comment says waf answers a question it does not take "with 400 and no disposition, which rproxy treats as it treats no answer".

rproxy does not treat it so. It passes that 400 to the visitor, and SWRP_DEFAULT_DISPOSITION does not apply. SPEC.md ("What rproxy does with a request", step 7, and "Without an answer from waf") and internal/rproxy/waf.go agree with each other and not with the comment.

Why it matters

A reader of waf concludes that a refused question still reaches the app. It does not: the visitor gets 400. The next change to either side may be built on the wrong one.

Acceptable

The comment says what happens: rproxy passes the 400 to the visitor. No behaviour changes.

Definition of done

  • One PR to next that changes the comment only.
  • make check passes.

Model: fable-5-2

Not blocking: need not be fixed before real traffic. Found by the end-to-end check of `sww rproxy` (https://git.eeqj.de/sneak/smallwebwaf/issues/321) on `next` at `f7e3190`. ## Where `internal/waf/waf.go`, the comment above `readQuestion` (lines 216 to 219). ## What is wrong The comment says `waf` answers a question it does not take "with 400 and no disposition, which rproxy treats as it treats no answer". `rproxy` does not treat it so. It passes that `400` to the visitor, and `SWRP_DEFAULT_DISPOSITION` does not apply. `SPEC.md` ("What `rproxy` does with a request", step 7, and "Without an answer from `waf`") and `internal/rproxy/waf.go` agree with each other and not with the comment. ## Why it matters A reader of `waf` concludes that a refused question still reaches the app. It does not: the visitor gets `400`. The next change to either side may be built on the wrong one. ## Acceptable The comment says what happens: `rproxy` passes the `400` to the visitor. No behaviour changes. ## Definition of done - One PR to `next` that changes the comment only. - `make check` passes. Model: fable-5-2
Author
Collaborator

Plan. The comment above readQuestion in internal/waf/waf.go says what SPEC.md and internal/rproxy/waf.go do: rproxy passes the 400 to the visitor, and SWRP_DEFAULT_DISPOSITION does not apply. Comment only; no behaviour changes.

Follow AGENTS.md: checks only through make targets. make fmt, then flock -w 1800 /srv/code/tmp/.gate-smallwebwaf.lock make check; a flock timeout also exits 1, so read the output. Edit by hand. Title ending (closes #326). Label the PR needs-review.

Model: opus-5-5

**Plan.** The comment above `readQuestion` in `internal/waf/waf.go` says what `SPEC.md` and `internal/rproxy/waf.go` do: `rproxy` passes the `400` to the visitor, and `SWRP_DEFAULT_DISPOSITION` does not apply. Comment only; no behaviour changes. Follow `AGENTS.md`: checks only through `make` targets. `make fmt`, then `flock -w 1800 /srv/code/tmp/.gate-smallwebwaf.lock make check`; a `flock` timeout also exits 1, so read the output. Edit by hand. Title ending ` (closes #326)`. Label the PR `needs-review`. Model: opus-5-5
clawbot self-assigned this 2026-11-11 04:11:38 +01:00
Author
Collaborator

Built in #333: the comment above readQuestion now says rproxy passes the 400 to the visitor and its default disposition does not apply. Comment only.

Model: opus-5-5

Built in https://git.eeqj.de/sneak/smallwebwaf/pulls/333: the comment above `readQuestion` now says `rproxy` passes the `400` to the visitor and its default disposition does not apply. Comment only. Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/smallwebwaf#326