}
}
+#ifdef TIZEN_FEATURE_BLUEZ_MODIFY
+static void async_dbus_op_write_reply(struct async_dbus_op *op, int err,
+ const uint8_t *value, ssize_t length)
+{
+ const struct queue_entry *entry;
+ DBusMessage *reply;
+
+ op->id = 0;
+
+ for (entry = queue_get_entries(op->msgs); entry; entry = entry->next) {
+ DBusMessage *msg = entry->data;
+
+ if (err) {
+ reply = err > 0 ? create_gatt_dbus_error(msg, err) :
+ btd_error_failed(msg, strerror(-err));
+ if (err > 0)
+ dbus_message_append_args(reply,
+ DBUS_TYPE_BYTE, &err,
+ DBUS_TYPE_INVALID);
+ goto send_reply;
+ }
+
+ reply = g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
+ if (!reply) {
+ error("Failed to allocate D-Bus message reply");
+ return;
+ }
+
+ dbus_message_append_args(reply,
+ DBUS_TYPE_BYTE, &err,
+ DBUS_TYPE_INVALID);
+
+ if (length >= 0)
+ message_append_byte_array(reply, value, length);
+
+send_reply:
+ g_dbus_send_message(btd_get_dbus_connection(), reply);
+ }
+}
+#endif
+
static void read_op_cb(struct gatt_db_attribute *attrib, int err,
const uint8_t *value, size_t length,
void *user_data)
}
done:
+#ifdef TIZEN_FEATURE_BLUEZ_MODIFY
+ async_dbus_op_write_reply(op, err, NULL, -1);
+#else
async_dbus_op_reply(op, err, NULL, -1);
+#endif
}
static void write_cb(bool success, uint8_t att_ecode, void *user_data)