From c61c5e13398fb2839b86c1570a34ea6767d73d30 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 2 Feb 2017 11:48:21 +0100 Subject: [PATCH] Only create an IMEE if lime available --- coreapi/linphonecore.c | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index e75756d84..7fe1dff33 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -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); }