* [PATCHv2 1/2] android/daemon: Implement get adapter name @ 2013-11-04 10:49 Andrei Emeltchenko 2013-11-04 10:49 ` [PATCHv2 2/2] android/daemon: Fix setting " Andrei Emeltchenko 2013-11-04 11:17 ` [PATCHv2 1/2] android/daemon: Implement get " Luiz Augusto von Dentz 0 siblings, 2 replies; 9+ messages in thread From: Andrei Emeltchenko @ 2013-11-04 10:49 UTC (permalink / raw) To: linux-bluetooth From: Andrei Emeltchenko <andrei.emeltchenko@intel.com> --- android/adapter.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/android/adapter.c b/android/adapter.c index af461b8..fdac82e 100644 --- a/android/adapter.c +++ b/android/adapter.c @@ -1017,13 +1017,14 @@ static void send_adapter_address(void) g_free(ev); } -static bool get_name(void) +static bool send_adapter_name(void) { - DBG("Not implemented"); + if (!adapter->name) + return false; - /* TODO: Add implementation */ + adapter_name_changed((uint8_t *) adapter->name); - return false; + return true; } static bool get_uuids(void) @@ -1098,7 +1099,7 @@ static bool get_property(void *buf, uint16_t len) send_adapter_address(); return true; case HAL_PROP_ADAPTER_NAME: - return get_name(); + return send_adapter_name(); case HAL_PROP_ADAPTER_UUIDS: return get_uuids(); case HAL_PROP_ADAPTER_CLASS: -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCHv2 2/2] android/daemon: Fix setting adapter name 2013-11-04 10:49 [PATCHv2 1/2] android/daemon: Implement get adapter name Andrei Emeltchenko @ 2013-11-04 10:49 ` Andrei Emeltchenko 2013-11-04 11:17 ` [PATCHv2 1/2] android/daemon: Implement get " Luiz Augusto von Dentz 1 sibling, 0 replies; 9+ messages in thread From: Andrei Emeltchenko @ 2013-11-04 10:49 UTC (permalink / raw) To: linux-bluetooth From: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Android use the full string returned even if we terminate it with '\0'. --- android/adapter.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/android/adapter.c b/android/adapter.c index fdac82e..1b84956 100644 --- a/android/adapter.c +++ b/android/adapter.c @@ -145,8 +145,8 @@ static void scan_mode_changed(void) static void adapter_name_changed(const uint8_t *name) { struct hal_ev_adapter_props_changed *ev; - uint8_t buf[sizeof(*ev) + sizeof(struct hal_property) + - HAL_MAX_NAME_LENGTH]; + size_t len = strlen((const char *) name); + uint8_t buf[sizeof(*ev) + sizeof(struct hal_property) + len]; memset(buf, 0, sizeof(buf)); ev = (void *) buf; @@ -154,10 +154,11 @@ static void adapter_name_changed(const uint8_t *name) ev->num_props = 1; ev->status = HAL_STATUS_SUCCESS; ev->props[0].type = HAL_PROP_ADAPTER_NAME; - ev->props[0].len = HAL_MAX_NAME_LENGTH; - memcpy(ev->props->val, name, HAL_MAX_NAME_LENGTH); + /* Android expects value without NULL terminator */ + ev->props[0].len = len; + memcpy(ev->props->val, name, len); - DBG("Adapter name changed to: %s", ev->props->val); + DBG("Adapter name changed to: %s", name); ipc_send(notification_io, HAL_SERVICE_ID_BLUETOOTH, HAL_EV_ADAPTER_PROPS_CHANGED, sizeof(buf), ev, -1); -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCHv2 1/2] android/daemon: Implement get adapter name 2013-11-04 10:49 [PATCHv2 1/2] android/daemon: Implement get adapter name Andrei Emeltchenko 2013-11-04 10:49 ` [PATCHv2 2/2] android/daemon: Fix setting " Andrei Emeltchenko @ 2013-11-04 11:17 ` Luiz Augusto von Dentz 2013-11-04 12:51 ` Andrei Emeltchenko 2013-11-04 13:22 ` [PATCHv3 1/4] " Andrei Emeltchenko 1 sibling, 2 replies; 9+ messages in thread From: Luiz Augusto von Dentz @ 2013-11-04 11:17 UTC (permalink / raw) To: Andrei Emeltchenko; +Cc: linux-bluetooth@vger.kernel.org Hi Andrei, On Mon, Nov 4, 2013 at 12:49 PM, Andrei Emeltchenko <Andrei.Emeltchenko.news@gmail.com> wrote: > From: Andrei Emeltchenko <andrei.emeltchenko@intel.com> > > --- > android/adapter.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/android/adapter.c b/android/adapter.c > index af461b8..fdac82e 100644 > --- a/android/adapter.c > +++ b/android/adapter.c > @@ -1017,13 +1017,14 @@ static void send_adapter_address(void) > g_free(ev); > } > > -static bool get_name(void) > +static bool send_adapter_name(void) > { > - DBG("Not implemented"); > + if (!adapter->name) > + return false; > > - /* TODO: Add implementation */ > + adapter_name_changed((uint8_t *) adapter->name); > > - return false; > + return true; > } > > static bool get_uuids(void) > @@ -1098,7 +1099,7 @@ static bool get_property(void *buf, uint16_t len) > send_adapter_address(); > return true; > case HAL_PROP_ADAPTER_NAME: > - return get_name(); > + return send_adapter_name(); Not sure why you are changing the name here, all the other properties is using the same format as get_<name of property>. -- Luiz Augusto von Dentz ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCHv2 1/2] android/daemon: Implement get adapter name 2013-11-04 11:17 ` [PATCHv2 1/2] android/daemon: Implement get " Luiz Augusto von Dentz @ 2013-11-04 12:51 ` Andrei Emeltchenko 2013-11-04 13:22 ` [PATCHv3 1/4] " Andrei Emeltchenko 1 sibling, 0 replies; 9+ messages in thread From: Andrei Emeltchenko @ 2013-11-04 12:51 UTC (permalink / raw) To: Luiz Augusto von Dentz; +Cc: linux-bluetooth@vger.kernel.org Hi Luiz, On Mon, Nov 04, 2013 at 01:17:35PM +0200, Luiz Augusto von Dentz wrote: > Hi Andrei, > > On Mon, Nov 4, 2013 at 12:49 PM, Andrei Emeltchenko > <Andrei.Emeltchenko.news@gmail.com> wrote: > > From: Andrei Emeltchenko <andrei.emeltchenko@intel.com> > > > > --- > > android/adapter.c | 11 ++++++----- > > 1 file changed, 6 insertions(+), 5 deletions(-) > > > > diff --git a/android/adapter.c b/android/adapter.c > > index af461b8..fdac82e 100644 > > --- a/android/adapter.c > > +++ b/android/adapter.c > > @@ -1017,13 +1017,14 @@ static void send_adapter_address(void) > > g_free(ev); > > } > > > > -static bool get_name(void) > > +static bool send_adapter_name(void) > > { > > - DBG("Not implemented"); > > + if (!adapter->name) > > + return false; > > > > - /* TODO: Add implementation */ > > + adapter_name_changed((uint8_t *) adapter->name); > > > > - return false; > > + return true; > > } > > > > static bool get_uuids(void) > > @@ -1098,7 +1099,7 @@ static bool get_property(void *buf, uint16_t len) > > send_adapter_address(); > > return true; > > case HAL_PROP_ADAPTER_NAME: > > - return get_name(); > > + return send_adapter_name(); > > Not sure why you are changing the name here, all the other properties > is using the same format as get_<name of property>. I am following style, look at previous function: send_adapter_address. So shall I change that one also in a separate patch? Best regards Andrei Emeltchenko ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCHv3 1/4] android/daemon: Implement get adapter name 2013-11-04 11:17 ` [PATCHv2 1/2] android/daemon: Implement get " Luiz Augusto von Dentz 2013-11-04 12:51 ` Andrei Emeltchenko @ 2013-11-04 13:22 ` Andrei Emeltchenko 2013-11-04 13:22 ` [PATCHv3 2/4] android/daemon: Clean up get_address name Andrei Emeltchenko ` (3 more replies) 1 sibling, 4 replies; 9+ messages in thread From: Andrei Emeltchenko @ 2013-11-04 13:22 UTC (permalink / raw) To: linux-bluetooth From: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Use adapter_name_changed for get_property call. --- android/adapter.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/android/adapter.c b/android/adapter.c index af461b8..3e43d44 100644 --- a/android/adapter.c +++ b/android/adapter.c @@ -1019,11 +1019,12 @@ static void send_adapter_address(void) static bool get_name(void) { - DBG("Not implemented"); + if (!adapter->name) + return false; - /* TODO: Add implementation */ + adapter_name_changed((uint8_t *) adapter->name); - return false; + return true; } static bool get_uuids(void) -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCHv3 2/4] android/daemon: Clean up get_address name 2013-11-04 13:22 ` [PATCHv3 1/4] " Andrei Emeltchenko @ 2013-11-04 13:22 ` Andrei Emeltchenko 2013-11-04 13:22 ` [PATCHv3 3/4] android/daemon: Fix setting adapter name Andrei Emeltchenko ` (2 subsequent siblings) 3 siblings, 0 replies; 9+ messages in thread From: Andrei Emeltchenko @ 2013-11-04 13:22 UTC (permalink / raw) To: linux-bluetooth From: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Make function name consistent with the rest of the code. --- android/adapter.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/adapter.c b/android/adapter.c index 3e43d44..c2a6bf3 100644 --- a/android/adapter.c +++ b/android/adapter.c @@ -995,7 +995,7 @@ static bool set_discoverable(uint8_t mode, uint16_t timeout) return false; } -static void send_adapter_address(void) +static void get_address(void) { struct hal_ev_adapter_props_changed *ev; int len; @@ -1096,7 +1096,7 @@ static bool get_property(void *buf, uint16_t len) switch (cmd->type) { case HAL_PROP_ADAPTER_ADDR: - send_adapter_address(); + get_address(); return true; case HAL_PROP_ADAPTER_NAME: return get_name(); -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCHv3 3/4] android/daemon: Fix setting adapter name 2013-11-04 13:22 ` [PATCHv3 1/4] " Andrei Emeltchenko 2013-11-04 13:22 ` [PATCHv3 2/4] android/daemon: Clean up get_address name Andrei Emeltchenko @ 2013-11-04 13:22 ` Andrei Emeltchenko 2013-11-04 13:22 ` [PATCHv3 4/4] android: Fix printing not NULL terminated strings Andrei Emeltchenko 2013-11-04 19:18 ` [PATCHv3 1/4] android/daemon: Implement get adapter name Johan Hedberg 3 siblings, 0 replies; 9+ messages in thread From: Andrei Emeltchenko @ 2013-11-04 13:22 UTC (permalink / raw) To: linux-bluetooth From: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Android use the full string returned even if we terminate it with '\0'. --- android/adapter.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/android/adapter.c b/android/adapter.c index c2a6bf3..45b2d4a 100644 --- a/android/adapter.c +++ b/android/adapter.c @@ -145,8 +145,8 @@ static void scan_mode_changed(void) static void adapter_name_changed(const uint8_t *name) { struct hal_ev_adapter_props_changed *ev; - uint8_t buf[sizeof(*ev) + sizeof(struct hal_property) + - HAL_MAX_NAME_LENGTH]; + size_t len = strlen((const char *) name); + uint8_t buf[sizeof(*ev) + sizeof(struct hal_property) + len]; memset(buf, 0, sizeof(buf)); ev = (void *) buf; @@ -154,10 +154,11 @@ static void adapter_name_changed(const uint8_t *name) ev->num_props = 1; ev->status = HAL_STATUS_SUCCESS; ev->props[0].type = HAL_PROP_ADAPTER_NAME; - ev->props[0].len = HAL_MAX_NAME_LENGTH; - memcpy(ev->props->val, name, HAL_MAX_NAME_LENGTH); + /* Android expects value without NULL terminator */ + ev->props[0].len = len; + memcpy(ev->props->val, name, len); - DBG("Adapter name changed to: %s", ev->props->val); + DBG("Adapter name changed to: %s", name); ipc_send(notification_io, HAL_SERVICE_ID_BLUETOOTH, HAL_EV_ADAPTER_PROPS_CHANGED, sizeof(buf), ev, -1); -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCHv3 4/4] android: Fix printing not NULL terminated strings 2013-11-04 13:22 ` [PATCHv3 1/4] " Andrei Emeltchenko 2013-11-04 13:22 ` [PATCHv3 2/4] android/daemon: Clean up get_address name Andrei Emeltchenko 2013-11-04 13:22 ` [PATCHv3 3/4] android/daemon: Fix setting adapter name Andrei Emeltchenko @ 2013-11-04 13:22 ` Andrei Emeltchenko 2013-11-04 19:18 ` [PATCHv3 1/4] android/daemon: Implement get adapter name Johan Hedberg 3 siblings, 0 replies; 9+ messages in thread From: Andrei Emeltchenko @ 2013-11-04 13:22 UTC (permalink / raw) To: linux-bluetooth From: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Android passes not NULL terminated strings. --- android/client/textconv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/android/client/textconv.c b/android/client/textconv.c index 8e6bdb9..9a2f7e6 100644 --- a/android/client/textconv.c +++ b/android/client/textconv.c @@ -258,7 +258,8 @@ char *btproperty2str(const bt_property_t *property) switch (property->type) { case BT_PROPERTY_BDNAME: case BT_PROPERTY_REMOTE_FRIENDLY_NAME: - sprintf(p, "%s", ((bt_bdname_t *) property->val)->name); + snprintf(p, property->len + 1, "%s", + ((bt_bdname_t *) property->val)->name); break; case BT_PROPERTY_BDADDR: -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCHv3 1/4] android/daemon: Implement get adapter name 2013-11-04 13:22 ` [PATCHv3 1/4] " Andrei Emeltchenko ` (2 preceding siblings ...) 2013-11-04 13:22 ` [PATCHv3 4/4] android: Fix printing not NULL terminated strings Andrei Emeltchenko @ 2013-11-04 19:18 ` Johan Hedberg 3 siblings, 0 replies; 9+ messages in thread From: Johan Hedberg @ 2013-11-04 19:18 UTC (permalink / raw) To: Andrei Emeltchenko; +Cc: linux-bluetooth Hi Andrei, On Mon, Nov 04, 2013, Andrei Emeltchenko wrote: > Use adapter_name_changed for get_property call. > --- > android/adapter.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) All four patches have been applied. Thanks. Johan ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-11-04 19:18 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-11-04 10:49 [PATCHv2 1/2] android/daemon: Implement get adapter name Andrei Emeltchenko 2013-11-04 10:49 ` [PATCHv2 2/2] android/daemon: Fix setting " Andrei Emeltchenko 2013-11-04 11:17 ` [PATCHv2 1/2] android/daemon: Implement get " Luiz Augusto von Dentz 2013-11-04 12:51 ` Andrei Emeltchenko 2013-11-04 13:22 ` [PATCHv3 1/4] " Andrei Emeltchenko 2013-11-04 13:22 ` [PATCHv3 2/4] android/daemon: Clean up get_address name Andrei Emeltchenko 2013-11-04 13:22 ` [PATCHv3 3/4] android/daemon: Fix setting adapter name Andrei Emeltchenko 2013-11-04 13:22 ` [PATCHv3 4/4] android: Fix printing not NULL terminated strings Andrei Emeltchenko 2013-11-04 19:18 ` [PATCHv3 1/4] android/daemon: Implement get adapter name Johan Hedberg
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox