From 5da7903ce1f2fa3c0454f07664c490f9ee67856e Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 5 May 2020 10:48:12 -0400 Subject: [PATCH] chore(tool): fallback to NGImap4ConnectionStringSeparator When using a master user to update the Sieve scripts through sogo-tool, we may not be able to detect the IMAP delimiter. Therefore, we must fallback to the default NGImap4ConnectionStringSeparator. Fixes #4919 --- SoObjects/SOGo/SOGoSieveManager.m | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/SoObjects/SOGo/SOGoSieveManager.m b/SoObjects/SOGo/SOGoSieveManager.m index f315426fa..6e3253d00 100644 --- a/SoObjects/SOGo/SOGoSieveManager.m +++ b/SoObjects/SOGo/SOGoSieveManager.m @@ -843,7 +843,7 @@ static NSString *sieveScriptName = @"sogo"; andPassword: (NSString *) thePassword forceActivation: (BOOL) forceActivation { - NSString *filterScript, *v, *content, *message; + NSString *filterScript, *v, *delimiter, *content, *message; NSMutableArray *req; NSMutableString *script, *header; NSDictionary *result, *values; @@ -901,12 +901,17 @@ static NSString *sieveScriptName = @"sogo"; else imapClient = [[theAccount imap4Connection] client]; - if (![imapClient delimiter]) + delimiter = [imapClient delimiter]; + + if (!delimiter) [imapClient list: @"INBOX" pattern: @""]; + if (!delimiter) + delimiter = [dd stringForKey: @"NGImap4ConnectionStringSeparator"]; + // We first handle filters filterScript = [self sieveScriptWithRequirements: req - delimiter: [imapClient delimiter]]; + delimiter: delimiter]; if (filterScript) { if ([filterScript length])