Hi Pekka, On Mon, Jan 24, 2011 at 07:55:38PM +0200, pekka.pe...@nokia.com wrote: > From: Pekka Pessi <pekka.pe...@nokia.com> > > 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 connman@connman.net http://lists.connman.net/listinfo/connman