summaryrefslogtreecommitdiffstats
path: root/src/lockdown.c
diff options
context:
space:
mode:
authorGravatar Martin Szulecki2010-01-21 11:54:02 +0100
committerGravatar Martin Szulecki2010-01-21 11:54:02 +0100
commitf725355489c4a203012ba74a58483945772e6578 (patch)
treebcfbfe4704fdbe07f54c54b6347a978eac0bc25f /src/lockdown.c
parentc9e2217059f561f87cf8b6af5067505f827c7297 (diff)
downloadlibimobiledevice-f725355489c4a203012ba74a58483945772e6578.tar.gz
libimobiledevice-f725355489c4a203012ba74a58483945772e6578.tar.bz2
Add LOCKDOWN_E_INVALID_SERVICE error and functionality
This error is returned if the service does not exist on the device. It comes handy to detect if for instance the AFC2 service is actually setup on a device or not.
Diffstat (limited to 'src/lockdown.c')
-rw-r--r--src/lockdown.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/lockdown.c b/src/lockdown.c
index 1befb72..8f15b3f 100644
--- a/src/lockdown.c
+++ b/src/lockdown.c
@@ -1262,9 +1262,18 @@ lockdownd_error_t lockdownd_start_service(lockdownd_client_t client, const char
1262 if (port && ret == LOCKDOWN_E_SUCCESS) 1262 if (port && ret == LOCKDOWN_E_SUCCESS)
1263 *port = port_loc; 1263 *port = port_loc;
1264 } 1264 }
1265 } 1265 } else {
1266 else
1267 ret = LOCKDOWN_E_START_SERVICE_FAILED; 1266 ret = LOCKDOWN_E_START_SERVICE_FAILED;
1267 plist_t error_node = plist_dict_get_item(dict, "Error");
1268 if (error_node && PLIST_STRING == plist_get_node_type(error_node)) {
1269 char *error = NULL;
1270 plist_get_string_val(error_node, &error);
1271 if (!strcmp(error, "InvalidService")) {
1272 ret = LOCKDOWN_E_INVALID_SERVICE;
1273 }
1274 free(error);
1275 }
1276 }
1268 1277
1269 plist_free(dict); 1278 plist_free(dict);
1270 dict = NULL; 1279 dict = NULL;