---
 src/service.c |   31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/src/service.c b/src/service.c
index ec1b1b9..8087477 100644
--- a/src/service.c
+++ b/src/service.c
@@ -2325,6 +2325,21 @@ static void process_request_queue(struct mms_service 
*service)
                                                bearer_idle_timeout, service);
 }
 
+static void dump_delivery_ind(struct mms_message *msg)
+{
+       char buf[128];
+
+       strftime(buf, 127, "%Y-%m-%dT%H:%M:%S%z", localtime(&msg->di.date));
+       buf[127] = '\0';
+
+       mms_info("MMS version: %u.%u\n", (msg->version & 0x70) >> 4,
+                                               msg->version & 0x0f);
+       mms_info("Msg ID: %s\n", msg->di.msgid);
+       mms_info("To: %s\n", msg->di.to);
+       mms_info("Date: %s\n", buf);
+       mms_info("Delivery Report status: %d\n", msg->di.dr_status);
+}
+
 static void dump_notification_ind(struct mms_message *msg)
 {
        char buf[128];
@@ -2370,6 +2385,22 @@ void mms_service_push_notify(struct mms_service *service,
        if (mms_message_decode(data + nread, len - nread, msg) == FALSE)
                goto error;
 
+       if (msg->type == MMS_MESSAGE_TYPE_DELIVERY_IND) {
+               msg->uuid = g_strdup(uuid);
+
+               dump_delivery_ind(msg);
+
+               meta = mms_store_meta_open(service->identity, uuid);
+               if (meta == NULL)
+                       goto error;
+
+               g_key_file_set_string(meta, "info", "state", "notification");
+
+               mms_store_meta_close(service->identity, uuid, meta, TRUE);
+
+               return;
+       }
+
        if (msg->type != MMS_MESSAGE_TYPE_NOTIFICATION_IND)
                goto error;
 
-- 
1.7.9.5

_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to