|
|
a09dfc74df
|
auth: constant-time compare for VHOST and WEBIRC secrets — both used plain == on the config password, unlike oper/RPC/JWT secrets which already route through ct_eq; expose password_hash::ct_eq as the shared comparator and use it (usernames stay plain == — not secret)
|
2026-08-19 00:41:47 +00:00 |
|
|
|
c99f16f3e0
|
webirc: require a non-empty source-IP mask on a webirc block — an empty ipmask meant "any IP", so a maskless webirc=<password> block turned one shared secret into a full host/IP spoof (bypassing z-lines, DNSBL, GeoIP, cloak) for anyone who learned it; now the gateway's connecting IP must match the block's ipmask
|
2026-08-19 00:34:25 +00:00 |
|
|
|
235c747c03
|
refactor: WEBIRC gateways and +G censor rules are named structs (WebircGateway/CensorRule) instead of positional tuples — self-documenting field access, no (_, g, _) index guessing; extends the OperBlock pattern
|
2026-08-18 23:31:21 +00:00 |
|
|
|
ba9d62b172
|
cap: advertise IRCv3 sts policy (sts_duration/sts_port/sts_preload) for TLS upgrade
|
2026-08-16 18:19:04 +00:00 |
|
|
|
4ce500e525
|
cap: fold CAP LS 302 into multiple continuation lines to stay under 512 bytes
|
2026-08-16 18:17:29 +00:00 |
|
|
|
62f901bdc8
|
sasl: wrap the s2s sasl relay in encap (client/agent/mode/data) so services drive authenticate, account via metadata
|
2026-08-15 12:04:09 +00:00 |
|
|
|
56d3774647
|
rline: native regex engine (thompson nfa, no backtracking) + RLINE regex bans (registration/enforce/stats R/matchonnickchange)
|
2026-08-10 21:48:52 +00:00 |
|
|
|
b76fbfdb79
|
services: SVSHOLD nick reservation, SVSTOPIC, SVSOPER, SVSCMODE over s2s (+ stats S)
|
2026-08-10 21:00:23 +00:00 |
|
|
|
f5f888dbaa
|
connectclass: per-class connection policy (allow/deny, localmax, password, maxchans, pingfreq, timeout, modes) + PASS
|
2026-08-10 17:49:12 +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 |
|
|
|
61954f6c5c
|
conn_waitpong: optionally require a PONG cookie before registration (anti-bot)
|
2026-08-09 23:04:14 +00:00 |
|
|
|
61584a545b
|
config: make flood/dnsbl/multiline/chathistory/extjwt limits + nick/chan/watch/monitor/silence/whowas/timeouts configurable (no hardcoded options)
|
2026-08-09 22:52:39 +00:00 |
|
|
|
b0d767a809
|
modules: port account_registration (REGISTER/VERIFY over async HTTP API) + async http infra
|
2026-08-09 11:48:17 +00:00 |
|
|
|
131471e245
|
modules: move all per-module state/config out of server.rs/config.rs into own files
|
2026-08-09 11:18:04 +00:00 |
|
|
|
64dcbd8bf4
|
securitygroups: UnrealIRCd-style groups + g: extban + SECURITYGROUPS + WHOIS
|
2026-08-09 08:08:06 +00:00 |
|
|
|
f4c01e1bf8
|
OPERMOTD, self-service VHOST, and command aliases (config-driven)
|
2026-08-09 01:19:24 +00:00 |
|
|
|
e2a4a3e248
|
NICKLOCK / NICKUNLOCK (services hold a user's nick)
|
2026-08-09 01:09:46 +00:00 |
|
|
|
c641e23a81
|
draft/pre-away: allow AWAY during CAP negotiation (before registration)
|
2026-08-08 21:53:40 +00:00 |
|
|
|
045e7d3ee7
|
Revert "ircv3 STS: advertise sts= (port on plaintext, duration/preload on tls) — the modern tls-upgrade cap"
This reverts commit e0b22a34d0.
|
2026-08-08 21:51:06 +00:00 |
|
|
|
6cf9f01ff8
|
ircv3 STS: advertise sts= (port on plaintext, duration/preload on tls) — the modern tls-upgrade cap
|
2026-08-08 21:48:05 +00:00 |
|
|
|
cc3240c04f
|
x-lines: eline (ban exempt), shun (drop commands), qline (reserved nicks)
|
2026-08-08 20:16:05 +00:00 |
|
|
|
49a1bf08b9
|
webirc: restrict a gateway password to a source ip-mask; document webirc in the example config
|
2026-08-08 20:02:22 +00:00 |
|
|
|
81e9728cfa
|
webirc: trusted web gateways can set the real client host/ip (webirc config blocks)
|
2026-08-08 19:42:10 +00:00 |
|
|
|
02528df5e9
|
sasl external: request tls client cert, plumb sha256 certfp through to user, relay to services; advertise sasl=PLAIN,EXTERNAL on tls
|
2026-08-08 19:36:48 +00:00 |
|
|
|
8d31feb4e7
|
sasl relay over s2s: authenticate plain forwarded to services (sasl_server), 900/903 on success; fails clean with no services
|
2026-08-08 19:28:53 +00:00 |
|
|
|
9b12791774
|
import echoircd — from-scratch irc daemon in native rust
|
2026-08-05 16:10:31 +00:00 |
|