Merge "Add support for WPS2-PSK security type in Security property of service interfa... accepted/tizen/common/20160614.144019 accepted/tizen/ivi/20160614.103653 accepted/tizen/mobile/20160614.103642 accepted/tizen/tv/20160614.103619 accepted/tizen/wearable/20160614.103626 submit/tizen/20160614.053635
authortaesub kim <taesub.kim@samsung.com>
Tue, 14 Jun 2016 04:30:50 +0000 (21:30 -0700)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Tue, 14 Jun 2016 04:30:50 +0000 (21:30 -0700)
1  2 
gsupplicant/supplicant.c
src/network.c
src/service.c

diff --combined gsupplicant/supplicant.c
@@@ -1292,6 -1292,18 +1292,18 @@@ const char *g_supplicant_network_get_en
  
        return NULL;
  }
+ bool g_supplicant_network_get_rsn_selected(GSupplicantNetwork *network)
+ {
+       if (network == NULL || network->best_bss == NULL)
+               return 0;
+       if (network->best_bss->rsn_selected)
+               return true;
+       else
+               return false;
+ }
  #endif
  
  static void merge_network(GSupplicantNetwork *network)
@@@ -4216,13 -4228,8 +4228,13 @@@ int g_supplicant_interface_scan(GSuppli
  
        data->interface = interface;
        data->path = g_strdup(interface->path);
 +#if defined TIZEN_EXT
 +      data->interface->scan_callback = data->callback = callback;
 +      data->interface->scan_data = data->user_data = user_data;
 +#else
        data->callback = callback;
        data->user_data = user_data;
 +#endif
        data->scan_params = scan_data;
  
          interface->scan_callback = callback;
@@@ -4490,10 -4497,8 +4502,10 @@@ static void add_network_security_tls(DB
        if (!ssid->private_key_path)
                return;
  
 +#if !defined TIZEN_EXT
        if (!ssid->private_key_passphrase)
                return;
 +#endif
  
        if (ssid->ca_cert_path)
                supplicant_dbus_dict_append_basic(dict, "ca_cert",
        supplicant_dbus_dict_append_basic(dict, "private_key",
                                                DBUS_TYPE_STRING,
                                                &ssid->private_key_path);
 +#if !defined TIZEN_EXT
        supplicant_dbus_dict_append_basic(dict, "private_key_passwd",
                                                DBUS_TYPE_STRING,
                                                &ssid->private_key_passphrase);
 +#endif
        supplicant_dbus_dict_append_basic(dict, "client_cert",
                                                DBUS_TYPE_STRING,
                                                &ssid->client_cert_path);
@@@ -4538,10 -4541,8 +4550,10 @@@ static void add_network_security_peap(D
                if (!ssid->private_key_path)
                        return;
  
 +#if !defined TIZEN_EXT
                if (!ssid->private_key_passphrase)
                        return;
 +#endif
  
                supplicant_dbus_dict_append_basic(dict, "client_cert",
                                                DBUS_TYPE_STRING,
                                                DBUS_TYPE_STRING,
                                                &ssid->private_key_path);
  
 +#if !defined TIZEN_EXT
                supplicant_dbus_dict_append_basic(dict, "private_key_passwd",
                                                DBUS_TYPE_STRING,
                                                &ssid->private_key_passphrase);
 +#endif
  
        }
  
diff --combined src/network.c
@@@ -97,6 -97,7 +97,7 @@@ struct connman_network 
                unsigned char bssid[WIFI_BSSID_LEN_MAX];
                unsigned int maxrate;
                unsigned int isHS20AP;
+               bool rsn_selected;
  #endif
        } wifi;
  
@@@ -1311,8 -1312,15 +1312,8 @@@ static gboolean __connman_network_clear
  
        if (network->associating == FALSE &&
                        state_ipv4 == CONNMAN_SERVICE_STATE_ASSOCIATION &&
 -                      state_ipv6 == CONNMAN_SERVICE_STATE_ASSOCIATION) {
 -              __connman_service_ipconfig_indicate_state(service,
 -                                                      CONNMAN_SERVICE_STATE_IDLE,
 -                                                      CONNMAN_IPCONFIG_TYPE_IPV4);
 -
 -              __connman_service_ipconfig_indicate_state(service,
 -                                                      CONNMAN_SERVICE_STATE_IDLE,
 -                                                      CONNMAN_IPCONFIG_TYPE_IPV6);
 -      }
 +                      state_ipv6 == CONNMAN_SERVICE_STATE_ASSOCIATION)
 +              connman_network_clear_associating(network);
  
        return FALSE;
  }
@@@ -1875,6 -1883,14 +1876,14 @@@ const char *connman_network_get_enc_mod
        return (const char *)network->wifi.encryption_mode;
  }
  
