Add support for setting reconnect state
authorMartin Xu <martin.xu@intel.com>
Fri, 23 Oct 2009 10:38:39 +0000 (18:38 +0800)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 26 Oct 2009 17:01:55 +0000 (02:01 +0900)
When user connects service manually, reconnect will be set as FALSE
firstly, if the connection is successful, device will go into reconnect;
if connection is failure, device will keep at reconnect FALSE state.

When user dissconnect service manually, reconnect will be set as FALSE.

src/service.c

index 80aec05..4dbfe4a 100644 (file)
@@ -1000,6 +1000,8 @@ static DBusMessage *connect_service(DBusConnection *conn,
 
        service->pending = dbus_message_ref(msg);
 
+       set_reconnect_state(service, FALSE);
+
        err = __connman_service_connect(service);
        if (err < 0) {
                if (err == -ENOKEY) {
@@ -1036,6 +1038,8 @@ static DBusMessage *disconnect_service(DBusConnection *conn,
 
        service->ignore = TRUE;
 
+       set_reconnect_state(service, FALSE);
+
        err = __connman_service_disconnect(service);
        if (err < 0) {
                if (err != -EINPROGRESS)
@@ -1433,6 +1437,8 @@ int __connman_service_indicate_state(struct connman_service *service,
        state_changed(service);
 
        if (state == CONNMAN_SERVICE_STATE_READY) {
+               set_reconnect_state(service, TRUE);
+
                connman_service_set_favorite(service, TRUE);
 
                reply_pending(service, 0);
@@ -1817,6 +1823,8 @@ done:
                goto failed;
        }
 
+       set_reconnect_state(service, FALSE);
+
        __connman_device_disconnect(device);
 
        if (passphrase != NULL) {