From c40475ab772ae6f62835c7e8bd0a8ca2c168a952 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Fri, 20 Mar 2009 19:42:44 +0000 Subject: [PATCH] Monotone-Parent: b8dd0da637c01e983924030f920c45d1581a5e95 Monotone-Revision: f845aee937de02ccc5aaec9e4f9592ddeea27abf Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2009-03-20T19:42:44 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 3 +++ SoObjects/SOGo/SOGoUser.m | 26 +++++++++++++------------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index cdb479351..13e3f8b63 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,9 @@ values are not nil before putting them in the cache. This fixes an exception occuring for setting a nil key in a dictionary. ([SOGoUser -userSettings]): same as above. + ([SOGoUser -userDefaults]): if "value" is null, meaning that + database connectivity has failed, don't try to set default values, + which would trigger other connection tries. 2009-03-19 Francis Lachapelle diff --git a/SoObjects/SOGo/SOGoUser.m b/SoObjects/SOGo/SOGoUser.m index d179f38e7..38125f46e 100644 --- a/SoObjects/SOGo/SOGoUser.m +++ b/SoObjects/SOGo/SOGoUser.m @@ -461,22 +461,22 @@ _timeValue (NSString *key) defaults = [self primaryUserDefaults]; if (defaults) { - // Required parameters for the Web interface - if (![[defaults stringForKey: @"ReplyPlacement"] length]) - [defaults setObject: defaultReplyPlacement forKey: @"ReplyPlacement"]; - if (![[defaults stringForKey: @"SignaturePlacement"] length]) - [defaults setObject: defaultSignaturePlacement forKey: @"SignaturePlacement"]; - if (![[defaults stringForKey: @"MessageForwarding"] length]) - [defaults setObject: defaultMessageForwarding forKey: @"MessageForwarding"]; - if (![[defaults stringForKey: @"MessageCheck"] length]) - [defaults setObject: defaultMessageCheck forKey: @"MessageCheck"]; - - // We propagate the loaded user defaults to other sogod instances - // which will cache them in SOGoCache (including for the instance - // that actually posts the notification) values = [defaults values]; if (values) { + // Required parameters for the Web interface + if (![[defaults stringForKey: @"ReplyPlacement"] length]) + [defaults setObject: defaultReplyPlacement forKey: @"ReplyPlacement"]; + if (![[defaults stringForKey: @"SignaturePlacement"] length]) + [defaults setObject: defaultSignaturePlacement forKey: @"SignaturePlacement"]; + if (![[defaults stringForKey: @"MessageForwarding"] length]) + [defaults setObject: defaultMessageForwarding forKey: @"MessageForwarding"]; + if (![[defaults stringForKey: @"MessageCheck"] length]) + [defaults setObject: defaultMessageCheck forKey: @"MessageCheck"]; + + // We propagate the loaded user defaults to other sogod instances + // which will cache them in SOGoCache (including for the instance + // that actually posts the notification) d = [NSMutableDictionary dictionary]; [d setObject: values forKey: @"values"]; [d setObject: login forKey: @"uid"];