Re: [PATCH BlueZ 1/2] shared/gatt-client: Don't remove notification handlers

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

 



Hi,

On Wed, Mar 16, 2016 at 3:17 PM, Luiz Augusto von Dentz
<luiz.dentz@xxxxxxxxx> wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx>
>
> The notification handlers shall not be removed automatically when service
> changed is received and the handle is in range. The user should be able to
> decide whether to keep the registration or not since it will get events of
> the service changed via gatt_db.
> ---
>  src/shared/gatt-client.c | 51 ------------------------------------------------
>  1 file changed, 51 deletions(-)
>
> diff --git a/src/shared/gatt-client.c b/src/shared/gatt-client.c
> index 7fa0b1d..37c219b 100644
> --- a/src/shared/gatt-client.c
> +++ b/src/shared/gatt-client.c
> @@ -291,25 +291,6 @@ struct handle_range {
>         uint16_t end;
>  };
>
> -static bool match_notify_data_handle_range(const void *a, const void *b)
> -{
> -       const struct notify_data *notify_data = a;
> -       struct notify_chrc *chrc = notify_data->chrc;
> -       const struct handle_range *range = b;
> -
> -       return chrc->value_handle >= range->start &&
> -                                       chrc->value_handle <= range->end;
> -}
> -
> -static bool match_notify_chrc_handle_range(const void *a, const void *b)
> -{
> -       const struct notify_chrc *chrc = a;
> -       const struct handle_range *range = b;
> -
> -       return chrc->value_handle >= range->start &&
> -                                       chrc->value_handle <= range->end;
> -}
> -
>  static void notify_data_cleanup(void *data)
>  {
>         struct notify_data *notify_data = data;
> @@ -320,32 +301,6 @@ static void notify_data_cleanup(void *data)
>         notify_data_unref(notify_data);
>  }
>
> -static void gatt_client_remove_all_notify_in_range(
> -                               struct bt_gatt_client *client,
> -                               uint16_t start_handle, uint16_t end_handle)
> -{
> -       struct handle_range range;
> -
> -       range.start = start_handle;
> -       range.end = end_handle;
> -
> -       queue_remove_all(client->notify_list, match_notify_data_handle_range,
> -                                               &range, notify_data_cleanup);
> -}
> -
> -static void gatt_client_remove_notify_chrcs_in_range(
> -                               struct bt_gatt_client *client,
> -                               uint16_t start_handle, uint16_t end_handle)
> -{
> -       struct handle_range range;
> -
> -       range.start = start_handle;
> -       range.end = end_handle;
> -
> -       queue_remove_all(client->notify_chrcs, match_notify_chrc_handle_range,
> -                                               &range, notify_chrc_free);
> -}
> -
>  struct discovery_op;
>
>  typedef void (*discovery_op_complete_func_t)(struct discovery_op *op,
> @@ -1426,12 +1381,6 @@ static void process_service_changed(struct bt_gatt_client *client,
>         if (start_handle == 0x0001 && end_handle == 0xffff)
>                 goto discover;
>
> -       /* Invalidate and remove all effected notify callbacks */
> -       gatt_client_remove_all_notify_in_range(client, start_handle,
> -                                                               end_handle);
> -       gatt_client_remove_notify_chrcs_in_range(client, start_handle,
> -                                                               end_handle);
> -
>         /* Remove all services that overlap the modified range since we'll
>          * rediscover them
>          */
> --
> 2.5.0

Applied.


-- 
Luiz Augusto von Dentz
--
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