diff options
-rw-r--r-- | plugins/huawei/mm-broadband-modem-huawei.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/plugins/huawei/mm-broadband-modem-huawei.c b/plugins/huawei/mm-broadband-modem-huawei.c index 5cac1fdc..0ee81be3 100644 --- a/plugins/huawei/mm-broadband-modem-huawei.c +++ b/plugins/huawei/mm-broadband-modem-huawei.c @@ -1203,11 +1203,21 @@ modem_cdma_setup_unsolicited_events (MMIfaceModemCdma *self, user_data, modem_cdma_setup_unsolicited_events); - /* Chain up parent's setup */ - iface_modem_cdma_parent->setup_unsolicited_events ( - self, - (GAsyncReadyCallback)parent_cdma_setup_unsolicited_events_ready, - result); + /* Chain up parent's setup if needed */ + if (iface_modem_cdma_parent->setup_unsolicited_events && + iface_modem_cdma_parent->setup_unsolicited_events_finish) { + iface_modem_cdma_parent->setup_unsolicited_events ( + self, + (GAsyncReadyCallback)parent_cdma_setup_unsolicited_events_ready, + result); + return; + } + + /* Otherwise just run our setup and complete */ + set_cdma_unsolicited_events_handlers (MM_BROADBAND_MODEM_HUAWEI (self), TRUE); + g_simple_async_result_set_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (result), TRUE); + g_simple_async_result_complete_in_idle (result); + g_object_unref (result); } static void |