4.6 KiB
4.6 KiB
Modules
echoIRCd is built module-per-file: each feature lives in its own source module, and most are toggled through the configuration. This is the full set that ships in the tree.
Anti-abuse & access control
| Module | Provides |
|---|---|
connclass |
Connection classes — match by IP/host/TLS/port, then apply reject / clone-caps / password / modes / queue / flood / ping policy |
connflood |
Refuse connections from an IP opening too many too fast |
connectban |
Z-line an IP range that opens too many connections |
conn_waitpong |
Hold registration until the client PONGs an exact server cookie |
flood |
Per-user message-rate limit (fakelag); opers exempt |
dnsbl |
DNS blocklist checks on connect |
reputation |
Per-address reputation scoring over time; y: extban |
securitygroups |
Named AND-ed user sets; g: extban |
antirandom |
Score drone-like random nick/ident/realname |
antimixedutf8 |
Block mixed-Unicode-script look-alike spam |
filter |
Oper-configured spam/word glob filters |
blockamsg |
Block mass /amsg and /ame |
solvemsg |
Un-vouched user answers an arithmetic question before PMs deliver |
recaptcha / cloudflare_challenge |
Registration human-verification gates |
autodrop |
Silently drop HTTP-scanner connections |
restrictmsg / restrictcommands / restrictchans / denychans / channames |
Message/command/channel restrictions |
dccallow |
Gate DCC by filename unless the recipient allowed the sender |
hashident |
Replace ident with a stable per-IP HMAC token |
Bans & extbans
| Module | Provides |
|---|---|
accountban |
a: extban (match by account) |
realnameban |
r: extban (match by realname) |
serverban |
s: extban (match by server) |
channelban |
j: extban (match by another channel) |
extbanbanlist |
b: extban (match another channel's ban list) |
banredirect |
+b <mask>$<#channel> bounces a banned user elsewhere |
geoip |
GeoIP + G: country extban, GEOIP, WHOIS geo |
asn |
ASN lookup feeding classes, groups, extbans, WHOIS |
Channels & modes
| Module | Provides |
|---|---|
customprefix |
Reconfigure or add channel prefix tiers |
namedmodes |
PROP — set/query modes by long name |
permchannels |
Persist +P permanent channels across restarts |
autoop |
+w auto-grant a prefix on join |
rmode |
Bulk-remove list-mode entries |
hidemode / hidelist |
Hide mode changes / list entries below a rank |
IRCv3 & client features
| Module | Provides |
|---|---|
chathistory |
draft/chathistory + draft/message-redaction |
event_playback |
draft/event-playback |
multiline |
Server side of draft/multiline |
metadata |
draft/metadata-2 |
markread |
draft/read-marker |
webpush |
draft/webpush (RFC 8291/8292) |
account_registration |
draft/account-registration bridged to an HTTP backend |
extended_isupport |
draft/extended-isupport |
relaymsg |
draft/relaymsg |
filehost |
Advertise a file-host + signed upload links |
extjwt |
EXTJWT server-signed identity tokens |
irccloudtags |
Validate IRCCloud client-only tags |
Operators & staff
| Module | Provides |
|---|---|
opertypes |
Oper classes + types (capability bundles) |
operlevels |
Numeric oper level (KILL protection tiers) |
operprefix |
The ! oper channel prefix |
ojoin |
Join a channel as network staff |
password_hash |
Hashed oper passwords + MKPASSWD |
globops |
GLOBOPS broadcast |
maphide / hidewhois / hideservices (opers) |
Hide topology / WHOIS lines / services |
tline |
Gauge a would-be ban's blast radius |
customtitle |
TITLE — claim a WHOIS title/vhost |
Cloaking, DNS & identity
| Module | Provides |
|---|---|
cloak |
Keyed host masking (+x) |
ident |
Optional RFC 1413 ident lookups |
jwt |
HS256 JWS/JWT signer shared by captcha / challenge / extjwt |
Observability & integration
| Module | Provides |
|---|---|
metrics |
Prometheus/OpenMetrics endpoint |
rpc |
JSON-RPC 2.0 control interface (see Metrics & RPC) |
syslog / log_json / jsonlog |
Mirror the log stream to syslog / a JSONL file / per-oper JSON tags |
chanlog |
Mirror oper snotices into a channel |
whoisport |
Show an oper the port a user connected to |
showfile / randquote / network_icon / profilelink |
Serve a file as a command, greet quotes, network icon, WHOIS profile link |
securelist |
Hold /LIST for fresh connections |