Merge pull request #385 from slingamn/fixes.2

2 small fixes
This commit is contained in:
Daniel Oaks 2019-02-15 08:24:48 +10:00 committed by GitHub
commit 355491d4e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 5 deletions

View File

@ -834,6 +834,7 @@ func (am *AccountManager) loadRawAccount(tx *buntdb.Tx, casefoldedAccount string
}
func (am *AccountManager) Unregister(account string) error {
config := am.server.Config()
casefoldedAccount, err := CasefoldName(account)
if err != nil {
return errAccountDoesNotExist
@ -906,8 +907,14 @@ func (am *AccountManager) Unregister(account string) error {
delete(am.skeletonToAccount, additionalSkel)
}
for _, client := range clients {
if config.Accounts.RequireSasl.Enabled {
client.Quit(client.t("You are no longer authorized to be on this server"))
// destroy acquires a semaphore so we can't call it while holding a lock
go client.destroy(false)
} else {
am.logoutOfAccount(client)
}
}
if err != nil {
return errAccountDoesNotExist

View File

@ -206,6 +206,10 @@ func hsStatusHandler(server *Server, client *Client, command string, params []st
accountName = params[0]
} else {
accountName = client.Account()
if accountName == "" {
hsNotice(rb, client.t("You're not logged into an account"))
return
}
}
account, err := server.accounts.LoadAccount(accountName)

View File

@ -452,10 +452,6 @@ func nsUnregisterHandler(server *Server, client *Client, command string, params
return
}
if cfname == client.Account() {
client.server.accounts.Logout(client)
}
err = server.accounts.Unregister(cfname)
if err == errAccountDoesNotExist {
nsNotice(rb, client.t(err.Error()))