summaryrefslogtreecommitdiffstats
path: root/telephony-binding/telephony-binding.c
diff options
context:
space:
mode:
authorMatt Porter <mporter@konsulko.com>2017-05-24 11:47:22 -0400
committerMatt Porter <mporter@konsulko.com>2017-05-24 12:01:11 -0400
commit597ed5434f369ab614fa2ce543aab3f49101b5f1 (patch)
tree3bb30709ec98852495a9b4e94a88be153fb3ad5a /telephony-binding/telephony-binding.c
parent07502ed69e6d6a1830c168aada4c59ab0220bd24 (diff)
Add additional error checking/reporting to the telephony bindingdab_3.99.1dab/3.99.13.99.1
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 <mporter@konsulko.com>
Diffstat (limited to 'telephony-binding/telephony-binding.c')
-rw-r--r--telephony-binding/telephony-binding.c30
1 files changed, 20 insertions, 10 deletions
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;