brand: per-SNI server/network identity (welcome, ISUPPORT NETWORK, numeric source prefix)

This commit is contained in:
Jean Chevronnet 2026-08-24 23:29:15 +00:00
parent f36f803d42
commit b6ada854cc
No known key found for this signature in database
GPG key ID: 439666D63A9477E4
10 changed files with 153 additions and 27 deletions

View file

@ -231,6 +231,8 @@ pub struct User {
pub secure: bool, // connected over TLS (drives WHOIS 671 / sslinfo)
pub certfp: Option<String>, // TLS client-cert fingerprint (SASL EXTERNAL / CertFP)
pub tls_info: Option<String>, // negotiated TLS version/group/cipher (WHOIS 671)
pub brand_server: Option<String>, // per-SNI display server name (None = global)
pub brand_network: Option<String>, // per-SNI display network name (None = global)
pub account: Option<String>, // logged-in account name (set by services)
pub signon: u64, // unix secs at registration (WHOIS 317)
pub nick_ts: u64, // unix secs the current nick was taken (nick-collision arbitration)
@ -460,12 +462,12 @@ impl Server {
self.numeric(
uid,
RPL_WELCOME,
&format!(":Welcome to the {} IRC Network, {nick}", self.network),
&format!(":Welcome to the {} IRC Network, {nick}", self.disp_network(uid)),
);
self.numeric(
uid,
RPL_YOURHOST,
&format!(":Your host is {}, running echoircd-{RELEASE}", self.name),
&format!(":Your host is {}, running echoircd-{RELEASE}", self.disp_name(uid)),
);
self.numeric(
uid,
@ -477,7 +479,7 @@ impl Server {
RPL_MYINFO,
&format!(
"{} echoircd-{RELEASE} iowxsgBkDIHrRzWhc qaohvbeIklimnpstzCTcSNORMfjFLgGuBQAPJUdKXwD",
self.name
self.disp_name(uid)
),
);
// ISUPPORT (005): the fixed set + config-driven module tokens (ICON/FILEHOST).