summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2013-08-19 11:58:05 +0200
committerAleksander Morgado <aleksander@lanedo.com>2013-10-25 19:47:19 +0200
commitaba7efb6155a15298689211053b47e725b25e66d (patch)
tree6112d65b48155858fdf501120bb67a6c88c1c04a
parente493292b7a1a0648d058147aca0022b64538653b (diff)
downloadModemManager-aba7efb6155a15298689211053b47e725b25e66d.tar.gz
broadband-modem-qmi: add CDMA SMS parts if found
-rw-r--r--src/mm-broadband-modem-qmi.c49
1 files changed, 25 insertions, 24 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index d05d71893..9caec6317 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -41,6 +41,7 @@
#include "mm-bearer-qmi.h"
#include "mm-sms-qmi.h"
#include "mm-sms-part-3gpp.h"
+#include "mm-sms-part-cdma.h"
static void iface_modem_init (MMIfaceModem *iface);
static void iface_modem_3gpp_init (MMIfaceModem3gpp *iface);
@@ -6847,43 +6848,43 @@ add_new_read_sms_part (MMIfaceModemMessaging *self,
QmiWmsMessageFormat format,
GArray *data)
{
+ MMSmsPart *part = NULL;
+ GError *error = NULL;
+
switch (format) {
case QMI_WMS_MESSAGE_FORMAT_CDMA:
- mm_dbg ("Skipping CDMA messages for now...");
- break;
- case QMI_WMS_MESSAGE_FORMAT_MWI:
- mm_dbg ("Don't know how to process 'message waiting indicator' messages");
+ part = mm_sms_part_cdma_new_from_binary_pdu (index,
+ (guint8 *)data->data,
+ data->len,
+ &error);
+
break;
case QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_POINT_TO_POINT:
- case QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_BROADCAST: {
- MMSmsPart *part;
- GError *error = NULL;
-
+ case QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_BROADCAST:
part = mm_sms_part_3gpp_new_from_binary_pdu (index,
(guint8 *)data->data,
data->len,
&error);
- if (part) {
- mm_dbg ("Correctly parsed PDU (%d)",
- index);
- mm_iface_modem_messaging_take_part (self,
- part,
- mm_sms_state_from_qmi_message_tag (tag),
- mm_sms_storage_from_qmi_storage_type (storage));
- } else {
- /* Don't treat the error as critical */
- mm_dbg ("Error parsing PDU (%d): %s",
- index,
- error->message);
- g_error_free (error);
- }
-
break;
- }
+ case QMI_WMS_MESSAGE_FORMAT_MWI:
+ mm_dbg ("Don't know how to process 'message waiting indicator' messages");
+ break;
default:
mm_dbg ("Unhandled message format '%u'", format);
break;
}
+
+ if (part) {
+ mm_dbg ("Correctly parsed PDU (%d)", index);
+ mm_iface_modem_messaging_take_part (self,
+ part,
+ mm_sms_state_from_qmi_message_tag (tag),
+ mm_sms_storage_from_qmi_storage_type (storage));
+ } else if (error) {
+ /* Don't treat the error as critical */
+ mm_dbg ("Error parsing PDU (%d): %s", index, error->message);
+ g_error_free (error);
+ }
}
static void