echoIRCd/src
2026-08-17 23:45:02 +00:00
..
coremods channel-rename: implement IRCv3 draft/channel-rename — RENAME command + cap, in-place rename (RENAME for cap clients, PART/JOIN fallback for the rest), and S2S propagation 2026-08-17 23:45:02 +00:00
modules snoop: only announce a client's exit if it registered — an unregistered liveness/health probe was spamming the +q snomask (regression from firing on_user_quit for all users) 2026-08-17 22:49:29 +00:00
accounts.rs operprefix + ojoin: server oper prefix (!/mode y, above owner) auto-granted to opers + OJOIN command 2026-08-10 13:01:07 +00:00
bcrypt.rs bcrypt: native $2b$ hashing (blowfish + eksblowfish; pi constants via exact fixed-point machin) wired into password_hash + MKPASSWD 2026-08-11 11:32:35 +00:00
channels.rs channel-rename: implement IRCv3 draft/channel-rename — RENAME command + cap, in-place rename (RENAME for cap clients, PART/JOIN fallback for the rest), and S2S propagation 2026-08-17 23:45:02 +00:00
command.rs operprefix + ojoin: server oper prefix (!/mode y, above owner) auto-granted to opers + OJOIN command 2026-08-10 13:01:07 +00:00
config.rs listeners: make bind/bind_tls/bind_server repeatable (multiple addresses/ports) and normalize IPv4-mapped IPv6 peers back to plain IPv4 — a single [::] bind now serves IPv4+IPv6 with clean v4 addresses 2026-08-15 01:12:37 +00:00
extensible.rs operprefix + ojoin: server oper prefix (!/mode y, above owner) auto-granted to opers + OJOIN command 2026-08-10 13:01:07 +00:00
http.rs 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
ircd.rs core: fire on_user_quit for unregistered users too — pre-registration module state (captcha Challenged/Verified) leaked one Uid per held-then-dropped bot 2026-08-17 21:37:18 +00:00
lib.rs proxy: HAProxy PROXY protocol v1+v2 on the plaintext (reactor) and TLS listeners; trusted via proxy=<glob>, rewrites the client IP before connect checks 2026-08-11 11:43:08 +00:00
link.rs channel-rename: implement IRCv3 draft/channel-rename — RENAME command + cap, in-place rename (RENAME for cap clients, PART/JOIN fallback for the rest), and S2S propagation 2026-08-17 23:45:02 +00:00
main.rs reactor: bound the blocking TLS handshake (proxied-TLS path) with tls_handshake_timeout so a stalled handshake can't pin a thread/socket 2026-08-17 22:13:37 +00:00
message.rs draft/multiline: inbound BATCH parsing + concat assembly, deliver assembled lines; advertise limits 2026-08-08 22:07:04 +00:00
mode.rs channels/whois: validate +k/+l, cap and case-fold ban lists, honour -n for externals, hide +s/+p/+i from whois/who/names, 301 in whois, conf-key the join/nickflood lockout 2026-08-16 17:56:24 +00:00
module.rs registration: add a Hold verdict so captcha/challenge modules pend the client for the challenge instead of tearing the link down 2026-08-17 19:06:17 +00:00
numeric.rs add HELP command with a built-in index and per-topic help (704/705/706) 2026-08-16 18:20:57 +00:00
proxy.rs proxy: forward v2 TLS TLVs (PP2_TYPE_SSL/CERTFP) so plaintext clients behind a TLS-terminating proxy show secure+certfp; restore ws_trust_proxy to the config example 2026-08-11 17:13:32 +00:00
regex.rs rline: native regex engine (thompson nfa, no backtracking) + RLINE regex bans (registration/enforce/stats R/matchonnickchange) 2026-08-10 21:48:52 +00:00
resolver.rs operprefix + ojoin: server oper prefix (!/mode y, above owner) auto-granted to opers + OJOIN command 2026-08-10 13:01:07 +00:00
server.rs channel-rename: implement IRCv3 draft/channel-rename — RENAME command + cap, in-place rename (RENAME for cap clients, PART/JOIN fallback for the rest), and S2S propagation 2026-08-17 23:45:02 +00:00
socketengine.rs reactor: bound the blocking TLS handshake (proxied-TLS path) with tls_handshake_timeout so a stalled handshake can't pin a thread/socket 2026-08-17 22:13:37 +00:00
tls.rs tls: reload certs on REHASH (renewed cert applies without restart) and add per-hostname SNI via tls_sni 2026-08-16 23:35:36 +00:00
users.rs channel-rename: implement IRCv3 draft/channel-rename — RENAME command + cap, in-place rename (RENAME for cap clients, PART/JOIN fallback for the rest), and S2S propagation 2026-08-17 23:45:02 +00:00
watch.rs add callerid (+g) with ACCEPT allow-list, plus msgid and extended-monitor 2026-08-05 16:21:58 +00:00
websocket.rs tls: reload certs on REHASH (renewed cert applies without restart) and add per-hostname SNI via tls_sni 2026-08-16 23:35:36 +00:00
xline.rs xline: remove masks case-insensitively, matching how they're enforced 2026-08-17 14:52:38 +00:00