inspircd: restore logins from replayed accountname metadata
All checks were successful
CI / check (push) Successful in 3m45s
All checks were successful
CI / check (push) Successful in 3m45s
The inbound parser ignored METADATA entirely, so on a services netburst (after a restart/relink) the ircd's replayed 'accountname' metadata was dropped — every logged-in user looked logged out to services until they re-identified, losing ChanServ access. Parse METADATA <uid> accountname into a new AccountLogin event that restores account_of (empty = logout); our own echoes and other keys are filtered.
This commit is contained in:
parent
99df7baf10
commit
7e868babc3
4 changed files with 58 additions and 0 deletions
|
|
@ -18,6 +18,10 @@ pub enum NetEvent {
|
|||
Privmsg { from: String, to: String, text: String },
|
||||
UserConnect { uid: String, nick: String, host: String, ip: String },
|
||||
NickChange { uid: String, nick: String },
|
||||
// The ircd tells us a user's logged-in account (METADATA accountname), e.g.
|
||||
// replayed on a services netburst so we can restore who was identified. An
|
||||
// empty `account` means they logged out.
|
||||
AccountLogin { uid: String, account: String },
|
||||
// A channel was created or bursted (an FJOIN). Subsequent single joins arrive
|
||||
// as IJOIN and are not surfaced.
|
||||
ChannelCreate { channel: String },
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue