@@ -3180,6 +3180,11 @@ static void property_set_mode(struct btd_adapter *adapter, uint32_t setting,
param = &mode;
len = sizeof(mode);
break;
+ case MGMT_SETTING_CONNECTABLE:
+ opcode = MGMT_OP_SET_CONNECTABLE;
+ param = &mode;
+ len = sizeof(mode);
+ break;
default:
goto failed;
}
@@ -3576,6 +3581,24 @@ static gboolean property_get_version(const GDBusPropertyTable *property,
return TRUE;
}
+static gboolean property_get_connectable(const GDBusPropertyTable *property,
+ DBusMessageIter *iter, void *user_data)
+{
+ struct btd_adapter *adapter = user_data;
+
+ return property_get_mode(adapter, MGMT_SETTING_CONNECTABLE, iter);
+}
+
+static void property_set_connectable(const GDBusPropertyTable *property,
+ DBusMessageIter *iter,
+ GDBusPendingPropertySet id,
+ void *user_data)
+{
+ struct btd_adapter *adapter = user_data;
+
+ property_set_mode(adapter, MGMT_SETTING_CONNECTABLE, iter, id);
+}
+
static DBusMessage *remove_device(DBusConnection *conn,
DBusMessage *msg, void *user_data)
{
@@ -3917,6 +3940,8 @@ static const GDBusPropertyTable adapter_properties[] = {
{ "Name", "s", property_get_name },
{ "Alias", "s", property_get_alias, property_set_alias },
{ "Class", "u", property_get_class },
+ { "Connectable", "b", property_get_connectable,
+ property_set_connectable },
{ "Powered", "b", property_get_powered, property_set_powered },
{ "PowerState", "s", property_get_power_state },
{ "Discoverable", "b", property_get_discoverable,