Commit graph

29 commits

Author SHA1 Message Date
2c9ce18cd7
whois: render the oper-type title line in bold + colour (per-type color=<name|0-15|none>, default red) so it stands out 2026-08-20 14:26:17 +00:00
bc520d59a5
whois: a typed oper gets its own 320 special line with the type title (e.g. 'is a Network Administrator'), separate from the generic 313 operator line 2026-08-20 14:17:15 +00:00
8f9e60c8e2
whois: 313 shows the generic 'is an IRC Operator' again — the oper type gates capabilities, and a custom title comes from the SWHOIS line (320) 2026-08-20 14:05:46 +00:00
01516d5fdc
opertypes: oper classes + types — reusable capability classes and named roles (WHOIS title, auto usermodes/snomasks/vhost + level on oper-up, per-type command enforcement via on_pre_command); ships 5 built-in (helpop/globop/admin/servadmin/netadmin); oper blocks gain type=<id>; a typeless oper keeps full access 2026-08-20 10:05:11 +00:00
5101b1361d whois: build the target snapshot as a named WhoisInfo struct instead of a 17-field positional tuple — field-named construction can't silently transpose two same-typed fields; destructured into the same locals so the reply code is unchanged 2026-08-19 01:58:01 +00:00
713406870b who: hide +u auditorium and +D delayjoin members on WHO #chan, matching NAMES 2026-08-17 14:52:38 +00:00
767ecb3471 whois: fold the channel list across multiple 319 lines to stay under 512 bytes 2026-08-16 18:46:07 +00:00
579c321670 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
04423388d5 services: reword uline/service code comments, drop external daemon references 2026-08-16 14:12:18 +00:00
d012623dff services: add server-level uline/is_service flag and gate the service WHOIS line, echo/services tag, MAP/LINKS hide and SVS* on it 2026-08-16 13:43:17 +00:00
91022cffe8 whois: track remote users' umodes from UID; show 335 (is a bot) for remote +B services/bots and 379 modes to opers 2026-08-15 23:50:07 +00:00
59b0439b79 whois: append the snomask to the 379 modes line for opers (is using modes <umodes> +<snomask>), matching the standard format 2026-08-15 17:17:12 +00:00
309201d7fb whois: add 307 (is a registered nick) for identified users and 379 (is using modes) for opers/self 2026-08-15 16:46:10 +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
71d6e7441b helpmode: oper-settable user mode +h (helpop) shown in whois 2026-08-10 09:01:38 +00:00
7a99f49ca4 geoip: native maxmind .mmdb reader, G: geoban extban, GEOIP command, whois country 2026-08-09 21:43:57 +00:00
aa384d56f2 modules: port customtitle (TITLE vanity-title command + WHOIS line + vhost) 2026-08-09 20:13:07 +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
0d4c9297b5 port whoisport, ircv3_network_icon, profileLink, hidewhois (all config-driven) 2026-08-09 08:33:56 +00:00
f6fbff5270 reputation: full parity port — CIDR ipv4/ipv6 masking, reputationexpire decay rules, whois visibility modes, config-driven db/bump/expire/save/minchanmembers/scorecap (no hardcoding) 2026-08-09 08:28:38 +00:00
eb121a75f8 reputation: full port — y: score extban (y:<N/y:>N), WHOIS score, +2 for accounts, bump interval/scorecap/minchanmembers config; conn_join/conn_umodes/connbanner/operjoin/opermodes/seenicks/chancreate 2026-08-09 08:19:32 +00:00
64dcbd8bf4 securitygroups: UnrealIRCd-style groups + g: extban + SECURITYGROUPS + WHOIS 2026-08-09 08:08:06 +00:00
4a53c80d4d CBAN (forbid channel-name globs) + SSLINFO command 2026-08-09 01:04:33 +00:00
835c1cf099 user modes +W showwhois / +c commonchans 2026-08-09 00:54:56 +00:00
8dc51a281b channel modes +Q nokicks / +A allowinvite / +P permchannels; fix SWHOIS (full multi-word text, no doubled nick in WHOIS) 2026-08-09 00:47:10 +00:00
68fdd91eaa SWHOIS (320), SETIDLE, UNINVITE 2026-08-09 00:29:54 +00:00
8edb7b2ab2 whois: show client-cert fingerprint (276) to opers and self 2026-08-08 19:42:10 +00:00
6d19b6771b whox (354) + ircv3 standard-replies (fail/warn/note), account-tag, and +s/+p who/names member hiding 2026-08-08 17:55:44 +00:00
9b12791774 import echoircd — from-scratch irc daemon in native rust 2026-08-05 16:10:31 +00:00