---
src/mmsutil.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/src/mmsutil.c b/src/mmsutil.c
index a9a12eb..7042276 100644
--- a/src/mmsutil.c
+++ b/src/mmsutil.c
@@ -964,6 +964,24 @@ static gboolean decode_send_req(struct wsp_header_iter
*iter,
return TRUE;
}
+static gboolean decode_delivery_ind(struct wsp_header_iter *iter,
+ struct mms_message *out)
+{
+ return mms_parse_headers(iter, MMS_HEADER_MMS_VERSION,
+ HEADER_FLAG_MANDATORY | HEADER_FLAG_PRESET_POS,
+ &out->version,
+ MMS_HEADER_MESSAGE_ID,
+ HEADER_FLAG_MANDATORY, &out->di.msgid,
+ MMS_HEADER_TO,
+ HEADER_FLAG_MANDATORY, &out->di.to,
+ MMS_HEADER_DATE,
+ HEADER_FLAG_MANDATORY, &out->di.date,
+ MMS_HEADER_STATUS,
+ HEADER_FLAG_MANDATORY, &out->di.dr_status,
+ MMS_HEADER_INVALID);
+}
+
+
#define CHECK_WELL_KNOWN_HDR(hdr) \
if (wsp_header_iter_next(&iter) == FALSE) \
return FALSE; \
@@ -1016,7 +1034,7 @@ gboolean mms_message_decode(const unsigned char *pdu,
case MMS_MESSAGE_TYPE_ACKNOWLEDGE_IND:
return FALSE;
case MMS_MESSAGE_TYPE_DELIVERY_IND:
- return FALSE;
+ return decode_delivery_ind(&iter, out);
}
return FALSE;
@@ -1051,6 +1069,8 @@ void mms_message_free(struct mms_message *msg)
case MMS_MESSAGE_TYPE_ACKNOWLEDGE_IND:
break;
case MMS_MESSAGE_TYPE_DELIVERY_IND:
+ g_free(msg->di.msgid);
+ g_free(msg->di.to);
break;
}
--
1.7.9.5
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono