summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Xu <martin.xu@intel.com>2009-10-23 18:38:39 +0800
committerMarcel Holtmann <marcel@holtmann.org>2009-10-27 02:01:55 +0900
commit35b63623eefe84fdd687aa8c66faafd66d13c28f (patch)
tree1c1dcf8ec55794f2a78a7fbbbecc78fdd270b569
parent031c93a470d47af52c644cf96620b524d4c486fa (diff)
downloadconnman-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.c8
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) {