summaryrefslogtreecommitdiffstats
path: root/src/preflight.c
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2013-12-27 12:47:26 +0100
committerGravatar Nikias Bassen2013-12-27 12:47:26 +0100
commit0bfec4d45b29ac992a30061b8f7190ca8fdc9cbc (patch)
tree784bd482da6bb966e6bd68e3b0d2bfd1cf1a3ec9 /src/preflight.c
parent61d50ad1fbd12454baaec0531d4e75f8160d0579 (diff)
downloadusbmuxd-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.c25
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);