mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-16 15:16:44 +00:00
feat(GODT-2144): Handle IMAP/SMTP server errors via event stream
This commit is contained in:
@ -22,10 +22,7 @@ import "errors"
|
|||||||
var (
|
var (
|
||||||
ErrVaultInsecure = errors.New("the vault is insecure")
|
ErrVaultInsecure = errors.New("the vault is insecure")
|
||||||
ErrVaultCorrupt = errors.New("the vault is corrupt")
|
ErrVaultCorrupt = errors.New("the vault is corrupt")
|
||||||
|
ErrWatchUpdates = errors.New("failed to watch for updates")
|
||||||
ErrServeIMAP = errors.New("failed to serve IMAP")
|
|
||||||
ErrServeSMTP = errors.New("failed to serve SMTP")
|
|
||||||
ErrWatchUpdates = errors.New("failed to watch for updates")
|
|
||||||
|
|
||||||
ErrNoSuchUser = errors.New("no such user")
|
ErrNoSuchUser = errors.New("no such user")
|
||||||
ErrUserAlreadyExists = errors.New("user already exists")
|
ErrUserAlreadyExists = errors.New("user already exists")
|
||||||
|
|||||||
@ -270,12 +270,6 @@ func (f *frontendCLI) watchEvents(eventCh <-chan events.Event) { // nolint:funle
|
|||||||
|
|
||||||
case errors.Is(err, bridge.ErrVaultInsecure):
|
case errors.Is(err, bridge.ErrVaultInsecure):
|
||||||
f.notifyCredentialsError()
|
f.notifyCredentialsError()
|
||||||
|
|
||||||
case errors.Is(err, bridge.ErrServeIMAP):
|
|
||||||
f.Println("IMAP server error:", err)
|
|
||||||
|
|
||||||
case errors.Is(err, bridge.ErrServeSMTP):
|
|
||||||
f.Println("SMTP server error:", err)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -287,6 +281,12 @@ func (f *frontendCLI) watchEvents(eventCh <-chan events.Event) { // nolint:funle
|
|||||||
case events.ConnStatusDown:
|
case events.ConnStatusDown:
|
||||||
f.notifyInternetOff()
|
f.notifyInternetOff()
|
||||||
|
|
||||||
|
case events.IMAPServerError:
|
||||||
|
f.Println("IMAP server error:", event.Error)
|
||||||
|
|
||||||
|
case events.SMTPServerError:
|
||||||
|
f.Println("SMTP server error:", event.Error)
|
||||||
|
|
||||||
case events.UserDeauth:
|
case events.UserDeauth:
|
||||||
user, err := f.bridge.GetUserInfo(event.UserID)
|
user, err := f.bridge.GetUserInfo(event.UserID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -256,12 +256,6 @@ func (s *Service) watchEvents() {
|
|||||||
|
|
||||||
case errors.Is(err, bridge.ErrVaultInsecure):
|
case errors.Is(err, bridge.ErrVaultInsecure):
|
||||||
_ = s.SendEvent(NewKeychainHasNoKeychainEvent())
|
_ = s.SendEvent(NewKeychainHasNoKeychainEvent())
|
||||||
|
|
||||||
case errors.Is(err, bridge.ErrServeIMAP):
|
|
||||||
_ = s.SendEvent(NewMailServerSettingsErrorEvent(MailServerSettingsErrorType_IMAP_PORT_STARTUP_ERROR))
|
|
||||||
|
|
||||||
case errors.Is(err, bridge.ErrServeSMTP):
|
|
||||||
_ = s.SendEvent(NewMailServerSettingsErrorEvent(MailServerSettingsErrorType_SMTP_PORT_STARTUP_ERROR))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -273,6 +267,12 @@ func (s *Service) watchEvents() {
|
|||||||
case events.ConnStatusDown:
|
case events.ConnStatusDown:
|
||||||
_ = s.SendEvent(NewInternetStatusEvent(false))
|
_ = s.SendEvent(NewInternetStatusEvent(false))
|
||||||
|
|
||||||
|
case events.IMAPServerError:
|
||||||
|
_ = s.SendEvent(NewMailServerSettingsErrorEvent(MailServerSettingsErrorType_IMAP_PORT_STARTUP_ERROR))
|
||||||
|
|
||||||
|
case events.SMTPServerError:
|
||||||
|
_ = s.SendEvent(NewMailServerSettingsErrorEvent(MailServerSettingsErrorType_SMTP_PORT_STARTUP_ERROR))
|
||||||
|
|
||||||
case events.Raise:
|
case events.Raise:
|
||||||
_ = s.SendEvent(NewShowMainWindowEvent())
|
_ = s.SendEvent(NewShowMainWindowEvent())
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user