Hi Pekka,
On Mon, Jan 24, 2011 at 07:55:38PM +0200, [email protected] wrote:
> From: Pekka Pessi <[email protected]>
>
> The connman_network/provider_connect() could fail in two different ways,
> returning an error code or setting the service state to failed.
>
> Ethernet, WiMax, Bluetooth, VPN, Cellular and WiFi services now get
> marked as failed if connect() fails with error code, too. This makes
> connman_service_clear_error() and the autoconnect procedure to behave in
> consistent manner.
> ---
> src/service.c | 64
> +++++++++++++++++++++++++++++++++++++++++----------------
> 1 files changed, 46 insertions(+), 18 deletions(-)
>
> diff --git a/src/service.c b/src/service.c
> index 3a4260a..2b9bbef 100644
> --- a/src/service.c
> +++ b/src/service.c
> @@ -2420,6 +2420,9 @@ static DBusMessage *connect_service(DBusConnection
> *conn,
> return NULL;
> }
>
> + if (service->pending == NULL)
> + return NULL;
> +
Not sure how this could happen (pending == NULL), but it doesn't hurt to
check.
> if (err != -EINPROGRESS) {
> dbus_message_unref(service->pending);
> service->pending = NULL;
> @@ -3319,18 +3322,10 @@ static void prepare_8021x(struct connman_service
> *service)
> service->phase2);
> }
>
> -int __connman_service_connect(struct connman_service *service)
> +static int service_connect(struct connman_service *service)
> {
> int err;
>
> - DBG("service %p", service);
> -
> - if (is_connected(service) == TRUE)
> - return -EISCONN;
> -
> - if (is_connecting(service) == TRUE)
> - return -EALREADY;
> -
> switch (service->type) {
> case CONNMAN_SERVICE_TYPE_UNKNOWN:
> case CONNMAN_SERVICE_TYPE_SYSTEM:
> @@ -3396,7 +3391,7 @@ int __connman_service_connect(struct connman_service
> *service)
> err = __connman_network_connect(service->network);
> } else if (service->type == CONNMAN_SERVICE_TYPE_VPN &&
> service->provider != NULL)
> - err = __connman_provider_connect(service->provider);
> + return __connman_provider_connect(service->provider);
We don't want to return here.
The rest looks fine.
Cheers,
Samuel.
--
Intel Open Source Technology Centre
http://oss.intel.com/
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman