It seems this is the correct way to discover such services that work
over BR/EDR (according to section 4.4 in the GATT specification).
---
src/attrib-server.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/attrib-server.c b/src/attrib-server.c
index dd1bba4..6636192 100644
--- a/src/attrib-server.c
+++ b/src/attrib-server.c
@@ -257,8 +257,8 @@ static int attribute_cmp(gconstpointer a1, gconstpointer a2)
return attrib1->handle - attrib2->handle;
}
-static struct attribute *find_primary_range(struct gatt_server *server,
- uint16_t start, uint16_t *end)
+static struct attribute *find_svc_range(struct gatt_server *server,
+ uint16_t start, uint16_t *end)
{
struct attribute *attrib;
guint h = start;
@@ -274,7 +274,8 @@ static struct attribute *find_primary_range(struct gatt_server *server,
attrib = l->data;
- if (bt_uuid_cmp(&attrib->uuid, &prim_uuid) != 0)
+ if (bt_uuid_cmp(&attrib->uuid, &prim_uuid) != 0 &&
+ bt_uuid_cmp(&attrib->uuid, &snd_uuid) != 0)
return NULL;
*end = start;
@@ -301,7 +302,7 @@ static uint32_t attrib_create_sdp_new(struct gatt_server *server,
uuid_t svc, gap_uuid;
bdaddr_t addr;
- a = find_primary_range(server, handle, &end);
+ a = find_svc_range(server, handle, &end);
if (a == NULL)
return 0;
--
1.7.9.5
Hi Arik,
On Mon, May 28, 2012, Arik Nemtsov wrote:
> It seems this is the correct way to discover such services that work
> over BR/EDR (according to section 4.4 in the GATT specification).
> ---
> src/attrib-server.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
Applied. Thanks.
Johan