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
#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
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
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
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
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.