1
0
Fork 0
forked from External/ergo

Merge pull request #224 from slingamn/channelkeys.1

Updates to channel persistence
This commit is contained in:
Daniel Oaks 2018-04-16 13:35:48 +10:00 committed by GitHub
commit c75d2c91c5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 291 additions and 110 deletions

View file

@ -1351,20 +1351,17 @@ func cmodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
applied = channel.ApplyChannelModeChanges(client, msg.Command == "SAMODE", changes, rb)
}
// save changes to banlist/exceptlist/invexlist
var banlistUpdated, exceptlistUpdated, invexlistUpdated bool
// save changes
var includeFlags uint
for _, change := range applied {
if change.Mode == modes.BanMask {
banlistUpdated = true
} else if change.Mode == modes.ExceptMask {
exceptlistUpdated = true
} else if change.Mode == modes.InviteMask {
invexlistUpdated = true
includeFlags |= IncludeModes
if change.Mode == modes.BanMask || change.Mode == modes.ExceptMask || change.Mode == modes.InviteMask {
includeFlags |= IncludeLists
}
}
if (banlistUpdated || exceptlistUpdated || invexlistUpdated) && channel.IsRegistered() {
go server.channelRegistry.StoreChannel(channel, true)
if channel.IsRegistered() && includeFlags != 0 {
go server.channelRegistry.StoreChannel(channel, includeFlags)
}
// send out changes