mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-10 04:36:43 +00:00
* Ensure IMAP service sync cancel request waits until the sync has completely cancelled rather than just signaling. It's possible that due the context reset on `group.Cancel` that something may have not have been bookmarked correctly in subsequent sync restarts. * Handle connection lost/restored events in the services. Removes the need to lock bridge users. Which could conflict with other ongoing lock operations. Additionally, it ensure that if one service is blocked it doesn't block the entire bridge. * Revise access to bridge user locks.
47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
// Copyright (c) 2023 Proton AG
|
|
//
|
|
// This file is part of Proton Mail Bridge.
|
|
//
|
|
// Proton Mail Bridge is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// Proton Mail Bridge is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Proton Mail Bridge. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
package bridge
|
|
|
|
import (
|
|
"github.com/ProtonMail/proton-bridge/v3/internal/safe"
|
|
)
|
|
|
|
func (bridge *Bridge) ReportBugClicked() {
|
|
safe.RLock(func() {
|
|
for _, user := range bridge.users {
|
|
user.ReportBugClicked()
|
|
}
|
|
}, bridge.usersLock)
|
|
}
|
|
|
|
func (bridge *Bridge) AutoconfigUsed(client string) {
|
|
safe.RLock(func() {
|
|
for _, user := range bridge.users {
|
|
user.AutoconfigUsed(client)
|
|
}
|
|
}, bridge.usersLock)
|
|
}
|
|
|
|
func (bridge *Bridge) KBArticleOpened(article string) {
|
|
safe.RLock(func() {
|
|
for _, user := range bridge.users {
|
|
user.KBArticleOpened(article)
|
|
}
|
|
}, bridge.usersLock)
|
|
}
|