Re: [MM] [PATCH] bearer: deny disconnect request if there is a cancel outstanding
- From: Aleksander Morgado <aleksander lanedo com>
- To: Ben Chan <benchan chromium org>
- Cc: Thieu Le <thieule chromium org>, networkmanager-list gnome org
- Subject: Re: [MM] [PATCH] bearer: deny disconnect request if there is a cancel outstanding
- Date: Mon, 30 Jul 2012 14:56:11 +0200
Hey Ben & Thieu,
> ---
> src/mm-bearer.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/src/mm-bearer.c b/src/mm-bearer.c
> index 3cce948..3b1be8c 100644
> --- a/src/mm-bearer.c
> +++ b/src/mm-bearer.c
> @@ -450,7 +450,8 @@ mm_bearer_disconnect (MMBearer *self,
> }
>
> /* If already disconnecting, return error, don't allow a second request. */
> - if (self->priv->status == MM_BEARER_STATUS_DISCONNECTING) {
> + if (self->priv->status == MM_BEARER_STATUS_DISCONNECTING ||
> + self->priv->disconnect_signal_handler) {
> g_simple_async_result_set_error (
> simple,
> MM_CORE_ERROR,
>
Just wondering if it's not better to change the bearer state to
'disconnecting' when we cancel the connection attempt, something like:
diff --git a/src/mm-bearer.c b/src/mm-bearer.c
index 3cce948..d8e681f 100644
--- a/src/mm-bearer.c
+++ b/src/mm-bearer.c
@@ -466,6 +466,8 @@ mm_bearer_disconnect (MMBearer *self,
/* If currently connecting, try to cancel that operation, and wait
to get
* disconnected. */
if (self->priv->status == MM_BEARER_STATUS_CONNECTING) {
+ bearer_update_status (self, MM_BEARER_STATUS_DISCONNECTING);
+
/* We MUST ensure that we get to DISCONNECTED */
g_cancellable_cancel (self->priv->connect_cancellable);
I believe that it should work; could you guys test that?
Cheers!
--
Aleksander
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]