summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrik Flykt <patrik.flykt@linux.intel.com>2012-04-05 22:38:34 +0300
committerPatrik Flykt <patrik.flykt@linux.intel.com>2012-04-11 13:24:34 +0300
commiteaa2d80ecdf7b64ee620292a0dc94adfe7c6e8aa (patch)
treecc82d8efcc11649301031400ff68d740b181fb62
parent4ac6fb6c041115c6226c1e527b7b8f8236ed44f2 (diff)
downloadconnman-eaa2d80ecdf7b64ee620292a0dc94adfe7c6e8aa.tar.gz
connman-eaa2d80ecdf7b64ee620292a0dc94adfe7c6e8aa.tar.bz2
connman-eaa2d80ecdf7b64ee620292a0dc94adfe7c6e8aa.zip
service: Set autoconnect according to configured preferences
-rw-r--r--src/service.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/service.c b/src/service.c
index 8a7e4238..488b2bd3 100644
--- a/src/service.c
+++ b/src/service.c
@@ -30,6 +30,7 @@
#include <gdbus.h>
#include <connman/storage.h>
+#include <connman/setting.h>
#include "connman.h"
@@ -5492,7 +5493,8 @@ struct connman_service * __connman_service_create_from_network(struct connman_ne
struct connman_device *device;
const char *ident, *group;
char *name;
- int index;
+ unsigned int *auto_connect_types;
+ int i, index;
DBG("network %p", network);
@@ -5526,6 +5528,15 @@ struct connman_service * __connman_service_create_from_network(struct connman_ne
service->type = convert_network_type(network);
+ auto_connect_types = connman_setting_get_uint_list("DefaultAutoConnectTechnologies");
+ service->autoconnect = FALSE;
+ for (i = 0; auto_connect_types[i] != 0; i += 1) {
+ if (service->type == auto_connect_types[i]) {
+ service->autoconnect = TRUE;
+ break;
+ }
+ }
+
switch (service->type) {
case CONNMAN_SERVICE_TYPE_UNKNOWN:
case CONNMAN_SERVICE_TYPE_SYSTEM:
@@ -5534,13 +5545,11 @@ struct connman_service * __connman_service_create_from_network(struct connman_ne
case CONNMAN_SERVICE_TYPE_GPS:
case CONNMAN_SERVICE_TYPE_VPN:
case CONNMAN_SERVICE_TYPE_GADGET:
- service->autoconnect = FALSE;
+ case CONNMAN_SERVICE_TYPE_WIFI:
+ case CONNMAN_SERVICE_TYPE_CELLULAR:
break;
case CONNMAN_SERVICE_TYPE_ETHERNET:
service->favorite = TRUE;
- case CONNMAN_SERVICE_TYPE_WIFI:
- case CONNMAN_SERVICE_TYPE_CELLULAR:
- service->autoconnect = TRUE;
break;
}