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"];