Check result before overwriting WiFi.Security and WiFi.Passphrase
authorMarcel Holtmann <marcel@holtmann.org>
Thu, 26 Mar 2009 09:24:16 +0000 (02:24 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 26 Mar 2009 09:24:16 +0000 (02:24 -0700)
src/device.c
src/network.c

index ccfa592..e7c4b67 100644 (file)
@@ -530,7 +530,7 @@ static DBusMessage *join_network(DBusConnection *conn,
        index = connman_device_get_index(device);
        connman_network_set_index(network, index);
 
-       connman_network_set_available(network, TRUE);
+       connman_network_set_protocol(network, CONNMAN_NETWORK_PROTOCOL_IP);
 
        err = device->driver->join(device, network);
 
index e408e1d..c2e79d7 100644 (file)
@@ -1144,6 +1144,7 @@ static int network_load(struct connman_network *network)
        gchar *pathname, *data = NULL;
        gsize length;
        const char *name;
+       char *str;
        int val;
 
        DBG("network %p", network);
@@ -1181,13 +1182,19 @@ static int network_load(struct connman_network *network)
        if (val > 0)
                network->priority = val;
 
-       g_free(network->wifi.security);
-       network->wifi.security = g_key_file_get_string(keyfile,
+       str = g_key_file_get_string(keyfile,
                                network->identifier, "WiFi.Security", NULL);
+       if (str != NULL) {
+               g_free(network->wifi.security);
+               network->wifi.security = str;
+       }
 
-       g_free(network->wifi.passphrase);
-       network->wifi.passphrase = g_key_file_get_string(keyfile,
+       str = g_key_file_get_string(keyfile,
                                network->identifier, "WiFi.Passphrase", NULL);
+       if (str != NULL) {
+               g_free(network->wifi.passphrase);
+               network->wifi.passphrase = str;
+       }
 
        g_key_file_free(keyfile);