[PATCH 2/3] technology: Leverage 'DefaultEnabledTechnologies' setting.

Grant Erickson <[email protected]> Mon, 28 Jul 2025 15:32:16 -0700
Newsgroups dev.linux.lists.connman
Message-ID <[email protected]>
This leverages the new 'DefaultEnabledTechnologies' configuration
setting.
---
 src/technology.c | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/src/technology.c b/src/technology.c
index 270d83d0d3cb..2c709abdd3df 100644
--- a/src/technology.c
+++ b/src/technology.c
@@ -429,19 +429,27 @@ static void technology_load(struct connman_technology *technology)
 	GKeyFile *keyfile;
 	gchar *identifier;
 	GError *error = NULL;
-	bool enable, need_saving = false;
+	bool enable, need_saving = false, enable_persistent = false;
 	char *enc;
+	int i;
+	unsigned int *enabled_types;
 
 	DBG("technology %p", technology);
 
+	/* Determine which technology types are enabled by default */
+
+	enabled_types = connman_setting_get_uint_list("DefaultEnabledTechnologies");
+	for (i = 0; enabled_types && enabled_types[i] != 0; i++) {
+		if (technology->type == enabled_types[i]) {
+			enable_persistent = true;
+			break;
+		}
+	}
+
 	keyfile = __connman_storage_load_global();
 	/* Fallback on disabling technology if file not found. */
 	if (!keyfile) {
-		if (technology->type == CONNMAN_SERVICE_TYPE_ETHERNET)
-			/* We enable ethernet by default */
-			technology->enable_persistent = true;
-		else
-			technology->enable_persistent = false;
+		technology->enable_persistent = enable_persistent;
 		return;
 	}
 
@@ -453,10 +461,7 @@ static void technology_load(struct connman_technology *technology)
 	if (!error)
 		technology->enable_persistent = enable;
 	else {
-		if (technology->type == CONNMAN_SERVICE_TYPE_ETHERNET)
-			technology->enable_persistent = true;
-		else
-			technology->enable_persistent = false;
+		technology->enable_persistent = enable_persistent;
 
 		need_saving = true;
 		g_clear_error(&error);
-- 
2.45.0