connman relies on GLib to read key/value pairs from config files
g_key_file_get_string() strips leading whitespace of a value, but
preserves trailing whitespace
this can lead to hard to find errors when values contain whitespace,
e.g.
Type = wifi[blank]
or
Name = MYSSID[blank]
in provisioning config files
no error/warning is given
this patch aims to call g_strchomp() on values read by various
g_key_file_get_...() functions by providing wrapper functions
one problem is handling of pass phrases, given by keys PrivateKeyPassphrase
and Passphrase; trailing whitespace is removed now
---
src/config.c | 46 +++++++++++++++++++++++-----------------------
src/main.c | 18 +++++++++---------
2 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/src/config.c b/src/config.c
index fee3ed1..f023a97 100644
--- a/src/config.c
+++ b/src/config.c
@@ -377,7 +377,7 @@ static bool load_service_generic(GKeyFile *keyfile,
char **strlist;
gsize length;
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_IPv4, NULL);
+ str = __connman_config_get_string(keyfile, group, SERVICE_KEY_IPv4,
NULL);
if (str && check_address(str, &service->ipv4_address)) {
mask = NULL;
@@ -412,7 +412,7 @@ static bool load_service_generic(GKeyFile *keyfile,
g_free(str);
}
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_IPv6, NULL);
+ str = __connman_config_get_string(keyfile, group, SERVICE_KEY_IPv6,
NULL);
if (str && check_address(str, &service->ipv6_address)) {
long int value;
char *ptr;
@@ -437,26 +437,26 @@ static bool load_service_generic(GKeyFile *keyfile,
g_free(str);
}
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_IPv6_PRIVACY,
+ str = __connman_config_get_string(keyfile, group,
SERVICE_KEY_IPv6_PRIVACY,
NULL);
if (str) {
g_free(service->ipv6_privacy);
service->ipv6_privacy = str;
}
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_MAC, NULL);
+ str = __connman_config_get_string(keyfile, group, SERVICE_KEY_MAC,
NULL);
if (str) {
g_free(service->mac);
service->mac = str;
}
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_DOMAIN, NULL);
+ str = __connman_config_get_string(keyfile, group, SERVICE_KEY_DOMAIN,
NULL);
if (str) {
g_free(service->domain_name);
service->domain_name = str;
}
- strlist = g_key_file_get_string_list(keyfile, group,
+ strlist = __connman_config_get_string_list(keyfile, group,
SERVICE_KEY_NAMESERVERS,
&length, NULL);
if (strlist) {
@@ -467,7 +467,7 @@ static bool load_service_generic(GKeyFile *keyfile,
g_strfreev(strlist);
}
- strlist = g_key_file_get_string_list(keyfile, group,
+ strlist = __connman_config_get_string_list(keyfile, group,
SERVICE_KEY_SEARCH_DOMAINS,
&length, NULL);
if (strlist) {
@@ -478,7 +478,7 @@ static bool load_service_generic(GKeyFile *keyfile,
g_strfreev(strlist);
}
- strlist = g_key_file_get_string_list(keyfile, group,
+ strlist = __connman_config_get_string_list(keyfile, group,
SERVICE_KEY_TIMESERVERS,
&length, NULL);
if (strlist) {
@@ -533,7 +533,7 @@ static bool load_service(GKeyFile *keyfile, const char
*group,
service_created = true;
}
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_TYPE, NULL);
+ str = __connman_config_get_string(keyfile, group, SERVICE_KEY_TYPE,
NULL);
if (str) {
g_free(service->type);
service->type = str;
@@ -556,13 +556,13 @@ static bool load_service(GKeyFile *keyfile, const char
*group,
return 0;
}
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_NAME, NULL);
+ str = __connman_config_get_string(keyfile, group, SERVICE_KEY_NAME,
NULL);
if (str) {
g_free(service->name);
service->name = str;
}
- hex_ssid = g_key_file_get_string(keyfile, group, SERVICE_KEY_SSID,
+ hex_ssid = __connman_config_get_string(keyfile, group, SERVICE_KEY_SSID,
NULL);
if (hex_ssid) {
char *ssid;
@@ -605,57 +605,57 @@ static bool load_service(GKeyFile *keyfile, const char
*group,
service->ssid_len = ssid_len;
}
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_EAP, NULL);
+ str = __connman_config_get_string(keyfile, group, SERVICE_KEY_EAP,
NULL);
if (str) {
g_free(service->eap);
service->eap = str;
}
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_CA_CERT, NULL);
+ str = __connman_config_get_string(keyfile, group, SERVICE_KEY_CA_CERT,
NULL);
if (str) {
g_free(service->ca_cert_file);
service->ca_cert_file = str;
}
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_CL_CERT, NULL);
+ str = __connman_config_get_string(keyfile, group, SERVICE_KEY_CL_CERT,
NULL);
if (str) {
g_free(service->client_cert_file);
service->client_cert_file = str;
}
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_PRV_KEY, NULL);
+ str = __connman_config_get_string(keyfile, group, SERVICE_KEY_PRV_KEY,
NULL);
if (str) {
g_free(service->private_key_file);
service->private_key_file = str;
}
- str = g_key_file_get_string(keyfile, group,
+ str = __connman_config_get_string(keyfile, group,
SERVICE_KEY_PRV_KEY_PASS, NULL);
if (str) {
g_free(service->private_key_passphrase);
service->private_key_passphrase = str;
}
- str = g_key_file_get_string(keyfile, group,
+ str = __connman_config_get_string(keyfile, group,
SERVICE_KEY_PRV_KEY_PASS_TYPE, NULL);
if (str) {
g_free(service->private_key_passphrase_type);
service->private_key_passphrase_type = str;
}
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_IDENTITY, NULL);
+ str = __connman_config_get_string(keyfile, group, SERVICE_KEY_IDENTITY,
NULL);
if (str) {
g_free(service->identity);
service->identity = str;
}
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_PHASE2, NULL);
+ str = __connman_config_get_string(keyfile, group, SERVICE_KEY_PHASE2,
NULL);
if (str) {
g_free(service->phase2);
service->phase2 = str;
}
- str = g_key_file_get_string(keyfile, group, SERVICE_KEY_PASSPHRASE,
+ str = __connman_config_get_string(keyfile, group,
SERVICE_KEY_PASSPHRASE,
NULL);
if (str) {
g_free(service->passphrase);
@@ -665,7 +665,7 @@ static bool load_service(GKeyFile *keyfile, const char
*group,
service->config_ident = g_strdup(config->ident);
service->config_entry = g_strdup_printf("service_%s", service->ident);
- service->hidden = g_key_file_get_boolean(keyfile, group,
+ service->hidden = __connman_config_get_bool(keyfile, group,
SERVICE_KEY_HIDDEN, NULL);
if (service_created)
@@ -723,13 +723,13 @@ static int load_config(struct connman_config *config)
/* Verify keys validity of the global section */
check_keys(keyfile, "global", config_possible_keys);
- str = g_key_file_get_string(keyfile, "global", CONFIG_KEY_NAME, NULL);
+ str = __connman_config_get_string(keyfile, "global", CONFIG_KEY_NAME,
NULL);
if (str) {
g_free(config->name);
config->name = str;
}
- str = g_key_file_get_string(keyfile, "global", CONFIG_KEY_DESC, NULL);
+ str = __connman_config_get_string(keyfile, "global", CONFIG_KEY_DESC,
NULL);
if (str) {
g_free(config->description);
config->description = str;
diff --git a/src/main.c b/src/main.c
index 7bb7659..c1d4620 100644
--- a/src/main.c
+++ b/src/main.c
@@ -255,14 +255,14 @@ static void parse_config(GKeyFile *config)
g_clear_error(&error);
- timeservers = g_key_file_get_string_list(config, "General",
+ timeservers = __connman_config_get_string_list(config, "General",
CONF_PREF_TIMESERVERS, NULL, &error);
if (!error)
connman_settings.pref_timeservers = timeservers;
g_clear_error(&error);
- str_list = g_key_file_get_string_list(config, "General",
+ str_list = __connman_config_get_string_list(config, "General",
CONF_AUTO_CONNECT, &len, &error);
if (!error)
@@ -276,7 +276,7 @@ static void parse_config(GKeyFile *config)
g_clear_error(&error);
- str_list = g_key_file_get_string_list(config, "General",
+ str_list = __connman_config_get_string_list(config, "General",
CONF_PREFERRED_TECHS, &len, &error);
if (!error)
@@ -287,7 +287,7 @@ static void parse_config(GKeyFile *config)
g_clear_error(&error);
- str_list = g_key_file_get_string_list(config, "General",
+ str_list = __connman_config_get_string_list(config, "General",
CONF_FALLBACK_NAMESERVERS, &len, &error);
if (!error)
@@ -312,7 +312,7 @@ static void parse_config(GKeyFile *config)
g_clear_error(&error);
- interfaces = g_key_file_get_string_list(config, "General",
+ interfaces = __connman_config_get_string_list(config, "General",
CONF_BLACKLISTED_INTERFACES, &len, &error);
if (!error)
@@ -323,7 +323,7 @@ static void parse_config(GKeyFile *config)
g_clear_error(&error);
- boolean = g_key_file_get_boolean(config, "General",
+ boolean = __connman_config_get_bool(config, "General",
CONF_ALLOW_HOSTNAME_UPDATES,
&error);
if (!error)
@@ -331,14 +331,14 @@ static void parse_config(GKeyFile *config)
g_clear_error(&error);
- boolean = g_key_file_get_boolean(config, "General",
+ boolean = __connman_config_get_bool(config, "General",
CONF_SINGLE_TECH, &error);
if (!error)
connman_settings.single_tech = boolean;
g_clear_error(&error);
- tethering = g_key_file_get_string_list(config, "General",
+ tethering = __connman_config_get_string_list(config, "General",
CONF_TETHERING_TECHNOLOGIES, &len, &error);
if (!error)
@@ -346,7 +346,7 @@ static void parse_config(GKeyFile *config)
g_clear_error(&error);
- boolean = g_key_file_get_boolean(config, "General",
+ boolean = __connman_config_get_bool(config, "General",
CONF_PERSISTENT_TETHERING_MODE,
&error);
if (!error)
--
1.7.9.5
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman