projects
/
framework
/
connectivity
/
connman.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
storage: Return any errors when saving services and global config
[framework/connectivity/connman.git]
/
src
/
config.c
diff --git
a/src/config.c
b/src/config.c
index
db15228
..
66e1316
100644
(file)
--- a/
src/config.c
+++ b/
src/config.c
@@
-2,7
+2,7
@@
*
* Connection Manager
*
*
* Connection Manager
*
- * Copyright (C) 2007-201
0
Intel Corporation. All rights reserved.
+ * Copyright (C) 2007-201
2
Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@
-258,7
+258,13
@@
static int load_service(GKeyFile *keyfile, const char *group,
}
for (i = 0; i < hex_ssid_len; i += 2) {
}
for (i = 0; i < hex_ssid_len; i += 2) {
- sscanf(hex_ssid + i, "%02x", &hex);
+ if (sscanf(hex_ssid + i, "%02x", &hex) <= 0) {
+ connman_warn("Invalid SSID %s", hex_ssid);
+ g_free(ssid);
+ g_free(hex_ssid);
+ err = -EILSEQ;
+ goto err;
+ }
ssid[j++] = hex;
}
ssid[j++] = hex;
}
@@
-378,7
+384,7
@@
static int load_config(struct connman_config *config)
gsize length;
char **groups;
char *str;
gsize length;
char **groups;
char *str;
- gboolean protected;
+ gboolean protected
, found = FALSE
;
int i;
DBG("config %p", config);
int i;
DBG("config %p", config);
@@
-412,10
+418,17
@@
static int load_config(struct connman_config *config)
groups = g_key_file_get_groups(keyfile, &length);
for (i = 0; groups[i] != NULL; i++) {
groups = g_key_file_get_groups(keyfile, &length);
for (i = 0; groups[i] != NULL; i++) {
- if (g_str_has_prefix(groups[i], "service_") == TRUE)
- load_service(keyfile, groups[i], config);
+ if (g_str_has_prefix(groups[i], "service_") == TRUE) {
+ if (load_service(keyfile, groups[i], config) == 0)
+ found = TRUE;
+ }
}
}
+ if (found == FALSE)
+ connman_warn("Config file %s/%s.config does not contain any "
+ "configuration that can be provisioned!",
+ STORAGEDIR, config->ident);
+
g_strfreev(groups);
g_key_file_free(keyfile);
g_strfreev(groups);
g_key_file_free(keyfile);