1
0
Fork 0
forked from External/ergo

monitor: Fix a crash around the MONITOR command

This commit is contained in:
Daniel Oaks 2017-09-25 11:29:27 +10:00
parent 7ff33b88dd
commit e95c75f87d
3 changed files with 39 additions and 6 deletions

View file

@ -61,6 +61,7 @@ type Client struct {
isDestroyed bool
isQuitting bool
monitoring map[string]bool
monitoringMutex sync.RWMutex
nick string
nickCasefolded string
nickMaskCasefolded string
@ -523,9 +524,11 @@ func (client *Client) destroy() {
}
// alert monitors
client.server.monitoringMutex.RLock()
for _, mClient := range client.server.monitoring[client.nickCasefolded] {
mClient.Send(nil, client.server.name, RPL_MONOFFLINE, mClient.nick, client.nick)
}
client.server.monitoringMutex.RUnlock()
// remove my monitors
client.clearMonitorList()