From eaa2d80ecdf7b64ee620292a0dc94adfe7c6e8aa Mon Sep 17 00:00:00 2001 From: Patrik Flykt Date: Thu, 5 Apr 2012 22:38:34 +0300 Subject: [PATCH] service: Set autoconnect according to configured preferences --- src/service.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/service.c b/src/service.c index 8a7e423..488b2bd 100644 --- a/src/service.c +++ b/src/service.c @@ -30,6 +30,7 @@ #include #include +#include #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; } -- 2.7.4