diff options
author | Nikias Bassen | 2013-12-27 12:47:26 +0100 |
---|---|---|
committer | Nikias Bassen | 2013-12-27 12:47:26 +0100 |
commit | 0bfec4d45b29ac992a30061b8f7190ca8fdc9cbc (patch) | |
tree | 784bd482da6bb966e6bd68e3b0d2bfd1cf1a3ec9 /src/preflight.c | |
parent | 61d50ad1fbd12454baaec0531d4e75f8160d0579 (diff) | |
download | usbmuxd-0bfec4d45b29ac992a30061b8f7190ca8fdc9cbc.tar.gz usbmuxd-0bfec4d45b29ac992a30061b8f7190ca8fdc9cbc.tar.bz2 |
preflight: check for device record before trying to read host id
Diffstat (limited to 'src/preflight.c')
-rw-r--r-- | src/preflight.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/preflight.c b/src/preflight.c index b011344..5198d8c 100644 --- a/src/preflight.c +++ b/src/preflight.c @@ -161,17 +161,22 @@ retry: int is_device_paired = 0; char *host_id = NULL; - config_device_record_get_host_id(dev->udid, &host_id); - lerr = lockdownd_start_session(lockdown, host_id, NULL, NULL); - free(host_id); - if (lerr == LOCKDOWN_E_SUCCESS) { - usbmuxd_log(LL_INFO, "%s: StartSession success for device %s", __func__, _dev->udid); - usbmuxd_log(LL_INFO, "%s: Finished preflight on device %s", __func__, _dev->udid); - client_device_add(info); - goto leave; - } + if (config_has_device_record(dev->udid)) { + config_device_record_get_host_id(dev->udid, &host_id); + lerr = lockdownd_start_session(lockdown, host_id, NULL, NULL); + if (host_id) + free(host_id); + if (lerr == LOCKDOWN_E_SUCCESS) { + usbmuxd_log(LL_INFO, "%s: StartSession success for device %s", __func__, _dev->udid); + usbmuxd_log(LL_INFO, "%s: Finished preflight on device %s", __func__, _dev->udid); + client_device_add(info); + goto leave; + } - usbmuxd_log(LL_INFO, "%s: StartSession failed on device %s, lockdown error %d", __func__, _dev->udid, lerr); + usbmuxd_log(LL_INFO, "%s: StartSession failed on device %s, lockdown error %d", __func__, _dev->udid, lerr); + } else { + lerr = LOCKDOWN_E_INVALID_HOST_ID; + } switch (lerr) { case LOCKDOWN_E_INVALID_HOST_ID: usbmuxd_log(LL_INFO, "%s: Device %s is not paired with this host.", __func__, _dev->udid); |