diff options
author | Johan Hedberg <johan.hedberg@nokia.com> | 2009-08-01 01:05:55 +0300 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@nokia.com> | 2009-08-01 01:05:55 +0300 |
commit | c1b999fbc96dfa28f119fe099d7c4b556c7523af (patch) | |
tree | 880683b24aa8e6c8fa8b966cb2c7eeb3d364ad5e /src/adapter.c | |
parent | 45d22bfa24270b782eb0e6c5df003c574314df61 (diff) | |
download | bluez-c1b999fbc96dfa28f119fe099d7c4b556c7523af.tar.gz |
Use limited discoverable mode only when 0 < discov_timeout <= 60
Diffstat (limited to 'src/adapter.c')
-rw-r--r-- | src/adapter.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/adapter.c b/src/adapter.c index 572cf5b9e..295cddc6c 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -513,7 +513,9 @@ static DBusMessage *set_discoverable(DBusConnection *conn, DBusMessage *msg, mode = discoverable ? MODE_DISCOVERABLE : MODE_CONNECTABLE; - if (mode == MODE_DISCOVERABLE && adapter->pairable) + if (mode == MODE_DISCOVERABLE && adapter->pairable && + adapter->discov_timeout > 0 && + adapter->discov_timeout <= 60) mode = MODE_LIMITED; if (mode == adapter->mode) @@ -554,7 +556,9 @@ static DBusMessage *set_pairable(DBusConnection *conn, DBusMessage *msg, if (!(adapter->scan_mode & SCAN_INQUIRY)) goto done; - mode = pairable ? MODE_LIMITED : MODE_DISCOVERABLE; + mode = (pairable && adapter->discov_timeout > 0 && + adapter->discov_timeout <= 60) ? + MODE_LIMITED : MODE_DISCOVERABLE; err = set_mode(adapter, mode); if (err < 0 && msg) @@ -2017,8 +2021,7 @@ static int adapter_up(struct btd_adapter *adapter) } else if (!g_str_equal(mode, "connectable") && adapter->discov_timeout == 0) { /* Set discoverable only if timeout is 0 */ - adapter->mode = adapter->pairable ? - MODE_LIMITED : MODE_DISCOVERABLE; + adapter->mode = MODE_DISCOVERABLE; scan_mode = SCAN_PAGE | SCAN_INQUIRY; } @@ -2737,7 +2740,8 @@ void adapter_mode_changed(struct btd_adapter *adapter, uint8_t scan_mode) if (adapter->svc_cache) real_class[2] = adapter->svc_cache; - if (discoverable && adapter->pairable) + if (discoverable && adapter->pairable && adapter->discov_timeout > 0 && + adapter->discov_timeout <= 60) adapter_ops->set_limited_discoverable(adapter->dev_id, real_class, TRUE); else if (!discoverable) |