echoIRCd/src
reverse 55863e9cfe
opers: TokenList -deny exclusion for commands/privs + auspex-gate hidden chans
commands=/privs= now honour a -token removal (e.g. *,-DIE), threaded through
resolve as deny sets and applied in the command gate + has_priv. WHOIS of a
+I (hidechans) user's channel list now needs users/auspex, not any oper.
2026-08-29 02:36:56 +00:00
..
coremods opers: TokenList -deny exclusion for commands/privs + auspex-gate hidden chans 2026-08-29 02:36:56 +00:00
modules opers: TokenList -deny exclusion for commands/privs + auspex-gate hidden chans 2026-08-29 02:36:56 +00:00
accounts.rs i18n: localize the snotice/announce path — translate at deliver_server_notice chokepoint; rehash, connect/exit, oper-up, login, channel & ojoin notices via trf (fr, es) 2026-08-25 13:04:31 +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 opers: organize privileges and enforce them at flood/join/visibility gates 2026-08-29 02:05:23 +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 brand: per-SNI server/network identity (welcome, ISUPPORT NETWORK, numeric source prefix) 2026-08-24 23:29:15 +00:00
extensible.rs perf: mimalloc global allocator + aHash maps + memchr line framer + LTO/codegen-units=1 — ~29% faster channel fanout; and drop the bogus openssl+mio dependency whitelist from the guard (any perf crate is welcome now) 2026-08-18 19:45:33 +00:00
http.rs modules: draft/webpush — RFC 8291 (aes128gcm) + RFC 8292 (VAPID ES256) Web Push; WEBPUSH REGISTER/UNREGISTER, VAPID ISUPPORT, off-core delivery, HKDF/round-trip tested 2026-08-25 22:31:11 +00:00
i18n.rs i18n: sweep all remaining dynamic prose (oper commands, XLINE/FILTER/DNSBL notices, whois/vhost/knock/dcc/title/reputation/tline/rmode, hash, rename) through trf; +\xNN catalog escape; fr+es now 236 entries each 2026-08-25 14:30:29 +00:00
ircd.rs watchdog: name the slow event/command in the slow-event snote and [watchdog] warning 2026-08-27 16:32:48 +00:00
lib.rs i18n: server-wide locale via lang/<code>.conf catalogs (fr, es); numeric prose auto-translated at the chokepoint, en = zero-cost passthrough 2026-08-25 12:14:35 +00:00
link.rs link: announce a member's IJOIN status modes to local channel members so a rejoining services bot shows opped 2026-08-26 17:46:37 +00:00
main.rs watchdog: name the slow event/command in the slow-event snote and [watchdog] warning 2026-08-27 16:32:48 +00:00
map.rs perf: mimalloc global allocator + aHash maps + memchr line framer + LTO/codegen-units=1 — ~29% faster channel fanout; and drop the bogus openssl+mio dependency whitelist from the guard (any perf crate is welcome now) 2026-08-18 19:45:33 +00:00
message.rs message: parse the IRCv3 tag block in a single pass instead of four separate split(';') scans plus an intermediate Vec for ctags 2026-08-19 02:54:24 +00:00
mode.rs opers: enforce the per-type usermode/chanmode allowlist 2026-08-29 02:17:32 +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 version: show echoircd-<major> (5) in 002/004/351 and enrich RPL_VERSION with build/toolchain provenance 2026-08-23 01:24:45 +00:00
proxy.rs 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
regex.rs 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
resolver.rs hardening: bracket a bare IPv6 nameserver literal (was unparseable -> rDNS/DNSBL silently degraded on v6-only hosts); saturating chunk-size advance in the RPC dechunker (a 16-hex-digit size could overflow-panic the worker); connclass hash= is now last-wins to match password= under parent= inheritance 2026-08-19 04:45:07 +00:00
s2s_sim.rs snoop: connect notice includes port, sni and account (present fields only) 2026-08-25 00:06:22 +00:00
server.rs snoop: redact connect-notice IP + geo/ASN to non-netadmin opers 2026-08-29 00:32:11 +00:00
socketengine.rs websocket: collapse v4-mapped proxy peer so ws_proxyranges matches and X-Real-IP is honored 2026-08-25 03:15:28 +00:00
tls.rs brand: per-SNI server/network identity (welcome, ISUPPORT NETWORK, numeric source prefix) 2026-08-24 23:29:15 +00:00
tls_rustls.rs tls: rustls backend offers TLS 1.3 (was TLS 1.2 only), preferred over 1.2 2026-08-24 20:30:54 +00:00
users.rs modules: draft/webpush — RFC 8291 (aes128gcm) + RFC 8292 (VAPID ES256) Web Push; WEBPUSH REGISTER/UNREGISTER, VAPID ISUPPORT, off-core delivery, HKDF/round-trip tested 2026-08-25 22:31:11 +00:00
watch.rs add SIGNORE: personal mutual server-side ignore across channels and PMs 2026-08-20 14:48:17 +00:00
websocket.rs websocket: collapse v4-mapped proxy peer so ws_proxyranges matches and X-Real-IP is honored 2026-08-25 03:15:28 +00:00
xline.rs i18n: localize the client-facing Closing-link ERROR wrapper via trf (fr, es); QUIT-broadcast reasons stay canonical for S2S 2026-08-25 14:35:13 +00:00