3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-12-22 10:42:52 +01:00

fix KILL etc. for BRB'ed clients

This commit is contained in:
Shivaram Lingamneni 2019-05-30 18:48:12 -04:00
parent c0b554e98c
commit 4350b92bef

View File

@ -985,7 +985,9 @@ func (client *Client) destroy(session *Session) {
}
// should we destroy the whole client this time?
shouldDestroy := !client.destroyed && remainingSessions == 0 && (brbState != BrbEnabled && brbState != BrbSticky)
// BRB is not respected if this is a destroy of the whole client (i.e., session == nil)
brbEligible := session != nil && (brbState == BrbEnabled || brbState == BrbSticky)
shouldDestroy := !client.destroyed && remainingSessions == 0 && !brbEligible
if shouldDestroy {
// if it's our job to destroy it, don't let anyone else try
client.destroyed = true