diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2013-12-16 12:30:13 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2013-12-16 12:37:20 +0100 |
commit | 004924b0385a503520f26e499444f8c8c42616a6 (patch) | |
tree | b4098bd8d0d49a0e0143d59d7b5d48176641318d /src | |
parent | 5b078edc214653cf28e172230e50eab1f647bbbd (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.
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-broadband-modem-qmi.c | 17 |
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); } |