Hi Archie, On Tue, Nov 3, 2020 at 9:35 PM Archie Pusaka <apusaka@xxxxxxxxxx> wrote: > > From: Archie Pusaka <apusaka@xxxxxxxxxxxx> > > When policy_connect() is called, there might be a case where the > device is not ready, or even the adapter is down. Add some checks > by calling btd_device_connect_services() instead of directly calling > btd_service_connect(). But we could perform these checks in btd_service_connect or you also intended to use the pending list? Im a little hesitant with such a change though because there could be a pending connect already causing it to fail instead of just connecting in parallel. > Reviewed-by: Sonny Sasaka <sonnysasaka@xxxxxxxxxxxx> > --- > > plugins/policy.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/plugins/policy.c b/plugins/policy.c > index ba9e1be020..42b15cb65f 100644 > --- a/plugins/policy.c > +++ b/plugins/policy.c > @@ -106,6 +106,7 @@ static void policy_connect(struct policy_data *data, > { > struct btd_profile *profile = btd_service_get_profile(service); > struct reconnect_data *reconnect; > + GSList *l = NULL; > > reconnect = reconnect_find(btd_service_get_device(service)); > if (reconnect && reconnect->active) > @@ -113,7 +114,9 @@ static void policy_connect(struct policy_data *data, > > DBG("%s profile %s", device_get_path(data->dev), profile->name); > > - btd_service_connect(service); > + l = g_slist_prepend(l, service); > + btd_device_connect_services(data->dev, l); > + g_slist_free(l); > } > > static void policy_disconnect(struct policy_data *data, > -- > 2.29.1.341.ge80a0c044ae-goog > -- Luiz Augusto von Dentz