diff options
| author | 2010-04-30 13:35:57 -0500 | |
|---|---|---|
| committer | 2012-03-20 23:25:55 +0100 | |
| commit | 3877711296cbfa4a0bcafc3c5560609a1ce2d079 (patch) | |
| tree | 751f1fd27ce3ee5d8dd9d748600381c0d2e5d6bd /cython/lockdown.pxi | |
| parent | 74943414c8e04a92f42dcbc4fac1599c7f9deed2 (diff) | |
| download | libimobiledevice-3877711296cbfa4a0bcafc3c5560609a1ce2d079.tar.gz libimobiledevice-3877711296cbfa4a0bcafc3c5560609a1ce2d079.tar.bz2 | |
More memory leak plugging. Some code cleanup too.
Diffstat (limited to 'cython/lockdown.pxi')
| -rw-r--r-- | cython/lockdown.pxi | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/cython/lockdown.pxi b/cython/lockdown.pxi index be9d25f..a904d12 100644 --- a/cython/lockdown.pxi +++ b/cython/lockdown.pxi | |||
| @@ -90,18 +90,17 @@ cdef class LockdownPairRecord: | |||
| 90 | cdef class LockdownClient(PropertyListService): | 90 | cdef class LockdownClient(PropertyListService): |
| 91 | def __cinit__(self, iDevice device not None, bytes label="", bool handshake=True, *args, **kwargs): | 91 | def __cinit__(self, iDevice device not None, bytes label="", bool handshake=True, *args, **kwargs): |
| 92 | cdef: | 92 | cdef: |
| 93 | iDevice dev = device | ||
| 94 | lockdownd_error_t err | 93 | lockdownd_error_t err |
| 95 | char* c_label = NULL | 94 | char* c_label = NULL |
| 96 | if label: | 95 | if label: |
| 97 | c_label = label | 96 | c_label = label |
| 98 | if handshake: | 97 | if handshake: |
| 99 | err = lockdownd_client_new_with_handshake(dev._c_dev, &self._c_client, c_label) | 98 | err = lockdownd_client_new_with_handshake(device._c_dev, &self._c_client, c_label) |
| 100 | else: | 99 | else: |
| 101 | err = lockdownd_client_new(dev._c_dev, &self._c_client, c_label) | 100 | err = lockdownd_client_new(device._c_dev, &self._c_client, c_label) |
| 102 | self.handle_error(err) | 101 | self.handle_error(err) |
| 103 | 102 | ||
| 104 | self.device = dev | 103 | self.device = device |
| 105 | 104 | ||
| 106 | def __dealloc__(self): | 105 | def __dealloc__(self): |
| 107 | cdef lockdownd_error_t err | 106 | cdef lockdownd_error_t err |
| @@ -117,15 +116,15 @@ cdef class LockdownClient(PropertyListService): | |||
| 117 | err = lockdownd_query_type(self._c_client, &c_type) | 116 | err = lockdownd_query_type(self._c_client, &c_type) |
| 118 | try: | 117 | try: |
| 119 | self.handle_error(err) | 118 | self.handle_error(err) |
| 119 | result = c_type | ||
| 120 | |||
| 121 | return result | ||
| 120 | except BaseError, e: | 122 | except BaseError, e: |
| 121 | raise | 123 | raise |
| 122 | finally: | 124 | finally: |
| 123 | if c_type != NULL: | 125 | if c_type != NULL: |
| 124 | result = c_type | ||
| 125 | stdlib.free(c_type) | 126 | stdlib.free(c_type) |
| 126 | 127 | ||
| 127 | return result | ||
| 128 | |||
| 129 | cpdef plist.Node get_value(self, bytes domain=None, bytes key=None): | 128 | cpdef plist.Node get_value(self, bytes domain=None, bytes key=None): |
| 130 | cdef: | 129 | cdef: |
| 131 | lockdownd_error_t err | 130 | lockdownd_error_t err |
| @@ -136,16 +135,18 @@ cdef class LockdownClient(PropertyListService): | |||
| 136 | c_domain = domain | 135 | c_domain = domain |
| 137 | if key is not None: | 136 | if key is not None: |
| 138 | c_key = key | 137 | c_key = key |
| 138 | |||
| 139 | err = lockdownd_get_value(self._c_client, c_domain, c_key, &c_node) | 139 | err = lockdownd_get_value(self._c_client, c_domain, c_key, &c_node) |
| 140 | |||
| 140 | try: | 141 | try: |
| 141 | self.handle_error(err) | 142 | self.handle_error(err) |
| 143 | |||
| 144 | return plist.plist_t_to_node(c_node) | ||
| 142 | except BaseError, e: | 145 | except BaseError, e: |
| 143 | if c_node != NULL: | 146 | if c_node != NULL: |
| 144 | plist.plist_free(c_node) | 147 | plist.plist_free(c_node) |
| 145 | raise | 148 | raise |
| 146 | 149 | ||
| 147 | return plist.plist_t_to_node(c_node) | ||
| 148 | |||
| 149 | cpdef set_value(self, bytes domain, bytes key, object value): | 150 | cpdef set_value(self, bytes domain, bytes key, object value): |
| 150 | cdef plist.plist_t c_node = plist.native_to_plist_t(value) | 151 | cdef plist.plist_t c_node = plist.native_to_plist_t(value) |
| 151 | try: | 152 | try: |
| @@ -175,11 +176,11 @@ cdef class LockdownClient(PropertyListService): | |||
| 175 | 176 | ||
| 176 | try: | 177 | try: |
| 177 | self.handle_error(lockdownd_start_service(self._c_client, c_service_name, &port)) | 178 | self.handle_error(lockdownd_start_service(self._c_client, c_service_name, &port)) |
| 179 | |||
| 180 | return port | ||
| 178 | except BaseError, e: | 181 | except BaseError, e: |
| 179 | raise | 182 | raise |
| 180 | 183 | ||
| 181 | return port | ||
| 182 | |||
| 183 | cpdef object get_service_client(self, object service_class): | 184 | cpdef object get_service_client(self, object service_class): |
| 184 | cdef: | 185 | cdef: |
| 185 | uint16_t port = 0 | 186 | uint16_t port = 0 |
| @@ -202,15 +203,15 @@ cdef class LockdownClient(PropertyListService): | |||
| 202 | err = lockdownd_start_session(self._c_client, host_id, &c_session_id, &ssl_enabled) | 203 | err = lockdownd_start_session(self._c_client, host_id, &c_session_id, &ssl_enabled) |
| 203 | try: | 204 | try: |
| 204 | self.handle_error(err) | 205 | self.handle_error(err) |
| 206 | |||
| 207 | session_id = c_session_id | ||
| 208 | return (session_id, ssl_enabled) | ||
| 205 | except BaseError, e: | 209 | except BaseError, e: |
| 206 | raise | 210 | raise |
| 207 | finally: | 211 | finally: |
| 208 | if c_session_id != NULL: | 212 | if c_session_id != NULL: |
| 209 | session_id = c_session_id | ||
| 210 | stdlib.free(c_session_id) | 213 | stdlib.free(c_session_id) |
| 211 | 214 | ||
| 212 | return (session_id, ssl_enabled) | ||
| 213 | |||
| 214 | cpdef stop_session(self, bytes session_id): | 215 | cpdef stop_session(self, bytes session_id): |
| 215 | self.handle_error(lockdownd_stop_session(self._c_client, session_id)) | 216 | self.handle_error(lockdownd_stop_session(self._c_client, session_id)) |
| 216 | 217 | ||
