operprefix + ojoin: server oper prefix (!/mode y, above owner) auto-granted to opers + OJOIN command

This commit is contained in:
Jean Chevronnet 2026-08-10 10:05:37 +00:00
parent 8ebb106f97
commit 1dd7f77ca8
106 changed files with 687 additions and 711 deletions

View file

@ -1,12 +1,10 @@
//! cloudflare_challenge — gate registration behind a Cloudflare Turnstile-style
//! challenge, verified by an IP-bound HS256 JWT. Structurally like [`recaptcha`]
//! but keyed on `cloudflare_*` config and driven by the `VERIFYCHALLENGE <token>`
//! command. reverse's own module; runs in JWT-only mode (a validly-signed,
//! unexpired, IP-matching token is proof — no backend call needed).
//! cloudflare_challenge: gate registration behind a challenge verified by an
//! IP-bound HS256 JWT, presented via the `VERIFYCHALLENGE <token>` command. A
//! validly-signed, unexpired, IP-matching token is sufficient proof; no backend
//! call is made.
//!
//! Off unless `cloudflare_challenge = yes` with `cloudflare_secret` +
//! `cloudflare_url` set. Config-driven; the passed-verification set lives in
//! `Server.ext`.
//! `cloudflare_url` set. The passed-verification set lives in `Server.ext`.
use std::collections::HashSet;