Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp168539pxu; Tue, 1 Dec 2020 08:29:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJyMlmLjrzB/dEgaEiyO/zFKaPapiiEkSazItgJ6odQTWN3kIAihehpowAdJbqgVNykH5XlL X-Received: by 2002:aa7:c698:: with SMTP id n24mr3781990edq.277.1606840169388; Tue, 01 Dec 2020 08:29:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606840169; cv=none; d=google.com; s=arc-20160816; b=ENh+LUf1oIqdxbMsnzSQhx8U/aGD9T3X8nKxappCwYac3UKr29zO9a03lFsWIuQj7I IdCEDavWG0QCsGEeLcy6Ua4J2c7WXiltTtyc7hurmEDwtfG+0XW5pSTVCkDkATBUDE/e vAQAHRgfQzEPhuAaDDYsrK3EsZ27PNkK393xkPjLJSNb9aNCh3Hp5pnSSv5ZABs299ma bYKH6Sp1tiHGw7lPFwdBS86gFcjfcRz28hGs5jv620d15Nce3qig6jmCk8E9lEKXXLVh P0CGblKikD28l9joXRz8f+6zc9aWjvWXiRN5mp1DE8WS1HZ6RSGJ4goBkHwGcZa/wW/x ebdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:date:cc:to:from:subject :message-id; bh=EveH94QSMHNgnyoI0yxPyJxVHAcb0dr2dpDFMjukfTI=; b=fIJDdB9TQwRHrRYFzTJNvY3NvoOpNBZgqFNjYQKl9mvxBaJ9xOJIoReOmCgJz4oeeS D6foV8VpvjwcYhMS+K/Ui52sS50wyjSq7i88eORsG/uUrwXBQqS7tFYw+pW4KAeC8+8c BOfKsGHgr3mWPNwfttMjS/Yu0AVOmnTjQIekcrIDfKLKEpPMFZLhQRheETdzoT7GBtE6 3QiOKKL0tblDubh0FKf/utpVpaWMFC3BUySWrR8p1fFG6PFeJrhhU71ysMRUYvYkIX6K p2vzz5RmbRaNmuFzl46+Md9YhaAHOYM0mJVC3qrJQ58t5j95RVUtcWUzt0xEF2YT1Ge/ COpw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s23si218590ejf.192.2020.12.01.08.29.04; Tue, 01 Dec 2020 08:29:29 -0800 (PST) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726147AbgLAQ2f (ORCPT + 99 others); Tue, 1 Dec 2020 11:28:35 -0500 Received: from relay12.mail.gandi.net ([217.70.178.232]:47019 "EHLO relay12.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725885AbgLAQ2f (ORCPT ); Tue, 1 Dec 2020 11:28:35 -0500 Received: from [192.168.0.28] (lns-bzn-39-82-255-60-242.adsl.proxad.net [82.255.60.242]) (Authenticated sender: hadess@hadess.net) by relay12.mail.gandi.net (Postfix) with ESMTPSA id D6839200002; Tue, 1 Dec 2020 16:27:52 +0000 (UTC) Message-ID: Subject: Re: [PATCH BlueZ v5 6/7] adapter: Add a public function to find a device by path From: Bastien Nocera To: Sonny Sasaka , linux-bluetooth@vger.kernel.org Cc: Miao-chen Chou Date: Tue, 01 Dec 2020 17:27:52 +0100 In-Reply-To: <20201130215602.386545-6-sonnysasaka@chromium.org> References: <20201130215602.386545-1-sonnysasaka@chromium.org> <20201130215602.386545-6-sonnysasaka@chromium.org> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.38.1 (3.38.1-1.fc33) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org On Mon, 2020-11-30 at 13:56 -0800, Sonny Sasaka wrote: > The public function is motivated by the Battery Provider API code > which > needs to probe whether a device exists. > > Reviewed-by: Miao-chen Chou > > --- >  src/adapter.c | 33 ++++++++++++++++++++++++--------- >  src/adapter.h |  2 ++ >  2 files changed, 26 insertions(+), 9 deletions(-) > > diff --git a/src/adapter.c b/src/adapter.c > index 56d0c6eaa..03d9d29e9 100644 > --- a/src/adapter.c > +++ b/src/adapter.c > @@ -872,6 +872,30 @@ struct btd_device > *btd_adapter_find_device(struct btd_adapter *adapter, >         return device; >  } >   > +static int device_path_cmp(gconstpointer a, gconstpointer b) > +{ > +       const struct btd_device *device = a; > +       const char *path = b; > +       const char *dev_path = device_get_path(device); > + > +       return strcasecmp(dev_path, path); > +} > + > +struct btd_device *btd_adapter_find_device_by_path(struct > btd_adapter *adapter, > +                                                  const char *path) > +{ > +       GSList *list; > + > +       if (!adapter) > +               return NULL; > + > +       list = g_slist_find_custom(adapter->devices, path, > device_path_cmp); > +       if (!list) > +               return NULL; > + > +       return list->data; > +} > + >  static void uuid_to_uuid128(uuid_t *uuid128, const uuid_t *uuid) >  { >         if (uuid->type == SDP_UUID16) > @@ -3192,15 +3216,6 @@ static gboolean property_get_roles(const > GDBusPropertyTable *property, >         return TRUE; >  } >   > -static int device_path_cmp(gconstpointer a, gconstpointer b) > -{ > -       const struct btd_device *device = a; > -       const char *path = b; > -       const char *dev_path = device_get_path(device); > - > -       return strcasecmp(dev_path, path); > -} You should move the function in a separate patch, ideally. This is helpful to show that the function was not modified in any way. >  static DBusMessage *remove_device(DBusConnection *conn, >                                         DBusMessage *msg, void > *user_data) >  { > diff --git a/src/adapter.h b/src/adapter.h > index e5750a37b..60b5e3bcc 100644 > --- a/src/adapter.h > +++ b/src/adapter.h > @@ -83,6 +83,8 @@ sdp_list_t *btd_adapter_get_services(struct > btd_adapter *adapter); >  struct btd_device *btd_adapter_find_device(struct btd_adapter > *adapter, >                                                         const > bdaddr_t *dst, >                                                         uint8_t > dst_type); > +struct btd_device *btd_adapter_find_device_by_path(struct > btd_adapter *adapter, > +                                                  const char *path); >   >  const char *adapter_get_path(struct btd_adapter *adapter); >  const bdaddr_t *btd_adapter_get_address(struct btd_adapter > *adapter);