mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-22 03:49:27 +01:00
ensure the nick timeout mechanism is cleaned up on client quit
This commit is contained in:
parent
a5897baa2b
commit
945dec9964
@ -686,9 +686,8 @@ func (client *Client) destroy(beingResumed bool) {
|
||||
}
|
||||
|
||||
// clean up self
|
||||
if client.idletimer != nil {
|
||||
client.idletimer.Stop()
|
||||
}
|
||||
client.idletimer.Stop()
|
||||
client.nickTimer.Stop()
|
||||
|
||||
client.server.accounts.Logout(client)
|
||||
|
||||
|
@ -127,6 +127,10 @@ func (it *IdleTimer) processTimeout() {
|
||||
|
||||
// Stop stops counting idle time.
|
||||
func (it *IdleTimer) Stop() {
|
||||
if it == nil {
|
||||
return
|
||||
}
|
||||
|
||||
it.Lock()
|
||||
defer it.Unlock()
|
||||
it.state = TimerDead
|
||||
@ -232,6 +236,20 @@ func (nt *NickTimer) Touch() {
|
||||
}
|
||||
}
|
||||
|
||||
// Stop stops counting time and cleans up the timer
|
||||
func (nt *NickTimer) Stop() {
|
||||
if nt == nil {
|
||||
return
|
||||
}
|
||||
|
||||
nt.Lock()
|
||||
defer nt.Unlock()
|
||||
if nt.timer != nil {
|
||||
nt.timer.Stop()
|
||||
nt.timer = nil
|
||||
}
|
||||
}
|
||||
|
||||
func (nt *NickTimer) sendWarning() {
|
||||
baseNotice := "Nickname is reserved; you must change it or authenticate to NickServ within %v"
|
||||
nt.client.Notice(fmt.Sprintf(nt.client.t(baseNotice), nt.timeout))
|
||||
|
Loading…
Reference in New Issue
Block a user