From 597ed5434f369ab614fa2ce543aab3f49101b5f1 Mon Sep 17 00:00:00 2001 From: Matt Porter Date: Wed, 24 May 2017 11:47:22 -0400 Subject: Add additional error checking/reporting to the telephony binding Adds additional error checking and reporting to the binding so that errors resulting from lack of a telephony modem can be reported at init. This fixes the issue where the phone app crashes and the afb-daemon can only report a segfault on start. AGL-Bug: SPEC-621 Change-Id: Ie3e12cb69a2a04cf7308e6bd244add581b8578db Signed-off-by: Matt Porter --- telephony-binding/telephony-binding.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'telephony-binding/telephony-binding.c') diff --git a/telephony-binding/telephony-binding.c b/telephony-binding/telephony-binding.c index e3c6d2f..d58aeab 100644 --- a/telephony-binding/telephony-binding.c +++ b/telephony-binding/telephony-binding.c @@ -141,16 +141,26 @@ static int ofono_init(void) /* Start the main loop thread */ pthread_create(&tid, NULL, main_loop_thread, NULL); - ofono_manager_init(interface); - const gchar *modem_path = ofono_manager_get_default_modem_path(); - DEBUG(interface, "modem_path: %s\n", modem_path); - vcm = ofono_voicecallmanager_init(interface, modem_path, - incoming_call_cb, - dialing_call_cb, - terminated_call_cb); - if (!vcm) { - ERROR(interface, "Failed to initialize voice call manager\n"); - ret = -1; + ret = ofono_manager_init(interface); + if (ret == 0) { + const gchar *modem_path = ofono_manager_get_default_modem_path(); + if (modem_path) { + DEBUG(interface, "modem_path: %s\n", modem_path); + vcm = ofono_voicecallmanager_init(interface, modem_path, + incoming_call_cb, + dialing_call_cb, + terminated_call_cb); + if (!vcm) { + ERROR(interface, "[telephony] failed to initialize voice call manager\n"); + ret = -1; + } + } else { + ERROR(interface, "[telephony] default modem not set\n"); + ret = -1; + } + } else { + ERROR(interface, "[telephony] failed to initialize ofono manager: " \ + "HFP device not connected or Bluetooth disabled\n"); } return ret; -- cgit 1.2.3-korg