diff options
-rw-r--r-- | hcid/adapter.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/hcid/adapter.c b/hcid/adapter.c index 88cd6728..b6cfd269 100644 --- a/hcid/adapter.c +++ b/hcid/adapter.c @@ -3545,6 +3545,36 @@ static DBusHandlerResult find_device(DBusConnection *conn, return send_message_and_unref(conn, reply); } +static DBusHandlerResult register_agent(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + char *agent; + + if (!hcid_dbus_use_experimental()) + return error_unknown_method(conn, msg); + + if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &agent, + DBUS_TYPE_INVALID)) + return error_invalid_arguments(conn, msg, NULL); + + return DBUS_HANDLER_RESULT_HANDLED; +} + +static DBusHandlerResult unregister_agent(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + char *agent; + + if (!hcid_dbus_use_experimental()) + return error_unknown_method(conn, msg); + + if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &agent, + DBUS_TYPE_INVALID)) + return error_invalid_arguments(conn, msg, NULL); + + return DBUS_HANDLER_RESULT_HANDLED; +} + const char *major_class_str(uint32_t class) { uint8_t index = (class >> 8) & 0x1F; @@ -3646,6 +3676,8 @@ static DBusMethodVTable adapter_methods[] = { { "CreateDevice", create_device, "s", "o" }, { "RemoveDevice", remove_device, "o", "" }, { "FindDevice", find_device, "s", "o" }, + { "RegisterAgent", register_agent, "o", "" }, + { "UnregisterAgent", unregister_agent, "o", "" }, /* Deprecated */ { "GetInfo", adapter_get_info, "", "a{sv}" }, |