| .. |
|
coremods
|
whois: show client-cert fingerprint (276) to everyone, not just opers/self
|
2026-08-24 22:25:08 +00:00 |
|
modules
|
snoop: drop needless clones in the connect notice (hold the &User borrow)
|
2026-08-25 00:12:23 +00:00 |
|
accounts.rs
|
accounts: oper snotice on post-connect login ('Client X is now logged in as Y')
|
2026-08-25 02:21:58 +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
|
comments: strip stray reference-implementation names from a handful of module/inline comments
|
2026-08-20 10:11:07 +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
|
http: verify TLS certs by default + cap the response body — set_verify(NONE) unconditionally let a MITM read/forge the account-registration & captcha traffic (usernames, emails, plaintext passwords) POSTed to operator-configured https URLs; now the connector's cert+hostname check stays on (opt out with http_tls_verify=no), and read_to_end is bounded to 4 MiB so a hostile endpoint can't OOM the worker
|
2026-08-19 00:37:50 +00:00 |
|
ircd.rs
|
brand: per-SNI server/network identity (welcome, ISUPPORT NETWORK, numeric source prefix)
|
2026-08-24 23:29:15 +00:00 |
|
lib.rs
|
test: deterministic two-node S2S convergence simulator — real handshake + join/part/rejoin/FJOIN-TS-arbitration driven through actual code paths, proptest-randomised churn asserts both sides always converge; extract Server::part so the sim and the PART command share one path
|
2026-08-18 22:24:19 +00:00 |
|
link.rs
|
snoop: connect notice includes port, sni and account (present fields only)
|
2026-08-25 00:06:22 +00:00 |
|
main.rs
|
config: checkconfig CLI + Config::dump; tls block carries sni/handshake_timeout
|
2026-08-23 12:42:30 +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
|
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
|
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
|
accounts: oper snotice on post-connect login ('Client X is now logged in as Y')
|
2026-08-25 02:21:58 +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
|
snoop: connect notice includes port, sni and account (present fields only)
|
2026-08-25 00:06:22 +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
|
xline: tell a banned user when the ban expires, not just why
|
2026-08-21 15:18:23 +00:00 |