aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2013-12-16 12:30:13 +0100
committerAleksander Morgado <aleksander@lanedo.com>2013-12-16 12:37:20 +0100
commit004924b0385a503520f26e499444f8c8c42616a6 (patch)
treeb4098bd8d0d49a0e0143d59d7b5d48176641318d
parent5b078edc214653cf28e172230e50eab1f647bbbd (diff)
broadband-modem-qmi: fix segfault when using AT-fallback mode for messaging
The default broadband modem implementation doesn't have a method to disable unsolicited messages for SMS.
-rw-r--r--src/mm-broadband-modem-qmi.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index 9caec631..1efeb5a8 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -7447,7 +7447,7 @@ messaging_disable_unsolicited_events_finish (MMIfaceModemMessaging *_self,
MMBroadbandModemQmi *self = MM_BROADBAND_MODEM_QMI (_self);
/* Handle fallback */
- if (self->priv->messaging_fallback_at) {
+ if (self->priv->messaging_fallback_at && iface_modem_messaging_parent->disable_unsolicited_events_finish) {
return iface_modem_messaging_parent->disable_unsolicited_events_finish (_self, res, error);
}
@@ -7556,6 +7556,21 @@ messaging_disable_unsolicited_events (MMIfaceModemMessaging *_self,
/* Handle fallback */
if (self->priv->messaging_fallback_at) {
+ /* Generic implementation doesn't actually have a method to disable
+ * unsolicited messaging events */
+ if (!iface_modem_messaging_parent->disable_unsolicited_events) {
+ GSimpleAsyncResult *result;
+
+ result = g_simple_async_result_new (G_OBJECT (self),
+ callback,
+ user_data,
+ messaging_disable_unsolicited_events);
+ g_simple_async_result_set_op_res_gboolean (result, TRUE);
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
+ return;
+ }
+
return iface_modem_messaging_parent->disable_unsolicited_events (_self, callback, user_data);
}