Skip to content

Commit 619d8c1

Browse files
committed
bluetooth: services: ras: rreq: Allow calling already subscribed err
This works around a subscription quirk which resubscribes you to previous subscriptions on reconnection to a bonded peer, so this meant we would end up in a state where the device was subscribed but RAS RREQ was not set up for subscriptions correctly. Also allow being already unsubscribed when calling unsubscribe functions. Signed-off-by: Sean Madigan <[email protected]>
1 parent e70c928 commit 619d8c1

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

subsys/bluetooth/services/ras/rreq/ras_rreq.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,7 @@ int bt_ras_rreq_cp_subscribe(struct bt_conn *conn)
485485
}
486486

487487
err = bt_gatt_subscribe(conn, &rreq->cp.subscribe_params);
488-
if (err) {
488+
if (err && err != -EALREADY) {
489489
LOG_DBG("RAS-CP subscribe failed (err %d)", err);
490490
return err;
491491
}
@@ -503,7 +503,7 @@ int bt_ras_rreq_cp_unsubscribe(struct bt_conn *conn)
503503
}
504504

505505
err = bt_gatt_unsubscribe(conn, &rreq->cp.subscribe_params);
506-
if (err) {
506+
if (err && err != -EINVAL) {
507507
LOG_DBG("RAS-CP unsubscribe failed (err %d)", err);
508508
return err;
509509
}
@@ -617,7 +617,7 @@ int bt_ras_rreq_on_demand_rd_subscribe(struct bt_conn *conn)
617617
}
618618

619619
err = bt_gatt_subscribe(conn, &rreq->on_demand_rd.subscribe_params);
620-
if (err) {
620+
if (err && err != -EALREADY) {
621621
LOG_DBG("On-demand ranging data subscribe failed (err %d)", err);
622622
return err;
623623
}
@@ -637,7 +637,7 @@ int bt_ras_rreq_on_demand_rd_unsubscribe(struct bt_conn *conn)
637637
}
638638

639639
err = bt_gatt_unsubscribe(conn, &rreq->on_demand_rd.subscribe_params);
640-
if (err) {
640+
if (err && err != -EINVAL) {
641641
LOG_DBG("On-demand ranging data unsubscribe failed (err %d)", err);
642642
return err;
643643
}
@@ -657,7 +657,7 @@ int bt_ras_rreq_rd_ready_subscribe(struct bt_conn *conn, bt_ras_rreq_rd_ready_cb
657657
}
658658

659659
err = bt_gatt_subscribe(conn, &rreq->rd_ready.subscribe_params);
660-
if (err) {
660+
if (err && err != -EALREADY) {
661661
LOG_DBG("Ranging data ready subscribe failed (err %d)", err);
662662
return err;
663663
}
@@ -678,7 +678,7 @@ int bt_ras_rreq_rd_ready_unsubscribe(struct bt_conn *conn)
678678
}
679679

680680
err = bt_gatt_unsubscribe(conn, &rreq->rd_ready.subscribe_params);
681-
if (err) {
681+
if (err && err != -EINVAL) {
682682
LOG_DBG("Ranging data ready unsubscribe failed (err %d)", err);
683683
return err;
684684
}
@@ -699,7 +699,7 @@ int bt_ras_rreq_rd_overwritten_subscribe(struct bt_conn *conn, bt_ras_rreq_rd_ov
699699
}
700700

701701
err = bt_gatt_subscribe(conn, &rreq->rd_overwritten.subscribe_params);
702-
if (err) {
702+
if (err && err != -EALREADY) {
703703
LOG_DBG("Ranging data overwritten subscribe failed (err %d)", err);
704704
return err;
705705
}
@@ -720,7 +720,7 @@ int bt_ras_rreq_rd_overwritten_unsubscribe(struct bt_conn *conn)
720720
}
721721

722722
err = bt_gatt_unsubscribe(conn, &rreq->rd_overwritten.subscribe_params);
723-
if (err) {
723+
if (err && err != -EINVAL) {
724724
LOG_DBG("Ranging data overwritten unsubscribe failed (err %d)", err);
725725
return err;
726726
}

0 commit comments

Comments
 (0)