mirror of
https://github.com/ergochat/ergo.git
synced 2024-12-22 18:52:41 +01:00
Detect cap-notify clients better (as recommended by cap spec)
This commit is contained in:
parent
c84ef97b90
commit
22ed6bb1f1
@ -207,6 +207,22 @@ func (clients *ClientManager) AllWithCaps(capabs ...caps.Capability) (sessions [
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AllWithCapsNotify returns all clients with the given capabilities, and that support cap-notify.
|
||||||
|
func (clients *ClientManager) AllWithCapsNotify(capabs ...caps.Capability) (sessions []*Session) {
|
||||||
|
clients.RLock()
|
||||||
|
defer clients.RUnlock()
|
||||||
|
for _, client := range clients.byNick {
|
||||||
|
for _, session := range client.Sessions() {
|
||||||
|
capabs = append(capabs, caps.CapNotify)
|
||||||
|
if session.capabilities.HasAll(capabs...) || 302 <= session.capVersion {
|
||||||
|
sessions = append(sessions, session)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// FindAll returns all clients that match the given userhost mask.
|
// FindAll returns all clients that match the given userhost mask.
|
||||||
func (clients *ClientManager) FindAll(userhost string) (set ClientSet) {
|
func (clients *ClientManager) FindAll(userhost string) (set ClientSet) {
|
||||||
set = make(ClientSet)
|
set = make(ClientSet)
|
||||||
|
@ -744,7 +744,7 @@ func (server *Server) applyConfig(config *Config, initial bool) (err error) {
|
|||||||
removedCaps.Union(updatedCaps)
|
removedCaps.Union(updatedCaps)
|
||||||
|
|
||||||
if !addedCaps.Empty() || !removedCaps.Empty() {
|
if !addedCaps.Empty() || !removedCaps.Empty() {
|
||||||
capBurstSessions = server.clients.AllWithCaps(caps.CapNotify)
|
capBurstSessions = server.clients.AllWithCapsNotify()
|
||||||
|
|
||||||
added[caps.Cap301] = addedCaps.String(caps.Cap301, CapValues)
|
added[caps.Cap301] = addedCaps.String(caps.Cap301, CapValues)
|
||||||
added[caps.Cap302] = addedCaps.String(caps.Cap302, CapValues)
|
added[caps.Cap302] = addedCaps.String(caps.Cap302, CapValues)
|
||||||
|
Loading…
Reference in New Issue
Block a user