diff options
| -rw-r--r-- | src/lockdown.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lockdown.c b/src/lockdown.c index b6289ed..d717c01 100644 --- a/src/lockdown.c +++ b/src/lockdown.c | |||
| @@ -719,6 +719,8 @@ lockdownd_error_t lockdownd_pair(lockdownd_client_t client, char *host_id) | |||
| 719 | gnutls_datum_t root_cert = { NULL, 0 }; | 719 | gnutls_datum_t root_cert = { NULL, 0 }; |
| 720 | gnutls_datum_t public_key = { NULL, 0 }; | 720 | gnutls_datum_t public_key = { NULL, 0 }; |
| 721 | 721 | ||
| 722 | char *host_id_loc = host_id; | ||
| 723 | |||
| 722 | ret = lockdownd_get_device_public_key(client, &public_key); | 724 | ret = lockdownd_get_device_public_key(client, &public_key); |
| 723 | if (ret != LOCKDOWN_E_SUCCESS) { | 725 | if (ret != LOCKDOWN_E_SUCCESS) { |
| 724 | log_debug_msg("%s: device refused to send public key.\n", __func__); | 726 | log_debug_msg("%s: device refused to send public key.\n", __func__); |
| @@ -732,6 +734,10 @@ lockdownd_error_t lockdownd_pair(lockdownd_client_t client, char *host_id) | |||
| 732 | return ret; | 734 | return ret; |
| 733 | } | 735 | } |
| 734 | 736 | ||
| 737 | if (!host_id) { | ||
| 738 | userpref_get_host_id(&host_id_loc); | ||
| 739 | } | ||
| 740 | |||
| 735 | /* Setup Pair request plist */ | 741 | /* Setup Pair request plist */ |
| 736 | dict = plist_new_dict(); | 742 | dict = plist_new_dict(); |
| 737 | dict_record = plist_new_dict(); | 743 | dict_record = plist_new_dict(); |
| @@ -739,7 +745,7 @@ lockdownd_error_t lockdownd_pair(lockdownd_client_t client, char *host_id) | |||
| 739 | 745 | ||
| 740 | plist_dict_insert_item(dict_record, "DeviceCertificate", plist_new_data((const char*)device_cert.data, device_cert.size)); | 746 | plist_dict_insert_item(dict_record, "DeviceCertificate", plist_new_data((const char*)device_cert.data, device_cert.size)); |
| 741 | plist_dict_insert_item(dict_record, "HostCertificate", plist_new_data((const char*)host_cert.data, host_cert.size)); | 747 | plist_dict_insert_item(dict_record, "HostCertificate", plist_new_data((const char*)host_cert.data, host_cert.size)); |
| 742 | plist_dict_insert_item(dict_record, "HostID", plist_new_string(host_id)); | 748 | plist_dict_insert_item(dict_record, "HostID", plist_new_string(host_id_loc)); |
| 743 | plist_dict_insert_item(dict_record, "RootCertificate", plist_new_data((const char*)root_cert.data, root_cert.size)); | 749 | plist_dict_insert_item(dict_record, "RootCertificate", plist_new_data((const char*)root_cert.data, root_cert.size)); |
| 744 | 750 | ||
| 745 | plist_dict_insert_item(dict, "Request", plist_new_string("Pair")); | 751 | plist_dict_insert_item(dict, "Request", plist_new_string("Pair")); |
| @@ -749,6 +755,10 @@ lockdownd_error_t lockdownd_pair(lockdownd_client_t client, char *host_id) | |||
| 749 | plist_free(dict); | 755 | plist_free(dict); |
| 750 | dict = NULL; | 756 | dict = NULL; |
| 751 | 757 | ||
| 758 | if (!host_id) { | ||
| 759 | free(host_id_loc); | ||
| 760 | } | ||
| 761 | |||
| 752 | if (ret != LOCKDOWN_E_SUCCESS) | 762 | if (ret != LOCKDOWN_E_SUCCESS) |
| 753 | return ret; | 763 | return ret; |
| 754 | 764 | ||
