From: Samuel Ortiz <[email protected]>
We need to save most of the wifi network settings in order to autconnect to
secure and hidden networks.
---
src/service.c | 35 +++++++++++++++++++++++++++++++++++
1 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/src/service.c b/src/service.c
index 9fefac8..24ee710 100644
--- a/src/service.c
+++ b/src/service.c
@@ -1526,6 +1526,7 @@ static int service_save(struct connman_service *service)
gchar *pathname, *data = NULL;
gsize length;
gchar *str;
+ const char *security;
DBG("service %p", service);
@@ -1559,6 +1560,31 @@ update:
case CONNMAN_SERVICE_TYPE_ETHERNET:
break;
case CONNMAN_SERVICE_TYPE_WIFI:
+ if (service->network) {
+ char *identifier = service->identifier;
+ const void *ssid;
+ const char *bssid;
+ unsigned int ssid_len = 0;
+
+ ssid = connman_network_get_blob(service->network,
+ "WiFi.SSID",
+ &ssid_len);
+
+ bssid = connman_network_get_string(service->network,
+ "Address");
+
+ if (ssid) {
+ g_key_file_set_value(keyfile, identifier,
+ "SSID", ssid);
+ g_key_file_set_integer(keyfile, identifier,
+ "SSID_len", ssid_len);
+ }
+
+ if (bssid)
+ g_key_file_set_string(keyfile, identifier,
+ "BSSID", bssid);
+ }
+
case CONNMAN_SERVICE_TYPE_WIMAX:
case CONNMAN_SERVICE_TYPE_BLUETOOTH:
case CONNMAN_SERVICE_TYPE_CELLULAR:
@@ -1585,6 +1611,15 @@ update:
g_free(str);
}
+ security = security2string(service->security);
+ if (security)
+ g_key_file_set_string(keyfile, service->identifier,
+ "Security",
+ security2string(service->security));
+ else
+ g_key_file_set_string(keyfile, service->identifier,
+ "Security", "none");
+
if (service->passphrase != NULL)
g_key_file_set_string(keyfile, service->identifier,
"Passphrase", service->passphrase);
--
1.6.3.1
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman