From bfaf9765ae927f86b0f0b4e3c05988194c43b70d Mon Sep 17 00:00:00 2001 From: Xavier Michelon Date: Wed, 31 May 2023 08:10:59 +0200 Subject: [PATCH] fix(GODT-2672): fix context cancelled when IMAP/SMTP parameters change is in progress. (cherry picked from commit 0eab1c0c2bf5f69b3db9293376a6ed82ce3b7d76) --- internal/frontend/grpc/service_methods.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/frontend/grpc/service_methods.go b/internal/frontend/grpc/service_methods.go index 941d0a6f..a36398ce 100644 --- a/internal/frontend/grpc/service_methods.go +++ b/internal/frontend/grpc/service_methods.go @@ -668,7 +668,7 @@ func (s *Service) MailServerSettings(_ context.Context, _ *emptypb.Empty) (*Imap }, nil } -func (s *Service) SetMailServerSettings(ctx context.Context, settings *ImapSmtpSettings) (*emptypb.Empty, error) { +func (s *Service) SetMailServerSettings(_ context.Context, settings *ImapSmtpSettings) (*emptypb.Empty, error) { s.log. WithField("ImapPort", settings.ImapPort). WithField("SmtpPort", settings.SmtpPort). @@ -681,6 +681,8 @@ func (s *Service) SetMailServerSettings(ctx context.Context, settings *ImapSmtpS defer func() { _ = s.SendEvent(NewChangeMailServerSettingsFinishedEvent()) }() + ctx := context.Background() // async operation, we cannot use the context provided by gRPC. + if s.bridge.GetIMAPSSL() != settings.UseSSLForImap { if err := s.bridge.SetIMAPSSL(ctx, settings.UseSSLForImap); err != nil { s.log.WithError(err).Error("Failed to set IMAP SSL")