Commit graph

15 commits

Author SHA1 Message Date
0ace39c882 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
41826c8e1a socketengine: per-IP accept-rate limiter (token bucket, accept_rate/accept_burst, off by default) — drops connection-churn floods at the accept edge before any state is allocated; exempts trusted proxies and server links 2026-08-12 17:05:24 +00:00
59e18b0205 socketengine: reap TLS conns that stall mid-handshake (tls_handshake_timeout, default 15s) — a connection that opens the TLS port but never negotiates no longer leaks a slot 2026-08-12 15:51:45 +00:00
02ae92e16d socketengine: run direct TLS in the reactor pool — non-blocking handshake + crypto in the worker threads (Sock::Tls, TlsSession), unifying the client I/O model and spreading TLS work across cores; proxied TLS + links keep the thread path 2026-08-12 14:03:00 +00:00
7c166e3aae socketengine: plaintext reactor pool — an acceptor round-robins connections across N worker reactors (io_threads, auto=cores) feeding the single lock-free core, so per-connection I/O scales across cores 2026-08-12 13:42:08 +00:00
6795243d5f core: slow-command snotice (slow_command_ms) + a watchdog thread (watchdog_ms) so a blocked core thread is visible instead of a silent freeze 2026-08-12 12:43:41 +00:00
87a683dbd2 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
d68f3ce97e 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
f371ed0a18 connclass: cidr/parent/port/limit/globalmax + hashed/trusted-cert passwords, per-class recvq/sendq + fakelag, and rfc1413 ident 2026-08-10 18:46:42 +00:00
19157e0722 websocket: native RFC 6455 transport (ws:// + wss://) — handshake, framing, ping/pong keepalive, idle timeout, origin/proxy flags, via_websocket 2026-08-09 18:45:12 +00:00
4b1f096ed8 rpc: JSON-RPC-over-HTTP control interface — native httpd + json + dispatch, core provider 2026-08-09 15:54:05 +00:00
f5cc12e809 connect: oper can dial a configured server link on demand 2026-08-08 20:19:14 +00:00
4fc26d13e9 reverse-dns clients on connect with pre-registration notices (checking ident / looking up your hostname) 2026-08-07 18:39:03 +00:00
58596aea66 scale the socket engine: mio epoll reactor for client connections (tens of thousands on a few threads) 2026-08-05 16:46:13 +00:00
9b12791774 import echoircd — from-scratch irc daemon in native rust 2026-08-05 16:10:31 +00:00