* [PATCH BlueZ] main.conf: Make ReverseServiceDiscovery work with LE
@ 2019-05-29 12:14 Luiz Augusto von Dentz
2019-06-03 10:12 ` Luiz Augusto von Dentz
0 siblings, 1 reply; 2+ messages in thread
From: Luiz Augusto von Dentz @ 2019-05-29 12:14 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This makes ReverseServiceDiscovery work properly with LE connection by
disabling the GATT client functionality which makes one able to setup a
system to operate in peripheral role only mode.
---
src/device.c | 9 +++++++--
src/hcid.h | 2 +-
src/main.c | 4 ++--
src/main.conf | 8 +++++---
4 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/src/device.c b/src/device.c
index 8ddfa28ff..263f60aea 100644
--- a/src/device.c
+++ b/src/device.c
@@ -4933,6 +4933,11 @@ static void gatt_client_init(struct btd_device *device)
{
gatt_client_cleanup(device);
+ if (!device->connect && !main_opts.reverse_discovery) {
+ DBG("Reverse service discovery disabled: skipping GATT client");
+ return;
+ }
+
device->client = bt_gatt_client_new(device->db, device->att,
device->att_mtu);
if (!device->client) {
@@ -5814,7 +5819,7 @@ void device_bonding_complete(struct btd_device *device, uint8_t bdaddr_type,
bonding_request_free(bonding);
} else if (!state->svc_resolved) {
if (!device->browse && !device->discov_timer &&
- main_opts.reverse_sdp) {
+ main_opts.reverse_discovery) {
/* If we are not initiators and there is no currently
* active discovery or discovery timer, set discovery
* timer */
@@ -5858,7 +5863,7 @@ unsigned int device_wait_for_svc_complete(struct btd_device *dev,
dev->svc_callbacks = g_slist_prepend(dev->svc_callbacks, cb);
- if (state->svc_resolved || !main_opts.reverse_sdp)
+ if (state->svc_resolved || !main_opts.reverse_discovery)
cb->idle_id = g_idle_add(svc_idle_cb, cb);
else if (dev->discov_timer > 0) {
g_source_remove(dev->discov_timer);
diff --git a/src/hcid.h b/src/hcid.h
index 1eb3c5ac2..adea85ce2 100644
--- a/src/hcid.h
+++ b/src/hcid.h
@@ -43,7 +43,7 @@ struct main_opts {
uint32_t discovto;
uint8_t privacy;
- gboolean reverse_sdp;
+ gboolean reverse_discovery;
gboolean name_resolv;
gboolean debug_keys;
gboolean fast_conn;
diff --git a/src/main.c b/src/main.c
index 696728320..1a6ab36a3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -367,7 +367,7 @@ static void parse_config(GKeyFile *config)
DBG("%s", err->message);
g_clear_error(&err);
} else
- main_opts.reverse_sdp = boolean;
+ main_opts.reverse_discovery = boolean;
boolean = g_key_file_get_boolean(config, "General",
"NameResolving", &err);
@@ -456,7 +456,7 @@ static void init_defaults(void)
main_opts.class = 0x000000;
main_opts.pairto = DEFAULT_PAIRABLE_TIMEOUT;
main_opts.discovto = DEFAULT_DISCOVERABLE_TIMEOUT;
- main_opts.reverse_sdp = TRUE;
+ main_opts.reverse_discovery = TRUE;
main_opts.name_resolv = TRUE;
main_opts.debug_keys = FALSE;
diff --git a/src/main.conf b/src/main.conf
index b2f843c75..40687a755 100644
--- a/src/main.conf
+++ b/src/main.conf
@@ -30,9 +30,11 @@
#DeviceID = bluetooth:1234:5678:abcd
# Do reverse service discovery for previously unknown devices that connect to
-# us. This option is really only needed for qualification since the BITE tester
-# doesn't like us doing reverse SDP for some test cases (though there could in
-# theory be other useful purposes for this too). Defaults to 'true'.
+# us. For BR/EDR this option is really only needed for qualification since the
+# BITE tester doesn't like us doing reverse SDP for some test cases, for LE
+# this disables the GATT client functionally so it can be used in system which
+# can only operate as peripheral.
+# Defaults to 'true'.
#ReverseServiceDiscovery = true
# Enable name resolving after inquiry. Set it to 'false' if you don't need
--
2.21.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH BlueZ] main.conf: Make ReverseServiceDiscovery work with LE
2019-05-29 12:14 [PATCH BlueZ] main.conf: Make ReverseServiceDiscovery work with LE Luiz Augusto von Dentz
@ 2019-06-03 10:12 ` Luiz Augusto von Dentz
0 siblings, 0 replies; 2+ messages in thread
From: Luiz Augusto von Dentz @ 2019-06-03 10:12 UTC (permalink / raw)
To: linux-bluetooth
Hi,
On Wed, May 29, 2019 at 3:14 PM Luiz Augusto von Dentz
<luiz.dentz@gmail.com> wrote:
>
> From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
>
> This makes ReverseServiceDiscovery work properly with LE connection by
> disabling the GATT client functionality which makes one able to setup a
> system to operate in peripheral role only mode.
> ---
> src/device.c | 9 +++++++--
> src/hcid.h | 2 +-
> src/main.c | 4 ++--
> src/main.conf | 8 +++++---
> 4 files changed, 15 insertions(+), 8 deletions(-)
>
> diff --git a/src/device.c b/src/device.c
> index 8ddfa28ff..263f60aea 100644
> --- a/src/device.c
> +++ b/src/device.c
> @@ -4933,6 +4933,11 @@ static void gatt_client_init(struct btd_device *device)
> {
> gatt_client_cleanup(device);
>
> + if (!device->connect && !main_opts.reverse_discovery) {
> + DBG("Reverse service discovery disabled: skipping GATT client");
> + return;
> + }
> +
> device->client = bt_gatt_client_new(device->db, device->att,
> device->att_mtu);
> if (!device->client) {
> @@ -5814,7 +5819,7 @@ void device_bonding_complete(struct btd_device *device, uint8_t bdaddr_type,
> bonding_request_free(bonding);
> } else if (!state->svc_resolved) {
> if (!device->browse && !device->discov_timer &&
> - main_opts.reverse_sdp) {
> + main_opts.reverse_discovery) {
> /* If we are not initiators and there is no currently
> * active discovery or discovery timer, set discovery
> * timer */
> @@ -5858,7 +5863,7 @@ unsigned int device_wait_for_svc_complete(struct btd_device *dev,
>
> dev->svc_callbacks = g_slist_prepend(dev->svc_callbacks, cb);
>
> - if (state->svc_resolved || !main_opts.reverse_sdp)
> + if (state->svc_resolved || !main_opts.reverse_discovery)
> cb->idle_id = g_idle_add(svc_idle_cb, cb);
> else if (dev->discov_timer > 0) {
> g_source_remove(dev->discov_timer);
> diff --git a/src/hcid.h b/src/hcid.h
> index 1eb3c5ac2..adea85ce2 100644
> --- a/src/hcid.h
> +++ b/src/hcid.h
> @@ -43,7 +43,7 @@ struct main_opts {
> uint32_t discovto;
> uint8_t privacy;
>
> - gboolean reverse_sdp;
> + gboolean reverse_discovery;
> gboolean name_resolv;
> gboolean debug_keys;
> gboolean fast_conn;
> diff --git a/src/main.c b/src/main.c
> index 696728320..1a6ab36a3 100644
> --- a/src/main.c
> +++ b/src/main.c
> @@ -367,7 +367,7 @@ static void parse_config(GKeyFile *config)
> DBG("%s", err->message);
> g_clear_error(&err);
> } else
> - main_opts.reverse_sdp = boolean;
> + main_opts.reverse_discovery = boolean;
>
> boolean = g_key_file_get_boolean(config, "General",
> "NameResolving", &err);
> @@ -456,7 +456,7 @@ static void init_defaults(void)
> main_opts.class = 0x000000;
> main_opts.pairto = DEFAULT_PAIRABLE_TIMEOUT;
> main_opts.discovto = DEFAULT_DISCOVERABLE_TIMEOUT;
> - main_opts.reverse_sdp = TRUE;
> + main_opts.reverse_discovery = TRUE;
> main_opts.name_resolv = TRUE;
> main_opts.debug_keys = FALSE;
>
> diff --git a/src/main.conf b/src/main.conf
> index b2f843c75..40687a755 100644
> --- a/src/main.conf
> +++ b/src/main.conf
> @@ -30,9 +30,11 @@
> #DeviceID = bluetooth:1234:5678:abcd
>
> # Do reverse service discovery for previously unknown devices that connect to
> -# us. This option is really only needed for qualification since the BITE tester
> -# doesn't like us doing reverse SDP for some test cases (though there could in
> -# theory be other useful purposes for this too). Defaults to 'true'.
> +# us. For BR/EDR this option is really only needed for qualification since the
> +# BITE tester doesn't like us doing reverse SDP for some test cases, for LE
> +# this disables the GATT client functionally so it can be used in system which
> +# can only operate as peripheral.
> +# Defaults to 'true'.
> #ReverseServiceDiscovery = true
>
> # Enable name resolving after inquiry. Set it to 'false' if you don't need
> --
> 2.21.0
Applied.
--
Luiz Augusto von Dentz
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-06-03 10:12 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-29 12:14 [PATCH BlueZ] main.conf: Make ReverseServiceDiscovery work with LE Luiz Augusto von Dentz
2019-06-03 10:12 ` Luiz Augusto von Dentz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).