Commit graph

12 commits

Author SHA1 Message Date
c72b966e0a mode: cap mode changes per MODE command (modes=, default 20) and advertise it as the MODES= ISUPPORT token — an uncapped modestring like MODE #c +bbbb… dispatched a handler per letter, each fanning out to the whole channel and every S2S link (amplification DoS); matches InspIRCd's MODES limit 2026-08-19 00:40:58 +00:00
3f9aa8c6eb channel: cull an empty channel when a mode change (-P/-r) removes its last reason to persist 2026-08-17 01:50:11 +00:00
94f57608f7 mode: require half-op to view the autoop/exemptchanops/filter lists 2026-08-16 18:44:08 +00:00
b7600ee5aa add +k servprotect umode (server-set-only, advertised in 004/umodes): blocks KILL, KICK and SA* on a network service; tracked for remote services too 2026-08-16 03:00:25 +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
1c8799d785 link: rework s2s wire format to the standard v4 server protocol (10-field uid, letters-comma fjoin, ijoin, timestamped fmode, ftopic, uuid kick) so external services link 2026-08-15 11:51:18 +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
8ebb106f97 hidemode: hide configured mode changes from members below a rank (per-recipient MODE) 2026-08-10 09:41:20 +00:00
ab4d87488b hidelist: restrict list-mode viewing by rank; allow members to view lists by default (parity) 2026-08-10 08:24:37 +00:00
06afd1e59d rpc: implement the deferred methods — channel.set_mode, server.connect, log.tail/log.events (in-memory log ring) 2026-08-09 16:36:34 +00:00
2d08ca58ea services interface: svsnick, svsjoin, svspart, svsmode (user +r/channel); dry force_part shared with sapart 2026-08-08 18:20:24 +00:00
9b12791774 import echoircd — from-scratch irc daemon in native rust 2026-08-05 16:10:31 +00:00