diff options
Diffstat (limited to 'src/lockdown.c')
| -rw-r--r-- | src/lockdown.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/lockdown.c b/src/lockdown.c index 05ecc49..3969868 100644 --- a/src/lockdown.c +++ b/src/lockdown.c | |||
| @@ -299,25 +299,29 @@ int lockdownd_init(iPhone *phone, lockdownd_client **control) | |||
| 299 | } | 299 | } |
| 300 | 300 | ||
| 301 | host_id = get_host_id(); | 301 | host_id = get_host_id(); |
| 302 | if (!host_id) host_id = lockdownd_generate_hostid(); | ||
| 303 | 302 | ||
| 304 | if (!is_device_known(public_key)){ | 303 | if (!is_device_known(public_key)) |
| 305 | ret = lockdownd_pair_device(*control, public_key, host_id); | 304 | ret = lockdownd_pair_device(*control, public_key, host_id); |
| 306 | }else{ | 305 | else |
| 307 | ret = 1; | 306 | ret = 1; |
| 307 | |||
| 308 | if (public_key) { | ||
| 309 | free(public_key); | ||
| 310 | public_key = NULL; | ||
| 308 | } | 311 | } |
| 309 | free(public_key); | ||
| 310 | public_key = NULL; | ||
| 311 | 312 | ||
| 312 | if (ret && host_id && lockdownd_start_SSL_session(*control, host_id)) { | 313 | if (ret && host_id && lockdownd_start_SSL_session(*control, host_id)) { |
| 313 | ret = 1; | 314 | ret = 1; |
| 314 | free(host_id); | ||
| 315 | host_id = NULL; | ||
| 316 | } else { | 315 | } else { |
| 317 | ret = 0; | 316 | ret = 0; |
| 318 | fprintf(stderr, "lockdownd_init: SSL Session opening failed, has libiphone-initconf been run?\n"); | 317 | fprintf(stderr, "lockdownd_init: SSL Session opening failed, has libiphone-initconf been run?\n"); |
| 319 | } | 318 | } |
| 320 | 319 | ||
| 320 | if (host_id) { | ||
| 321 | free(host_id); | ||
| 322 | host_id = NULL; | ||
| 323 | } | ||
| 324 | |||
| 321 | return ret; | 325 | return ret; |
| 322 | } | 326 | } |
| 323 | 327 | ||
