Only create an IMEE if lime available

This commit is contained in:
Benjamin Reis 2017-02-02 11:48:21 +01:00
parent 37cab64a72
commit c61c5e1339

View file

@ -2142,28 +2142,31 @@ bool_t linphone_core_get_guess_hostname(LinphoneCore *lc){
}
void linphone_core_enable_lime(LinphoneCore *lc, LinphoneLimeState val){
if (linphone_core_ready(lc)){
lp_config_set_int(lc->config,"sip","lime",val);
}
LinphoneImEncryptionEngine *imee = linphone_im_encryption_engine_new(lc);
LinphoneImEncryptionEngineCbs *cbs = linphone_im_encryption_engine_get_callbacks(imee);
linphone_im_encryption_engine_cbs_set_process_incoming_message(cbs, lime_im_encryption_engine_process_incoming_message_cb);
linphone_im_encryption_engine_cbs_set_process_downloading_file(cbs, lime_im_encryption_engine_process_downloading_file_cb);
if (val != LinphoneLimeDisabled) {
linphone_im_encryption_engine_cbs_set_process_outgoing_message(cbs, lime_im_encryption_engine_process_outgoing_message_cb);
linphone_im_encryption_engine_cbs_set_process_uploading_file(cbs, lime_im_encryption_engine_process_uploading_file_cb);
linphone_im_encryption_engine_cbs_set_is_encryption_enabled_for_file_transfer(cbs, lime_im_encryption_engine_is_file_encryption_enabled_cb);
linphone_im_encryption_engine_cbs_set_generate_file_transfer_key(cbs, lime_im_encryption_engine_generate_file_transfer_key_cb);
} else {
linphone_im_encryption_engine_cbs_set_process_outgoing_message(cbs, NULL);
linphone_im_encryption_engine_cbs_set_process_uploading_file(cbs, NULL);
linphone_im_encryption_engine_cbs_set_is_encryption_enabled_for_file_transfer(cbs, NULL);
linphone_im_encryption_engine_cbs_set_generate_file_transfer_key(cbs, NULL);
}
linphone_core_set_im_encryption_engine(lc, imee);
if(lime_is_available()){
if (linphone_core_ready(lc)){
lp_config_set_int(lc->config,"sip","lime",val);
}
linphone_im_encryption_engine_cbs_set_process_incoming_message(cbs, lime_im_encryption_engine_process_incoming_message_cb);
linphone_im_encryption_engine_cbs_set_process_downloading_file(cbs, lime_im_encryption_engine_process_downloading_file_cb);
if (val != LinphoneLimeDisabled) {
linphone_im_encryption_engine_cbs_set_process_outgoing_message(cbs, lime_im_encryption_engine_process_outgoing_message_cb);
linphone_im_encryption_engine_cbs_set_process_uploading_file(cbs, lime_im_encryption_engine_process_uploading_file_cb);
linphone_im_encryption_engine_cbs_set_is_encryption_enabled_for_file_transfer(cbs, lime_im_encryption_engine_is_file_encryption_enabled_cb);
linphone_im_encryption_engine_cbs_set_generate_file_transfer_key(cbs, lime_im_encryption_engine_generate_file_transfer_key_cb);
} else {
linphone_im_encryption_engine_cbs_set_process_outgoing_message(cbs, NULL);
linphone_im_encryption_engine_cbs_set_process_uploading_file(cbs, NULL);
linphone_im_encryption_engine_cbs_set_is_encryption_enabled_for_file_transfer(cbs, NULL);
linphone_im_encryption_engine_cbs_set_generate_file_transfer_key(cbs, NULL);
}
linphone_core_set_im_encryption_engine(lc, imee);
}
linphone_im_encryption_engine_unref(imee);
}