forked from Silverfish/proton-bridge
Other: setMailServerSettings is async as it should.
This commit is contained in:
@ -640,37 +640,41 @@ func (s *Service) SetMailServerSettings(_ context.Context, settings *ImapSmtpSet
|
|||||||
WithField("UseSSLForSMTP", settings.UseSSLForSmtp).
|
WithField("UseSSLForSMTP", settings.UseSSLForSmtp).
|
||||||
Debug("SetConnectionMode")
|
Debug("SetConnectionMode")
|
||||||
|
|
||||||
defer func() { _ = s.SendEvent(NewChangeMailServerSettingsFinishedEvent()) }()
|
go func() {
|
||||||
|
defer s.panicHandler.HandlePanic()
|
||||||
|
|
||||||
if s.bridge.GetIMAPSSL() != settings.UseSSLForImap {
|
defer func() { _ = s.SendEvent(NewChangeMailServerSettingsFinishedEvent()) }()
|
||||||
if err := s.bridge.SetIMAPSSL(settings.UseSSLForImap); err != nil {
|
|
||||||
s.log.WithError(err).Error("Failed to set IMAP SSL")
|
if s.bridge.GetIMAPSSL() != settings.UseSSLForImap {
|
||||||
_ = s.SendEvent(NewMailServerSettingsErrorEvent(MailServerSettingsErrorType_IMAP_CONNECTION_MODE_CHANGE_ERROR))
|
if err := s.bridge.SetIMAPSSL(settings.UseSSLForImap); err != nil {
|
||||||
|
s.log.WithError(err).Error("Failed to set IMAP SSL")
|
||||||
|
_ = s.SendEvent(NewMailServerSettingsErrorEvent(MailServerSettingsErrorType_IMAP_CONNECTION_MODE_CHANGE_ERROR))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if s.bridge.GetSMTPSSL() != settings.UseSSLForSmtp {
|
if s.bridge.GetSMTPSSL() != settings.UseSSLForSmtp {
|
||||||
if err := s.bridge.SetSMTPSSL(settings.UseSSLForSmtp); err != nil {
|
if err := s.bridge.SetSMTPSSL(settings.UseSSLForSmtp); err != nil {
|
||||||
s.log.WithError(err).Error("Failed to set SMTP SSL")
|
s.log.WithError(err).Error("Failed to set SMTP SSL")
|
||||||
_ = s.SendEvent(NewMailServerSettingsErrorEvent(MailServerSettingsErrorType_SMTP_CONNECTION_MODE_CHANGE_ERROR))
|
_ = s.SendEvent(NewMailServerSettingsErrorEvent(MailServerSettingsErrorType_SMTP_CONNECTION_MODE_CHANGE_ERROR))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if s.bridge.GetIMAPPort() != int(settings.ImapPort) {
|
if s.bridge.GetIMAPPort() != int(settings.ImapPort) {
|
||||||
if err := s.bridge.SetIMAPPort(int(settings.ImapPort)); err != nil {
|
if err := s.bridge.SetIMAPPort(int(settings.ImapPort)); err != nil {
|
||||||
s.log.WithError(err).Error("Failed to set IMAP port")
|
s.log.WithError(err).Error("Failed to set IMAP port")
|
||||||
_ = s.SendEvent(NewMailServerSettingsErrorEvent(MailServerSettingsErrorType_IMAP_PORT_CHANGE_ERROR))
|
_ = s.SendEvent(NewMailServerSettingsErrorEvent(MailServerSettingsErrorType_IMAP_PORT_CHANGE_ERROR))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if s.bridge.GetSMTPPort() != int(settings.SmtpPort) {
|
if s.bridge.GetSMTPPort() != int(settings.SmtpPort) {
|
||||||
if err := s.bridge.SetSMTPPort(int(settings.SmtpPort)); err != nil {
|
if err := s.bridge.SetSMTPPort(int(settings.SmtpPort)); err != nil {
|
||||||
s.log.WithError(err).Error("Failed to set SMTP port")
|
s.log.WithError(err).Error("Failed to set SMTP port")
|
||||||
_ = s.SendEvent(NewMailServerSettingsErrorEvent(MailServerSettingsErrorType_SMTP_PORT_CHANGE_ERROR))
|
_ = s.SendEvent(NewMailServerSettingsErrorEvent(MailServerSettingsErrorType_SMTP_PORT_CHANGE_ERROR))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
_ = s.SendEvent(NewMailServerSettingsChangedEvent(s.getMailServerSettings()))
|
_ = s.SendEvent(NewMailServerSettingsChangedEvent(s.getMailServerSettings()))
|
||||||
|
}()
|
||||||
|
|
||||||
return &emptypb.Empty{}, nil
|
return &emptypb.Empty{}, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user