Fix ASP Wi-Fi P2P ConfirmSession method 58/91158/2
authorYu Jiung <jiung.yu@samsung.com>
Thu, 6 Oct 2016 06:11:02 +0000 (15:11 +0900)
committerYu Jiung <jiung.yu@samsung.com>
Thu, 6 Oct 2016 06:13:36 +0000 (15:13 +0900)
Change-Id: Ifbd08bbdd02ccc98537756743efb6cb304a62ed5
Signed-off-by: Yu jiung <jiung.yu@samsung.com>
oem/wifi-direct-oem.h
packaging/wifi-direct-manager.spec
plugin/wpasupplicant/ctrl_iface_dbus/wfd-plugin-wpasupplicant.c
src/wifi-direct-event.c
src/wifi-direct-iface.c
src/wifi-direct-manager.c
src/wifi-direct-session.c
src/wifi-direct-util.c

index a42456f..01e4ed5 100644 (file)
@@ -530,6 +530,7 @@ typedef struct {
        char *session_information;
        int proto;
        int status;
+       int deferring;
        unsigned char service_mac[OEM_MACADDR_LEN];
        unsigned char group_mac[OEM_MACADDR_LEN];
        char wps_pin[OEM_PINSTR_LEN+1];
index 6703454..883af52 100644 (file)
@@ -2,7 +2,7 @@
 
 Name:          wifi-direct-manager
 Summary:       Wi-Fi Direct manger
-Version:       1.2.207
+Version:       1.2.208
 Release:       1
 Group:      Network & Connectivity/Wireless
 License:    Apache-2.0
index e004d6a..267c125 100755 (executable)
 
 #define NETCONFIG_DBUS_REPLY_TIMEOUT (10 * 1000)
 
-#if defined TIZEN_PROFILE_MOBILE
-#define DEFAULT_MAC_FILE_PATH tzplatform_mkpath(TZ_SYS_ETC, ".mac.info")
-#endif
-
 #if defined TIZEN_WIFI_MODULE_BUNDLE
 #define DEFAULT_MAC_FILE_PATH "/sys/class/net/wlan0/address"
 #endif
@@ -7104,8 +7100,12 @@ int ws_asp_prov_disc_req(wfd_oem_asp_prov_s *asp_params)
 
        dbus_set_method_param(&params, "ASPProvisionDiscoveryRequest", g_pd->iface_path, g_dbus);
 
-       g_snprintf(peer_path, DBUS_OBJECT_PATH_MAX, "%s/Peers/"
-                       COMPACT_MACSTR, g_pd->iface_path, MAC2STR(asp_params->service_mac));
+       if(asp_params->deferring == 0)
+               g_snprintf(peer_path, DBUS_OBJECT_PATH_MAX, "%s/Peers/"
+                               COMPACT_MACSTR, g_pd->iface_path, MAC2STR(asp_params->service_mac));
+       else
+               g_snprintf(peer_path, DBUS_OBJECT_PATH_MAX, "%s/Peers/"
+                               COMPACT_MACSTR, g_pd->iface_path, MAC2STR(asp_params->session_mac));
        WDP_LOGD("get peer path [%s]", peer_path);
 
        builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
index 3de0381..75eaa3b 100644 (file)
@@ -1658,6 +1658,7 @@ int __wfd_handle_asp_prov_done(wfd_session_s *session, wfd_oem_event_s *event)
        } else if (prov_params->network_role == WFD_OEM_ASP_SESSION_ROLE_CLIENT) {
                res = wfd_session_asp_connect(session, WFD_OEM_ASP_SESSION_ROLE_CLIENT);
        } else if (prov_params->network_role == WFD_OEM_ASP_SESSION_ROLE_GO) {
+               res = wfd_session_asp_connect(session, WFD_OEM_ASP_SESSION_ROLE_GO);
                WDS_LOGD("don't need to take action.");
 
        } else {
index a0248f9..cacaadd 100644 (file)
@@ -2544,7 +2544,17 @@ static void __wfd_manager_asp_iface_handler(const gchar *method_name,
                g_variant_get(parameters, "(a{sv})", &iter);
                while (g_variant_iter_loop(iter, "{sv}", &key, &var)) {
 
-                       if (!g_strcmp0(key, "session_mac")) {
+                       if (!g_strcmp0(key, "service_mac")) {
+                               g_variant_get(var, "&s", &mac_str);
+                               if (mac_str == NULL) {
+                                       ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
+                                       g_variant_iter_free(iter);
+                                       goto failed;
+                               }
+                               macaddr_atoe(mac_str, prov_params.service_mac);
+                       } else if (!g_strcmp0(key, "adv_id")) {
+                               g_variant_get(var, "u", &(prov_params.adv_id));
+                       } else if (!g_strcmp0(key, "session_mac")) {
                                g_variant_get(var, "&s", &mac_str);
                                if (mac_str == NULL) {
                                        ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
@@ -2554,8 +2564,8 @@ static void __wfd_manager_asp_iface_handler(const gchar *method_name,
                                macaddr_atoe(mac_str, prov_params.session_mac);
                        } else if (!g_strcmp0(key, "session_id")) {
                                g_variant_get(var, "u", &(prov_params.session_id));
-                       } else if (!g_strcmp0(key, "confirmed")) {
-                               g_variant_get(var, "y", &(confirmed));
+                       } else if (!g_strcmp0(key, "confirm")) {
+                               g_variant_get(var, "i", &(confirmed));
                        } else if (!g_strcmp0(key, "pin")) {
                                g_variant_get(var, "&s", &(pin));
                                g_strlcpy(prov_params.wps_pin, pin, PINSTR_LEN);
index 02f0375..43f26de 100644 (file)
@@ -883,6 +883,7 @@ int wfd_manager_asp_confirm_session(wfd_manager_s *manager, void *params, int co
                prov_params->status = 12;
        else
                prov_params->status = 11;
+       prov_params->deferring = 1;
 
        res = wfd_oem_asp_prov_disc_req(manager->oem_ops, prov_params);
        if (res < 0) {
index d41f71d..c45c198 100644 (file)
@@ -715,13 +715,19 @@ int wfd_session_asp_connect(wfd_session_s *session, int role)
                return -1;
        }
 
-       if (session->state > SESSION_STATE_GO_NEG) {
-               WDS_LOGE("Session already finished GO Negotiation");
+       if (session->state >= SESSION_STATE_GO_NEG) {
+               WDS_LOGE("Session already starting GO Negotiation");
                __WDS_LOG_FUNC_EXIT__;
                return -1;
        }
 
-       session->state = SESSION_STATE_GO_NEG;
+       if (role == WFD_OEM_ASP_SESSION_ROLE_GO) {
+               session->state = SESSION_STATE_WPS;
+               return 0;
+       } else {
+               session->state = SESSION_STATE_GO_NEG;
+       }
+
        peer = session->peer;
 
        memset(&param, 0x00, sizeof(wfd_oem_conn_param_s));
index cca62a2..7ac97b7 100644 (file)
 #define TIZEN_P2P_GO_IPADDR "192.168.49.1"
 #define MAX_SIZE_ERROR_BUFFER 256
 
-#if defined TIZEN_PROFILE_MOBILE
-#define DEFAULT_MAC_FILE_PATH tzplatform_mkpath(TZ_SYS_ETC, ".mac.info")
-#endif /* TIZEN_PROFILE_MOBILE */
-
 #if defined TIZEN_PROFILE_TV
 #      if defined TIZEN_WIFI_MODULE_BUNDLE
 #              define DEFAULT_MAC_FILE_PATH "/sys/class/net/wlan0/address"