From: Zhang zhengguang <[email protected]>

Signed-off-by: Zhang zhengguang <[email protected]>
---
 gsupplicant/supplicant.c |   12 +++++++++---
 src/service.c            |    9 ++++++---
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index 559dfbc..c0f8cb6 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -3377,15 +3377,20 @@ static void add_network_security_eap(DBusMessageIter 
*dict,
 {
        char *eap_value;
 
-       if (!ssid->eap || !ssid->identity)
+       if (!ssid->eap)
                return;
 
        if (g_strcmp0(ssid->eap, "tls") == 0) {
+               if (!ssid->identity)
+                       return;
                add_network_security_tls(dict, ssid);
        } else if (g_strcmp0(ssid->eap, "peap") == 0 ||
                                g_strcmp0(ssid->eap, "ttls") == 0) {
+               if (!ssid->identity)
+                       return;
                add_network_security_peap(dict, ssid);
-       } else
+       } else if (g_strcmp0(ssid->eap, "sim") != 0 &&
+                               g_strcmp0(ssid->eap, "aka") != 0)
                return;
 
        eap_value = g_ascii_strup(ssid->eap, -1);
@@ -3393,7 +3398,8 @@ static void add_network_security_eap(DBusMessageIter 
*dict,
        supplicant_dbus_dict_append_basic(dict, "eap",
                                                DBUS_TYPE_STRING,
                                                &eap_value);
-       supplicant_dbus_dict_append_basic(dict, "identity",
+       if (ssid->identity)
+               supplicant_dbus_dict_append_basic(dict, "identity",
                                                DBUS_TYPE_STRING,
                                                &ssid->identity);
 
diff --git a/src/service.c b/src/service.c
index 33cce14..269ddd7 100644
--- a/src/service.c
+++ b/src/service.c
@@ -5831,10 +5831,13 @@ static int service_connect(struct connman_service 
*service)
                                return -EINVAL;
 
                        /*
-                        * never request credentials if using EAP-TLS
-                        * (EAP-TLS networks need to be fully provisioned)
+                        * never request credentials if using EAP-TLS, EAP-SIM
+                        * and EAP-AKA(EAP-TLS, EAP-SIM and EAP-AKA networks
+                        * need to be fully provisioned)
                         */
-                       if (g_str_equal(service->eap, "tls"))
+                       if (g_str_equal(service->eap, "tls") ||
+                                       g_str_equal(service->eap, "sim") ||
+                                       g_str_equal(service->eap, "aka"))
                                break;
 
                        /*
-- 
1.7.10.4

_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman

Reply via email to