Diff between 31ef868be54dc6fcfde61c6d96e0905f0a5dc1bd and 9a117c332e2798ca18088044d07b26afe946f57b

Changed Files

File Additions Deletions Status
obexd/plugins/mas.c +4 -0 modified
obexd/plugins/messages-dummy.c +7 -0 modified
obexd/plugins/messages-tracker.c +7 -0 modified
obexd/plugins/messages.h +15 -0 modified

Full Patch

diff --git a/obexd/plugins/mas.c b/obexd/plugins/mas.c
index c47465f..8105413 100644
--- a/obexd/plugins/mas.c
+++ b/obexd/plugins/mas.c
@@ -47,6 +47,7 @@
 #include "messages.h"
 
 #define READ_STATUS_REQ 0
+#define DELETE_STATUS_REQ 1
 
 /* Channel number according to bluez doc/assigned-numbers.txt */
 #define MAS_CHANNEL	16
@@ -696,6 +697,9 @@ static void *message_set_status_open(const char *name, int oflag, mode_t mode,
 	if (indicator == READ_STATUS_REQ)
 		*err = messages_set_read(mas->backend_data, name, value,
 							set_status_cb, mas);
+	else if (indicator == DELETE_STATUS_REQ)
+		*err = messages_set_delete(mas->backend_data, name, value,
+							set_status_cb, mas);
 	else
 		*err = -EBADR;
 
diff --git a/obexd/plugins/messages-dummy.c b/obexd/plugins/messages-dummy.c
index 78e20ae..e498784 100644
--- a/obexd/plugins/messages-dummy.c
+++ b/obexd/plugins/messages-dummy.c
@@ -359,6 +359,13 @@ int messages_set_read(void *session, const char *handle, uint8_t value,
 	return -ENOSYS;
 }
 
+int messages_set_delete(void *session, const char *handle, uint8_t value,
+					messages_set_delete_cb callback,
+					void *user_data)
+{
+	return -ENOSYS;
+}
+
 void messages_abort(void *s)
 {
 	struct session *session = s;
diff --git a/obexd/plugins/messages-tracker.c b/obexd/plugins/messages-tracker.c
index 1516dc7..2c7541b 100644
--- a/obexd/plugins/messages-tracker.c
+++ b/obexd/plugins/messages-tracker.c
@@ -333,6 +333,13 @@ int messages_set_read(void *session, const char *handle, uint8_t value,
 	return -ENOSYS;
 }
 
+int messages_set_delete(void *session, const char *handle, uint8_t value,
+					messages_set_delete_cb callback,
+					void *user_data)
+{
+	return -ENOSYS;
+}
+
 void messages_abort(void *session)
 {
 }
diff --git a/obexd/plugins/messages.h b/obexd/plugins/messages.h
index 45579d3..a514514 100644
--- a/obexd/plugins/messages.h
+++ b/obexd/plugins/messages.h
@@ -293,6 +293,21 @@ typedef void (*messages_set_read_cb)(void *session, int err, void *user_data);
 int messages_set_read(void *session, const char *handle, uint8_t value,
 				messages_set_read_cb callback, void *user_data);
 
+/* Informs Message Server to modify delete status of a given message.
+ *
+ * session: Backend session.
+ * handle: Unique identifier to the message.
+ * value: Indicates the new value of the delete status for a given message.
+ * Callback shall be called for every delete status update request
+ *	recieved from MCE.
+ * user_data: User data if any to be sent.
+ */
+typedef void (*messages_set_delete_cb)(void *session, int err, void *user_data);
+
+int messages_set_delete(void *session, const char *handle, uint8_t value,
+					messages_set_delete_cb callback,
+					void *user_data);
+
 /* Aborts currently pending request.
  *
  * session: Backend session.