Tethering: Add hidden access point support in technology
[platform/upstream/connman.git] / plugins / wifi.c
index b5bc3ba..21f9912 100644 (file)
@@ -2927,7 +2927,8 @@ struct wifi_tethering_info {
        GSupplicantSSID *ssid;
 };
 
-static GSupplicantSSID *ssid_ap_init(const char *ssid, const char *passphrase)
+static GSupplicantSSID *ssid_ap_init(const char *ssid,
+               const char *passphrase, bool hidden)
 {
        GSupplicantSSID *ap;
 
@@ -2952,6 +2953,12 @@ static GSupplicantSSID *ssid_ap_init(const char *ssid, const char *passphrase)
               ap->passphrase = passphrase;
        }
 
+       if (hidden)
+               ap->ignore_broadcast_ssid =
+                               G_SUPPLICANT_AP_HIDDEN_SSID_ZERO_CONTENTS;
+       else
+               ap->ignore_broadcast_ssid = G_SUPPLICANT_AP_NO_SSID_HIDING;
+
        return ap;
 }
 
@@ -3032,7 +3039,7 @@ static void sta_remove_callback(int result,
 
 static int tech_set_tethering(struct connman_technology *technology,
                                const char *identifier, const char *passphrase,
-                               const char *bridge, bool enabled)
+                               const char *bridge, bool enabled, bool hidden)
 {
        GList *list;
        GSupplicantInterface *interface;
@@ -3085,7 +3092,7 @@ static int tech_set_tethering(struct connman_technology *technology,
                info->wifi = wifi;
                info->technology = technology;
                info->wifi->bridge = bridge;
-               info->ssid = ssid_ap_init(identifier, passphrase);
+               info->ssid = ssid_ap_init(identifier, passphrase, hidden);
                if (!info->ssid) {
                        g_free(info);
                        continue;