Commit graph

16 commits

Author SHA1 Message Date
745ddd540e
xline: show a timed ban's remaining time in the removal notice 2026-08-21 15:10:27 +00:00
3ad67c6b52
xline: broadcast the XLINE notice on remove and expire too, so it covers every x-line's whole lifecycle 2026-08-21 15:03:36 +00:00
b693c5e5df
dnsbl: per-zone name/action/duration/reason with %ip%; XLINE notice shows duration + absolute expiry 2026-08-21 14:14:17 +00:00
11cec9fc36 s2s/xline: reject a malformed ADDLINE duration instead of coercing it to 0 (= a silent permanent ban), and make add_xline expiry saturating (n.saturating_add) so a peer sending duration=u64::MAX can't overflow-panic the debug build or wrap in release 2026-08-19 00:39:40 +00:00
621f06448d test: property-based fuzzing (proptest) for every untrusted-input parser — message line, PROXY header, WebSocket frame, regex engine, ban-mask, duration; asserts no-panic + round-trip/idempotence/bounds invariants 2026-08-18 22:17:17 +00:00
45f4ee552d xline: remove masks case-insensitively, matching how they're enforced 2026-08-17 14:52:38 +00:00
546f6279e7 snomasks: make +s a parametric snomask mode with the standard category letters (acdfgjklnoqrtuvwx), route each server notice by category, RPL_SNOMASKIS 008; opers default to all and narrow with +s -c etc. 2026-08-15 17:06:14 +00:00
e935ee7002 harden: fix reachable panics (parse_duration/parse_iso/dechunk char-boundary+overflow), s2s netburst key/limit loss, rpc set_nick/set_vhost/notice injection, webirc rehash reload, panic-state reset, ws line cap, remote nick collision, per-conn state leaks 2026-08-15 15:02:36 +00:00
4ba8d5bce6 xline: persist server bans via the off-core disk writer too, so a KLINE/GLINE burst can't stall the event loop on a slow disk 2026-08-12 13:20:16 +00:00
56d3774647 rline: native regex engine (thompson nfa, no backtracking) + RLINE regex bans (registration/enforce/stats R/matchonnickchange) 2026-08-10 21:48:52 +00:00
b76fbfdb79 services: SVSHOLD nick reservation, SVSTOPIC, SVSOPER, SVSCMODE over s2s (+ stats S) 2026-08-10 21:00:23 +00:00
1dd7f77ca8 operprefix + ojoin: server oper prefix (!/mode y, above owner) auto-granted to opers + OJOIN command 2026-08-10 13:01:07 +00:00
6be8e5ebcb xline_db: persist x-lines/cbans to disk, reload on start 2026-08-09 01:15:43 +00:00
4a53c80d4d CBAN (forbid channel-name globs) + SSLINFO command 2026-08-09 01:04:33 +00:00
cc3240c04f x-lines: eline (ban exempt), shun (drop commands), qline (reserved nicks) 2026-08-08 20:16:05 +00:00
9b12791774 import echoircd — from-scratch irc daemon in native rust 2026-08-05 16:10:31 +00:00