+ int connman_network_set_rsn_selected(struct connman_network *network,
+                               bool rsn_selected)
+ {
+       network->wifi.rsn_selected = rsn_selected;
+       return 0;
+ }
  int connman_network_set_proxy(struct connman_network *network,
                                const char *proxies)
  {
@@@ -2125,7 -2141,15 +2134,15 @@@ const char *connman_network_get_string(
        else if (g_str_equal(key, "WiFi.Mode"))
                return network->wifi.mode;
        else if (g_str_equal(key, "WiFi.Security"))
+ #if defined TIZEN_EXT
+               if (network->wifi.rsn_selected != true ||
+                   g_str_equal(network->wifi.security, "ieee8021x"))
+                       return network->wifi.security;
+               else
+                       return "rsn";
+ #else
                return network->wifi.security;
+ #endif
        else if (g_str_equal(key, "WiFi.Passphrase"))
                return network->wifi.passphrase;
        else if (g_str_equal(key, "WiFi.EAP"))
diff --combined src/service.c
@@@ -327,6 -327,10 +327,10 @@@ enum connman_service_security __connman
                return CONNMAN_SERVICE_SECURITY_NONE;
        if (!strcmp(str, "wep"))
                return CONNMAN_SERVICE_SECURITY_WEP;
+ #if defined TIZEN_EXT
+       if (!strcmp(str, "rsn"))
+               return CONNMAN_SERVICE_SECURITY_RSN;
+ #endif
  
        return CONNMAN_SERVICE_SECURITY_UNKNOWN;
  }
@@@ -342,8 -346,14 +346,14 @@@ static const char *security2string(enu
                return "wep";
        case CONNMAN_SERVICE_SECURITY_PSK:
        case CONNMAN_SERVICE_SECURITY_WPA:
+ #if defined TIZEN_EXT
+               return "psk";
+       case CONNMAN_SERVICE_SECURITY_RSN:
+               return "rsn";
+ #else
        case CONNMAN_SERVICE_SECURITY_RSN:
                return "psk";
+ #endif
        case CONNMAN_SERVICE_SECURITY_8021X:
                return "ieee8021x";
        }
@@@ -1896,10 -1906,8 +1906,10 @@@ static void state_changed(struct connma
        if (!str)
                return;
  
 +#if !defined TIZEN_EXT
        if (!allow_property_changed(service))
                return;
 +#endif
  
        connman_dbus_property_changed_basic(service->path,
                                CONNMAN_SERVICE_INTERFACE, "State",
@@@ -2718,13 -2726,11 +2728,13 @@@ static void append_wifi_ext_info(DBusMe
        unsigned int maxrate;
        uint16_t frequency;
        const char *enc_mode;
 +      gboolean passpoint;
  
        bssid = connman_network_get_bssid(network);
        maxrate = connman_network_get_maxrate(network);
        frequency = connman_network_get_frequency(network);
        enc_mode = connman_network_get_enc_mode(network);
 +      passpoint = connman_network_get_is_hs20AP(network);
  
        snprintf(bssid_str, WIFI_BSSID_STR_LEN, "%02x:%02x:%02x:%02x:%02x:%02x",
                                bssid[0], bssid[1], bssid[2],
                                        DBUS_TYPE_UINT16, &frequency);
        connman_dbus_dict_append_basic(dict, "EncryptionMode",
                                        DBUS_TYPE_STRING, &enc_mode);
 +      connman_dbus_dict_append_basic(dict, "Passpoint",
 +                                      DBUS_TYPE_BOOLEAN, &passpoint);
  }
  #endif
  
@@@ -3377,7 -3381,9 +3387,9 @@@ static int check_passphrase(enum connma
        case CONNMAN_SERVICE_SECURITY_UNKNOWN:
        case CONNMAN_SERVICE_SECURITY_NONE:
        case CONNMAN_SERVICE_SECURITY_WPA:
+ #if !defined TIZEN_EXT
        case CONNMAN_SERVICE_SECURITY_RSN:
+ #endif
  
                DBG("service security '%s' (%d) not handled",
                                security2string(security), security);
                return -EOPNOTSUPP;
  
        case CONNMAN_SERVICE_SECURITY_PSK:
+ #if defined TIZEN_EXT
+       case CONNMAN_SERVICE_SECURITY_RSN:
+ #endif
                /* A raw key is always 64 bytes length,
                 * its content is in hex representation.
                 * A PSK key must be between [8..63].
@@@ -5150,10 -5159,6 +5165,10 @@@ static void service_schedule_removed(st
  
  static bool allow_property_changed(struct connman_service *service)
  {
 +#if defined TIZEN_EXT
 +      if (service->path == NULL)
 +              return FALSE;
 +#endif
        if (g_hash_table_lookup_extended(services_notify->add, service->path,
                                        NULL, NULL)) {
                DBG("no property updates for service %p", service);