All of lore.kernel.org
 help / color / mirror / Atom feed
From: Szymon Janc <szymon.janc@codecoup.pl>
To: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [PATCH BlueZ] core/profile: Fix calling service_accept
Date: Mon, 24 Oct 2016 21:19:24 +0200	[thread overview]
Message-ID: <3713727.Nn5RnqlORS@ix> (raw)
In-Reply-To: <1477326777-26717-1-git-send-email-luiz.dentz@gmail.com>

Hi Luiz,

On Monday, 24 October 2016 19:32:57 CEST Luiz Augusto von Dentz wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> 
> service_accept shall only be used with profiles that implement .accept
> callback, to set connecting state directly use service_set_connecting
> which does not require .accept to be implemented.
> ---
>  src/profile.c |  2 +-
>  src/service.c | 19 +++++++++++++++++++
>  src/service.h |  1 +
>  3 files changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git a/src/profile.c b/src/profile.c
> index c81a9f9..7c5318c 100644
> --- a/src/profile.c
> +++ b/src/profile.c
> @@ -1047,7 +1047,7 @@ static void ext_connect(GIOChannel *io, GError *err,
> gpointer user_data) conn);
>  	}
> 
> -	if (conn->service && service_accept(conn->service) < 0)
> +	if (conn->service && service_set_connecting(conn->service) < 0)
>  		goto drop;
> 
>  	if (send_new_connection(ext, conn))
> diff --git a/src/service.c b/src/service.c
> index 20a41d0..207ffae 100644
> --- a/src/service.c
> +++ b/src/service.c
> @@ -214,6 +214,25 @@ done:
>  	return 0;
>  }
> 
> +int service_set_connecting(struct btd_service *service)
> +{
> +	switch (service->state) {
> +	case BTD_SERVICE_STATE_UNAVAILABLE:
> +		return -EINVAL;
> +	case BTD_SERVICE_STATE_DISCONNECTED:
> +		break;
> +	case BTD_SERVICE_STATE_CONNECTING:
> +	case BTD_SERVICE_STATE_CONNECTED:
> +		return 0;
> +	case BTD_SERVICE_STATE_DISCONNECTING:
> +		return -EBUSY;
> +	}
> +
> +	change_state(service, BTD_SERVICE_STATE_CONNECTING, 0);
> +
> +	return 0;
> +}
> +
>  int btd_service_connect(struct btd_service *service)
>  {
>  	struct btd_profile *profile = service->profile;
> diff --git a/src/service.h b/src/service.h
> index c1f97f6..6f1edfb 100644
> --- a/src/service.h
> +++ b/src/service.h
> @@ -49,6 +49,7 @@ int service_probe(struct btd_service *service);
>  void service_remove(struct btd_service *service);
> 
>  int service_accept(struct btd_service *service);
> +int service_set_connecting(struct btd_service *service);
> 
>  /* Connection control API */
>  int btd_service_connect(struct btd_service *service);

Applied, thanks.

-- 
pozdrawiam
Szymon Janc

      reply	other threads:[~2016-10-24 19:19 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-24 16:32 [PATCH BlueZ] core/profile: Fix calling service_accept Luiz Augusto von Dentz
2016-10-24 19:19 ` Szymon Janc [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3713727.Nn5RnqlORS@ix \
    --to=szymon.janc@codecoup.pl \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=luiz.dentz@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.