diff options
author | Patrik Flykt <patrik.flykt@linux.intel.com> | 2012-04-05 22:38:34 +0300 |
---|---|---|
committer | Patrik Flykt <patrik.flykt@linux.intel.com> | 2012-04-11 13:24:34 +0300 |
commit | eaa2d80ecdf7b64ee620292a0dc94adfe7c6e8aa (patch) | |
tree | cc82d8efcc11649301031400ff68d740b181fb62 | |
parent | 4ac6fb6c041115c6226c1e527b7b8f8236ed44f2 (diff) | |
download | connman-eaa2d80ecdf7b64ee620292a0dc94adfe7c6e8aa.tar.gz connman-eaa2d80ecdf7b64ee620292a0dc94adfe7c6e8aa.tar.bz2 connman-eaa2d80ecdf7b64ee620292a0dc94adfe7c6e8aa.zip |
service: Set autoconnect according to configured preferences
-rw-r--r-- | src/service.c | 19 |
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; } |