round 1 of follow-up for metadata (#2277)
Some checks failed
build / build (push) Has been cancelled
ghcr / Build (push) Has been cancelled

* refactoring
* send an empty batch if necessary, as per spec
* don't broadcast no-op updates
* don't trim spaces before validating the key
* bump irctest to cover metadata
* replay existing metadata to reattaching always-on clients
* use canonicalized name everywhere
* use utils.SafeErrorParam in FAIL lines
* validate key names for sub
* fix error for METADATA CLEAR
* max-keys is enforced for channels as well
* remove unlimited configurations
* maintain the limit exactly without off-by-one cases
* add final channel registration check
This commit is contained in:
Shivaram Lingamneni 2025-06-18 00:22:49 -04:00 committed by GitHub
parent 4dcbc48159
commit 3b7db7fff7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 213 additions and 172 deletions

View file

@ -496,6 +496,9 @@ func (server *Server) playRegistrationBurst(session *Session) {
if !(rb.session.capabilities.Has(caps.ExtendedISupport) && rb.session.isupportSentPrereg) {
server.RplISupport(c, rb)
}
if session.capabilities.Has(caps.Metadata) && c.AlwaysOn() {
playMetadataList(rb, d.nick, d.nick, c.ListMetadata())
}
if d.account != "" && session.capabilities.Has(caps.Persistence) {
reportPersistenceStatus(c, rb, false)
}