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.
This commit is contained in:
Aleksander Morgado
2013-12-16 12:30:13 +01:00
parent 5b078edc21
commit 004924b038

View File

@@ -7447,7 +7447,7 @@ messaging_disable_unsolicited_events_finish (MMIfaceModemMessaging *_self,
MMBroadbandModemQmi *self = MM_BROADBAND_MODEM_QMI (_self); MMBroadbandModemQmi *self = MM_BROADBAND_MODEM_QMI (_self);
/* Handle fallback */ /* 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); return iface_modem_messaging_parent->disable_unsolicited_events_finish (_self, res, error);
} }
@@ -7556,6 +7556,21 @@ messaging_disable_unsolicited_events (MMIfaceModemMessaging *_self,
/* Handle fallback */ /* Handle fallback */
if (self->priv->messaging_fallback_at) { 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); return iface_modem_messaging_parent->disable_unsolicited_events (_self, callback, user_data);
} }