mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-04-18 03:38:49 +00:00
Remaining patches for bug #1866.
This commit is contained in:
@@ -615,8 +615,8 @@ static NSString *sieveScriptName = @"sogo";
|
||||
SOGoUserDefaults *ud;
|
||||
SOGoDomainDefaults *dd;
|
||||
NGSieveClient *client;
|
||||
NSString *filterScript, *v, *sieveServer;
|
||||
NSURL *url;
|
||||
NSString *filterScript, *v, *sieveServer, *sieveScheme, *sieveQuery, *imapServer;
|
||||
NSURL *url, *cUrl;
|
||||
|
||||
int sievePort;
|
||||
BOOL b, connected;
|
||||
@@ -645,39 +645,42 @@ static NSString *sieveScriptName = @"sogo";
|
||||
//
|
||||
// We first try to get the user's preferred Sieve server
|
||||
sieveServer = [[[user mailAccounts] objectAtIndex: 0] objectForKey: @"sieveServerName"];
|
||||
imapServer = [[[user mailAccounts] objectAtIndex: 0] objectForKey: @"serverName"];
|
||||
|
||||
if (!sieveServer)
|
||||
cUrl = [NSURL URLWithString: (sieveServer ? sieveServer : @"") ];
|
||||
url = [NSURL URLWithString: [dd sieveServer] ];
|
||||
|
||||
if ([cUrl host])
|
||||
sieveServer = [cUrl host];
|
||||
if (!sieveServer && [url host])
|
||||
sieveServer = [url host];
|
||||
if (!sieveServer && [dd sieveServer])
|
||||
sieveServer = [dd sieveServer];
|
||||
|
||||
sievePort = 2000;
|
||||
url = nil;
|
||||
|
||||
if (!sieveServer && imapServer)
|
||||
sieveServer = imapServer;
|
||||
if (!sieveServer)
|
||||
{
|
||||
NSString *s;
|
||||
|
||||
s = [dd imapServer];
|
||||
|
||||
if (s)
|
||||
{
|
||||
NSURL *url;
|
||||
|
||||
url = [NSURL URLWithString: s];
|
||||
sieveServer = @"localhost";
|
||||
|
||||
if ([url host])
|
||||
sieveServer = [url host];
|
||||
else
|
||||
sieveServer = s;
|
||||
}
|
||||
else
|
||||
sieveServer = @"localhost";
|
||||
|
||||
url = [NSURL URLWithString: [NSString stringWithFormat: @"%@:%d", sieveServer, sievePort]];
|
||||
}
|
||||
sieveScheme = [cUrl scheme] ? [cUrl scheme] : [url scheme];
|
||||
if (!sieveScheme)
|
||||
sieveScheme = @"sieve";
|
||||
|
||||
if ([cUrl port])
|
||||
sievePort = [[cUrl port] intValue];
|
||||
else
|
||||
{
|
||||
url = [NSURL URLWithString: sieveServer];
|
||||
}
|
||||
if ([url port])
|
||||
sievePort = [[url port] intValue];
|
||||
else
|
||||
sievePort = 2000;
|
||||
|
||||
sieveQuery = [cUrl query] ? [cUrl query] : [url query];
|
||||
if (sieveQuery)
|
||||
sieveQuery = [NSString stringWithFormat: @"/?%@", sieveQuery];
|
||||
else
|
||||
sieveQuery = @"";
|
||||
|
||||
url = [NSURL URLWithString: [NSString stringWithFormat: @"%@://%@:%d%@",
|
||||
sieveScheme, sieveServer, sievePort, sieveQuery]];
|
||||
|
||||
client = [[NGSieveClient alloc] initWithURL: url];
|
||||
|
||||
|
||||
@@ -576,13 +576,13 @@
|
||||
|
||||
- (void) _appendSystemMailAccount
|
||||
{
|
||||
NSString *fullName, *replyTo, *imapLogin, *imapServer, *signature,
|
||||
NSString *fullName, *replyTo, *imapLogin, *imapServer, *cImapServer, *signature,
|
||||
*encryption, *scheme, *action, *query, *customEmail, *sieveServer;
|
||||
NSMutableDictionary *mailAccount, *identity, *mailboxes, *receipts;
|
||||
NSNumber *port;
|
||||
NSMutableArray *identities;
|
||||
NSArray *mails;
|
||||
NSURL *url;
|
||||
NSURL *url, *cUrl;
|
||||
unsigned int count, max;
|
||||
NSInteger defaultPort;
|
||||
|
||||
@@ -606,16 +606,22 @@
|
||||
// imaps://localhost:143/?tls=YES
|
||||
// imaps://localhost/?tls=YES
|
||||
|
||||
imapServer = [self _fetchFieldForUser: @"c_imaphostname"];
|
||||
if (!imapServer)
|
||||
imapServer = [[self domainDefaults] imapServer];
|
||||
cImapServer = [self _fetchFieldForUser: @"c_imaphostname"];
|
||||
imapServer = [[self domainDefaults] imapServer];
|
||||
cUrl = [NSURL URLWithString: (cImapServer ? cImapServer : @"")];
|
||||
url = [NSURL URLWithString: imapServer];
|
||||
if ([url host])
|
||||
imapServer = [url host];
|
||||
if([cUrl host])
|
||||
imapServer = [cUrl host];
|
||||
else
|
||||
if(cImapServer)
|
||||
imapServer = cImapServer;
|
||||
else
|
||||
if([url host])
|
||||
imapServer = [url host];
|
||||
[mailAccount setObject: imapServer forKey: @"serverName"];
|
||||
|
||||
// 3. port & encryption
|
||||
scheme = [url scheme];
|
||||
scheme = [cUrl scheme] ? [cUrl scheme] : [url scheme];
|
||||
if (scheme
|
||||
&& [scheme caseInsensitiveCompare: @"imaps"] == NSOrderedSame)
|
||||
{
|
||||
@@ -624,14 +630,14 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
query = [url query];
|
||||
query = [cUrl query] ? [cUrl query] : [url query];
|
||||
if (query && [query caseInsensitiveCompare: @"tls=YES"] == NSOrderedSame)
|
||||
encryption = @"tls";
|
||||
else
|
||||
encryption = @"none";
|
||||
defaultPort = 143;
|
||||
}
|
||||
port = [url port];
|
||||
port = [cUrl port] ? [cUrl port] : [url port];
|
||||
if ([port intValue] == 0) /* port is nil or intValue == 0 */
|
||||
port = [NSNumber numberWithInt: defaultPort];
|
||||
[mailAccount setObject: port forKey: @"port"];
|
||||
|
||||
Reference in New Issue
Block a user