diff options
author | Martin Xu <martin.xu@intel.com> | 2009-10-23 18:38:39 +0800 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2009-10-27 02:01:55 +0900 |
commit | 35b63623eefe84fdd687aa8c66faafd66d13c28f (patch) | |
tree | 1c1dcf8ec55794f2a78a7fbbbecc78fdd270b569 | |
parent | 031c93a470d47af52c644cf96620b524d4c486fa (diff) | |
download | connman-35b63623eefe84fdd687aa8c66faafd66d13c28f.tar.gz connman-35b63623eefe84fdd687aa8c66faafd66d13c28f.tar.bz2 connman-35b63623eefe84fdd687aa8c66faafd66d13c28f.zip |
Add support for setting reconnect state
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.
-rw-r--r-- | src/service.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/service.c b/src/service.c index 80aec05a..4dbfe4aa 100644 --- a/src/service.c +++ b/src/service.c @@ -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) { |