gsupplicant: Add interface bridge setting
[platform/upstream/connman.git] / plugins / wifi.c
index c606c66..b7055c3 100644 (file)
@@ -70,6 +70,8 @@ struct wifi_data {
        unsigned int watch;
 };
 
+static GList *iface_list = NULL;
+
 static int get_bssid(struct connman_device *device,
                                unsigned char *bssid, unsigned int *bssid_len)
 {
@@ -159,6 +161,8 @@ static int wifi_probe(struct connman_device *device)
        wifi->watch = connman_rtnl_add_newlink_watch(wifi->index,
                                                        wifi_newlink, device);
 
+       iface_list = g_list_append(iface_list, wifi);
+
        return 0;
 }
 
@@ -168,6 +172,11 @@ static void wifi_remove(struct connman_device *device)
 
        DBG("device %p", device);
 
+       if (wifi == NULL)
+               return;
+
+       iface_list = g_list_remove(iface_list, wifi);
+
        if (wifi->pending_network != NULL) {
                connman_network_unref(wifi->pending_network);
                wifi->pending_network = NULL;
@@ -222,7 +231,7 @@ static int wifi_enable(struct connman_device *device)
 
        DBG("device %p %p", device, wifi);
 
-       return g_supplicant_interface_create(interface, driver,
+       return g_supplicant_interface_create(interface, driver, NULL,
                                                interface_create_callback,
                                                        wifi);
 }
@@ -341,8 +350,10 @@ static void ssid_init(GSupplicantSSID *ssid, struct connman_network *network)
        const char *security, *passphrase;
 
        memset(ssid, 0, sizeof(*ssid));
+       ssid->mode = G_SUPPLICANT_MODE_INFRA;
        ssid->ssid = connman_network_get_blob(network, "WiFi.SSID",
                                                &ssid->ssid_len);
+       ssid->scan_ssid = 1;
        security = connman_network_get_string(network, "WiFi.Security");
        ssid->security = network_security(security);
        passphrase = connman_network_get_string(network,