3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-10 22:19:31 +01:00
This commit is contained in:
Shivaram Lingamneni 2020-05-28 17:55:53 -04:00
parent c1d4c5596d
commit 2def06b98f
4 changed files with 9 additions and 7 deletions

View File

@ -1333,7 +1333,7 @@ func (client *Client) destroy(session *Session) {
// alert monitors // alert monitors
if registered { if registered {
client.server.monitorManager.AlertAbout(client, false) client.server.monitorManager.AlertAbout(details.nick, details.nickCasefolded, false)
} }
// clean up monitor state // clean up monitor state
client.server.monitorManager.RemoveAll(client) client.server.monitorManager.RemoveAll(client)

View File

@ -25,9 +25,7 @@ func (mm *MonitorManager) Initialize() {
} }
// AlertAbout alerts everyone monitoring `client`'s nick that `client` is now {on,off}line. // AlertAbout alerts everyone monitoring `client`'s nick that `client` is now {on,off}line.
func (manager *MonitorManager) AlertAbout(client *Client, online bool) { func (manager *MonitorManager) AlertAbout(nick, cfnick string, online bool) {
cfnick := client.NickCasefolded()
nick := client.Nick()
var watchers []*Client var watchers []*Client
// safely copy the list of clients watching our nick // safely copy the list of clients watching our nick
manager.RLock() manager.RLock()
@ -42,7 +40,7 @@ func (manager *MonitorManager) AlertAbout(client *Client, online bool) {
} }
for _, mClient := range watchers { for _, mClient := range watchers {
mClient.Send(nil, client.server.name, command, mClient.Nick(), nick) mClient.Send(nil, mClient.server.name, command, mClient.Nick(), nick)
} }
} }

View File

@ -89,7 +89,11 @@ func performNickChange(server *Server, client *Client, target *Client, session *
} }
if target.Registered() { if target.Registered() {
client.server.monitorManager.AlertAbout(target, true) newCfnick := target.NickCasefolded()
if newCfnick != details.nickCasefolded {
client.server.monitorManager.AlertAbout(details.nick, details.nickCasefolded, false)
client.server.monitorManager.AlertAbout(assignedNickname, newCfnick, true)
}
target.nickTimer.Touch(rb) target.nickTimer.Touch(rb)
} // else: these will be deferred to the end of registration (see #572) } // else: these will be deferred to the end of registration (see #572)
return nil return nil

View File

@ -271,7 +271,7 @@ func (server *Server) tryRegister(c *Client, session *Session) (exiting bool) {
// count new user in statistics // count new user in statistics
server.stats.Register() server.stats.Register()
server.monitorManager.AlertAbout(c, true) server.monitorManager.AlertAbout(c.Nick(), c.NickCasefolded(), true)
server.playRegistrationBurst(session) server.playRegistrationBurst(session)
return false return false