Re: [PATCH v2 05/10] emulator: Add handling inquiry_lenght from inquiry command

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

 



Hi Lukasz,

On Mon, Mar 10, 2014, Lukasz Rymanowski wrote:
> --- a/emulator/btdev.c
> +++ b/emulator/btdev.c
> @@ -70,6 +70,7 @@ struct btdev {
>  	void *send_data;
>  
>  	int inquiry_id;
> +	int inquiry_timeout_id;
>  	bool inquiry_cancel;
>  
>  	struct hook *hook_list[MAX_HOOK_ENTRIES];
> @@ -133,6 +134,8 @@ struct inquiry_data {
>  
>  	int sent_count;
>  	int iter;
> +
> +	bool timeout;
>  };
>  
>  #define DEFAULT_INQUIRY_INTERVAL 100 /* 100 miliseconds */
> @@ -711,6 +714,14 @@ static bool inquiry_callback(void *user_data)
>  	int sent = data->sent_count;
>  	int i;
>  
> +	/* Check if inquiry timeout fired. */
> +	if (data->timeout)
> +		goto finish;
> +
> +	/*Report devices only once and wait for inquiry timeout*/
> +	if (data->iter == MAX_BTDEV_ENTRIES)
> +		return true;
> +
>  	for (i = data->iter; i < MAX_BTDEV_ENTRIES; i++, data->iter++) {
>  		/*Lets sent 10 inquiry results at once */
>  		if (sent + 10 == data->sent_count)
> @@ -771,14 +782,10 @@ static bool inquiry_callback(void *user_data)
>  			data->sent_count++;
>  		}
>  	}
> -
>  	/* Check if we sent already required amount of responses*/
>  	if (data->num_resp && data->sent_count == data->num_resp)
>  		goto finish;
>  
> -	if (i == MAX_BTDEV_ENTRIES)
> -		goto finish;
> -
>  	return true;
>  
>  finish:
> @@ -806,16 +813,33 @@ static void inquiry_destroy(void *user_data)
>  	btdev->inquiry_cancel = false;
>  	btdev->inquiry_id = 0;
>  
> +	if (btdev->inquiry_timeout_id)
> +		timeout_remove(btdev->inquiry_timeout_id);
> +
> +	btdev->inquiry_timeout_id = 0;
> +
>  finish:
>  	free(data);
>  }
>  
> +static bool inquiry_timeout(void *user_data)
> +{
> +	struct inquiry_data *data = user_data;
> +	struct btdev *btdev = data->btdev;
> +
> +	data->timeout = true;
> +	btdev->inquiry_timeout_id = 0;
> +
> +	return false;
> +}

Instead of adding the new data->timeout variable why don't you simply
send the inquiry_complete from within the inquiry_timeout callback?

Johan
--
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