Re: [PATCH BlueZ 1/5] tools: btpclient: Clear advertising data on reset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Grzegorz,

On Thursday, 25 January 2018 16:53:29 CET Grzegorz Kolodziejczyk wrote:
> Advertising data should be cleared on gap reset command.
> ---
>  tools/btpclient.c | 40 +++++++++++++++++++++-------------------
>  1 file changed, 21 insertions(+), 19 deletions(-)
> 
> diff --git a/tools/btpclient.c b/tools/btpclient.c
> index 3c88f1496..bdc404dd9 100644
> --- a/tools/btpclient.c
> +++ b/tools/btpclient.c
> @@ -390,6 +390,24 @@ static void unreg_advertising_setup(struct
> l_dbus_message *message, l_dbus_message_builder_destroy(builder);
>  }
> 
> +static void ad_cleanup_service(void *service)
> +{
> +	struct service_data *s = service;
> +
> +	l_free(s->uuid);
> +	l_free(s);
> +}
> +
> +static void ad_cleanup(void)
> +{
> +	l_free(ad.local_name);
> +	l_queue_destroy(ad.uuids, l_free);
> +	l_queue_destroy(ad.services, ad_cleanup_service);
> +	l_queue_destroy(ad.manufacturers, l_free);
> +
> +	memset(&ad, 0, sizeof(ad));
> +}
> +
>  static void unreg_advertising_reply(struct l_dbus_proxy *proxy,
>  						struct l_dbus_message *result,
>  						void *user_data)
> @@ -417,6 +435,8 @@ static void unreg_advertising_reply(struct l_dbus_proxy
> *proxy, l_info("Unable to remove propety instance");
>  	if (!l_dbus_unregister_interface(dbus, AD_IFACE))
>  		l_info("Unable to unregister ad interface");
> +
> +	ad_cleanup();
>  }
> 
>  static void btp_gap_reset(uint8_t index, const void *param, uint16_t
> length, @@ -449,7 +469,7 @@ static void btp_gap_reset(uint8_t index, const
> void *param, uint16_t length, NULL);
>  	}
> 
> -	if (adapter->ad_proxy)
> +	if (adapter->ad_proxy && ad.registered)
>  		if (!l_dbus_proxy_method_call(adapter->ad_proxy,
>  						"UnregisterAdvertisement",
>  						unreg_advertising_setup,
> @@ -646,24 +666,6 @@ failed:
>  	btp_send_error(btp, BTP_GAP_SERVICE, index, status);
>  }
> 
> -static void ad_cleanup_service(void *service)
> -{
> -	struct service_data *s = service;
> -
> -	l_free(s->uuid);
> -	l_free(s);
> -}
> -
> -static void ad_cleanup(void)
> -{
> -	l_free(ad.local_name);
> -	l_queue_destroy(ad.uuids, l_free);
> -	l_queue_destroy(ad.services, ad_cleanup_service);
> -	l_queue_destroy(ad.manufacturers, l_free);
> -
> -	memset(&ad, 0, sizeof(ad));
> -}
> -
>  static void ad_init(void)
>  {
>  	ad.uuids = l_queue_new();


All patches applied (2/5 v2), thanks.

-- 
pozdrawiam
Szymon Janc


--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux