static int do_keychain_set_settings(const char *keychainName, SecKeychainSettings newKeychainSettings) { SecKeychainRef keychain = NULL; OSStatus result; if (keychainName) { keychain = keychain_open(keychainName); if (!keychain) { result = 1; goto cleanup; } } result = SecKeychainSetSettings(keychain, &newKeychainSettings); if (result) { sec_error("SecKeychainSetSettings %s: %s", keychainName ? keychainName : "<NULL>", sec_errstr(result)); } cleanup: if (keychain) CFRelease(keychain); return result; }
static void rb_set_keychain_settings(VALUE self, SecKeychainSettings *settings){ SecKeychainRef keychain=NULL; Data_Get_Struct(self, struct OpaqueSecKeychainRef, keychain); OSStatus result = SecKeychainSetSettings(keychain, settings); CheckOSStatusOrRaise(result); }