summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cython/lockdown.pxi15
1 files changed, 12 insertions, 3 deletions
diff --git a/cython/lockdown.pxi b/cython/lockdown.pxi
index 6b88f9d..25edb4c 100644
--- a/cython/lockdown.pxi
+++ b/cython/lockdown.pxi
@@ -210,14 +210,23 @@ cdef class LockdownClient(PropertyListService):
210 raise 210 raise
211 211
212 cpdef set_value(self, bytes domain, bytes key, object value): 212 cpdef set_value(self, bytes domain, bytes key, object value):
213 cdef plist.plist_t c_node = plist.native_to_plist_t(value) 213 cdef:
214 plist.plist_t c_node = NULL
215 char* c_domain = NULL
216 char* c_key = NULL
217
218 c_node = plist.native_to_plist_t(value)
219 if domain is not None:
220 c_domain = domain
221 if key is not None:
222 c_key = key
214 try: 223 try:
215 self.handle_error(lockdownd_set_value(self._c_client, domain, key, c_node)) 224 self.handle_error(lockdownd_set_value(self._c_client, c_domain, c_key, c_node))
216 except BaseError, e: 225 except BaseError, e:
217 raise 226 raise
218 finally: 227 finally:
219 if c_node != NULL: 228 if c_node != NULL:
220 plist.plist_free(c_node) 229 c_node = NULL
221 230
222 cpdef remove_value(self, bytes domain, bytes key): 231 cpdef remove_value(self, bytes domain, bytes key):
223 self.handle_error(lockdownd_remove_value(self._c_client, domain, key)) 232 self.handle_error(lockdownd_remove_value(self._c_client, domain, key))