From 12464916d39fa88f2ade96ccbc1d8efd6ea37789 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Wed, 30 Jul 2014 07:53:51 +0300 Subject: [PATCH] core: Remove always_pairable feature We've decided to have pairable (soon to be renamed to bondable) always set after all, so neither the always_pairable variable nor the AlwaysPairable config option is needed. --- src/adapter.c | 82 ++------------------------------------------------- src/adapter.h | 1 - src/agent.c | 7 ----- src/agent.h | 1 - src/hcid.h | 1 - src/main.c | 9 ------ 6 files changed, 2 insertions(+), 99 deletions(-) diff --git a/src/adapter.c b/src/adapter.c index 14b387474..b216a281f 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -440,22 +440,6 @@ static void trigger_passive_scanning(struct btd_adapter *adapter); static bool set_mode(struct btd_adapter *adapter, uint16_t opcode, uint8_t mode); -static void update_pairable(struct btd_adapter *adapter) -{ - if (main_opts.always_pairable) - return; - - if ((adapter->current_settings & MGMT_SETTING_DISCOVERABLE) && - agent_default_available()) { - if (!(adapter->current_settings & MGMT_SETTING_PAIRABLE) && - agent_default_available()) - set_mode(adapter, MGMT_OP_SET_PAIRABLE, 0x01); - } else { - if (adapter->current_settings & MGMT_SETTING_PAIRABLE) - set_mode(adapter, MGMT_OP_SET_PAIRABLE, 0x00); - } -} - static void settings_changed(struct btd_adapter *adapter, uint32_t settings) { uint32_t changed_mask; @@ -497,7 +481,6 @@ static void settings_changed(struct btd_adapter *adapter, uint32_t settings) if (changed_mask & MGMT_SETTING_DISCOVERABLE) { g_dbus_emit_property_changed(dbus_conn, adapter->path, ADAPTER_INTERFACE, "Discoverable"); - update_pairable(adapter); store_adapter_info(adapter); } @@ -620,13 +603,6 @@ static void trigger_pairable_timeout(struct btd_adapter *adapter) if (!(adapter->current_settings & MGMT_SETTING_PAIRABLE)) return; - /* - * If pairable is tied to connectable & discoverable then we - * don't have a separate pairable timeout. - */ - if (!main_opts.always_pairable) - return; - if (adapter->pairable_timeout > 0) g_timeout_add_seconds(adapter->pairable_timeout, pairable_timeout_handler, adapter); @@ -2137,13 +2113,6 @@ static void property_set_discoverable_timeout( g_dbus_pending_property_success(id); - if (!main_opts.always_pairable) { - adapter->pairable_timeout = value; - g_dbus_emit_property_changed(dbus_conn, adapter->path, - ADAPTER_INTERFACE, - "PairableTimeout"); - } - store_adapter_info(adapter); g_dbus_emit_property_changed(dbus_conn, adapter->path, @@ -2159,9 +2128,6 @@ static gboolean property_get_pairable(const GDBusPropertyTable *property, { struct btd_adapter *adapter = user_data; - if (!main_opts.always_pairable) - return property_get_discoverable(property, iter, user_data); - return property_get_mode(adapter, MGMT_SETTING_PAIRABLE, iter); } @@ -2171,11 +2137,6 @@ static void property_set_pairable(const GDBusPropertyTable *property, { struct btd_adapter *adapter = user_data; - if (!main_opts.always_pairable) { - property_set_discoverable(property, iter, id, user_data); - return; - } - property_set_mode(adapter, MGMT_SETTING_PAIRABLE, iter, id); } @@ -2186,9 +2147,6 @@ static gboolean property_get_pairable_timeout( struct btd_adapter *adapter = user_data; dbus_uint32_t value = adapter->pairable_timeout; - if (!main_opts.always_pairable) - return property_get_discoverable_timeout(property, iter, user_data); - dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT32, &value); return TRUE; @@ -2201,11 +2159,6 @@ static void property_set_pairable_timeout(const GDBusPropertyTable *property, struct btd_adapter *adapter = user_data; dbus_uint32_t value; - if (!main_opts.always_pairable) { - property_set_discoverable_timeout(property, iter, id, user_data); - return; - } - dbus_message_iter_get_basic(iter, &value); adapter->pairable_timeout = value; @@ -3182,22 +3135,6 @@ bool btd_adapter_get_pairable(struct btd_adapter *adapter) return false; } -void adapter_set_pairable(struct btd_adapter *adapter, bool enable) -{ - bool current = (adapter->current_settings & MGMT_SETTING_PAIRABLE); - - if (main_opts.always_pairable) - return; - - if (current == enable) - return; - - if (enable && !(adapter->current_settings & MGMT_SETTING_DISCOVERABLE)) - return; - - set_mode(adapter, MGMT_OP_SET_PAIRABLE, enable ? 0x01 : 0x00); -} - bool btd_adapter_get_powered(struct btd_adapter *adapter) { if (adapter->current_settings & MGMT_SETTING_POWERED) @@ -7094,12 +7031,8 @@ static void read_info_complete(uint8_t status, uint16_t length, !(adapter->current_settings & MGMT_SETTING_LE)) set_mode(adapter, MGMT_OP_SET_LE, 0x01); - if (main_opts.always_pairable) { - if (!(adapter->current_settings & MGMT_SETTING_PAIRABLE)) - set_mode(adapter, MGMT_OP_SET_PAIRABLE, 0x01); - } else { - update_pairable(adapter); - } + if (!(adapter->current_settings & MGMT_SETTING_PAIRABLE)) + set_mode(adapter, MGMT_OP_SET_PAIRABLE, 0x01); if (!kernel_conn_control) set_mode(adapter, MGMT_OP_SET_CONNECTABLE, 0x01); @@ -7308,17 +7241,6 @@ static void read_version_complete(uint8_t status, uint16_t length, abort(); } - /* - * Pre-1.7 mgmt kernel versions don't support outgoing pairing - * with pairable set to false, so we must always keep pairable - * as true. - */ - if (MGMT_VERSION(mgmt_version, mgmt_revision) < MGMT_VERSION(1, 7) && - !main_opts.always_pairable) { - info("Enabling AlwaysPairable because of old kernel"); - main_opts.always_pairable = TRUE; - } - DBG("sending read supported commands command"); /* diff --git a/src/adapter.h b/src/adapter.h index 923885cea..6801feebd 100644 --- a/src/adapter.h +++ b/src/adapter.h @@ -75,7 +75,6 @@ struct btd_adapter *adapter_find(const bdaddr_t *sba); struct btd_adapter *adapter_find_by_id(int id); void adapter_foreach(adapter_cb func, gpointer user_data); -void adapter_set_pairable(struct btd_adapter *adapter, bool enable); bool btd_adapter_get_pairable(struct btd_adapter *adapter); bool btd_adapter_get_powered(struct btd_adapter *adapter); bool btd_adapter_get_connectable(struct btd_adapter *adapter); diff --git a/src/agent.c b/src/agent.c index 3e6b92575..9ab1c8bb9 100644 --- a/src/agent.c +++ b/src/agent.c @@ -152,8 +152,6 @@ static void set_io_cap(struct btd_adapter *adapter, gpointer user_data) io_cap = IO_CAPABILITY_NOINPUTNOOUTPUT; adapter_set_io_capability(adapter, io_cap); - - adapter_set_pairable(adapter, agent ? true : false); } static bool add_default_agent(struct agent *agent) @@ -260,11 +258,6 @@ void agent_unref(struct agent *agent) g_free(agent); } -bool agent_default_available(void) -{ - return !queue_isempty(default_agents); -} - struct agent *agent_get(const char *owner) { struct agent *agent; diff --git a/src/agent.h b/src/agent.h index de6db2c41..1e4692036 100644 --- a/src/agent.h +++ b/src/agent.h @@ -36,7 +36,6 @@ typedef void (*agent_passkey_cb) (struct agent *agent, DBusError *err, struct agent *agent_ref(struct agent *agent); void agent_unref(struct agent *agent); -bool agent_default_available(void); struct agent *agent_get(const char *owner); int agent_authorize_service(struct agent *agent, const char *path, diff --git a/src/hcid.h b/src/hcid.h index 595612423..6040c71d2 100644 --- a/src/hcid.h +++ b/src/hcid.h @@ -29,7 +29,6 @@ struct main_opts { uint16_t autoto; uint32_t pairto; uint32_t discovto; - gboolean always_pairable; gboolean reverse_sdp; gboolean name_resolv; gboolean debug_keys; diff --git a/src/main.c b/src/main.c index 5ec1ab3ca..e6bac6e7d 100644 --- a/src/main.c +++ b/src/main.c @@ -201,14 +201,6 @@ static void parse_config(GKeyFile *config) DBG("parsing main.conf"); - boolean = g_key_file_get_boolean(config, "General", - "AlwaysPairable", &err); - if (err) { - DBG("%s", err->message); - g_clear_error(&err); - } else - main_opts.always_pairable = boolean; - val = g_key_file_get_integer(config, "General", "DiscoverableTimeout", &err); if (err) { @@ -300,7 +292,6 @@ static void init_defaults(void) memset(&main_opts, 0, sizeof(main_opts)); main_opts.name = g_strdup_printf("BlueZ %s", VERSION); main_opts.class = 0x000000; - main_opts.always_pairable = FALSE; main_opts.pairto = DEFAULT_PAIRABLE_TIMEOUT; main_opts.discovto = DEFAULT_DISCOVERABLE_TIMEOUT; main_opts.reverse_sdp = TRUE; -- 2.47.3