result(0, value, len, user_data);
}
+static void proxy_write_reply(const DBusError *derr, void *user_data)
+{
+ if (derr)
+ DBG("Write reply: %s", derr->message);
+}
+
+static void proxy_write_cb(struct btd_attribute *attr,
+ const uint8_t *value, size_t len)
+{
+ GDBusProxy *proxy;
+
+ proxy = g_hash_table_lookup(proxy_hash, attr);
+ if (!proxy)
+ /* FIXME: Attribute not found */
+ return;
+
+ g_dbus_proxy_set_property_array(proxy, "Value", DBUS_TYPE_BYTE,
+ value, len, proxy_write_reply,
+ NULL, NULL);
+
+ DBG("Server: Write characteristic callback %s",
+ g_dbus_proxy_get_path(proxy));
+}
+
static int register_external_service(const struct external_app *eapp,
GDBusProxy *proxy)
{
* Reference table 3.5: Characteristic Properties bit field.
*/
- attr = btd_gatt_add_char(&uuid, 0x00, proxy_read_cb, NULL);
+ attr = btd_gatt_add_char(&uuid, 0x00, proxy_read_cb,
+ proxy_write_cb);
if (attr == NULL)
return -EINVAL;