Add SessionPeerIPAssigned signal on ASP interface 52/85652/1 accepted/tizen/common/20160831.161405 accepted/tizen/ivi/20160831.124350 accepted/tizen/mobile/20160831.124259 accepted/tizen/tv/20160831.124313 accepted/tizen/wearable/20160831.124333 submit/tizen/20160831.004932
authorYu Jiung <jiung.yu@samsung.com>
Fri, 26 Aug 2016 08:50:03 +0000 (17:50 +0900)
committerYu Jiung <jiung.yu@samsung.com>
Fri, 26 Aug 2016 08:50:19 +0000 (17:50 +0900)
Change-Id: I681b655cb838bd50276894cdedaf94e292fc6114
Signed-off-by: Yu jiung <jiung.yu@samsung.com>
include/wifi-direct-asp.h
packaging/wifi-direct-manager.spec
src/wifi-direct-asp.c
src/wifi-direct-event.c
src/wifi-direct-iface.c

index 624a8be..d3d8204 100644 (file)
@@ -49,7 +49,9 @@ void wfd_asp_session_request(wfd_oem_asp_prov_s *prov_param);
 void wfd_asp_session_config_request(unsigned int session_id, int get_pin, char *pin);
 void wfd_asp_connect_status(unsigned char *session_mac,
                unsigned int session_id, int status, char *deferred);
-
+void wfd_asp_session_peer_ip(unsigned char *session_mac,
+               unsigned int session_id, unsigned char *service_mac,
+               unsigned char *session_ip);
 #ifdef __cplusplus
 }
 #endif
index 1cd6145..5c87766 100644 (file)
@@ -1,6 +1,6 @@
 Name:          wifi-direct-manager
 Summary:       Wi-Fi Direct manger
-Version:       1.2.199
+Version:       1.2.200
 Release:       1
 Group:      Network & Connectivity/Wireless
 License:    Apache-2.0
index e0753c6..d81cac1 100644 (file)
@@ -125,3 +125,33 @@ void wfd_asp_connect_status(unsigned char *session_mac,
        wfd_manager_dbus_emit_signal(WFD_MANAGER_ASP_INTERFACE, "ConnectStatus", parameter);
        return;
 }
+
+void wfd_asp_session_peer_ip(unsigned char *session_mac,
+               unsigned int session_id, unsigned char *service_mac,
+               unsigned char *session_ip)
+{
+       GVariantBuilder *builder = NULL;
+       GVariant *parameter = NULL;
+       char assigned_ip_address[IPSTR_LEN+1] = {0,};
+       g_snprintf(assigned_ip_address, IPSTR_LEN, IPSTR, IP2STR(session_ip));
+
+       builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+       g_variant_builder_add(builder, "{sv}",
+                       "session_mac",
+                       wfd_manager_dbus_pack_ay(session_mac, MACADDR_LEN));
+       g_variant_builder_add(builder, "{sv}",
+                       "session_id",
+                       g_variant_new_uint32(session_id));
+       g_variant_builder_add(builder, "{sv}",
+                       "service_mac",
+                       wfd_manager_dbus_pack_ay(service_mac, MACADDR_LEN));
+       g_variant_builder_add(builder, "{sv}",
+                       "assigned_ip_address",
+                       g_variant_new_string(assigned_ip_address));
+       parameter = g_variant_new("(a{sv})", builder);
+       g_variant_builder_unref(builder);
+
+       wfd_manager_dbus_emit_signal(WFD_MANAGER_ASP_INTERFACE,
+                       "SessionPeerIPAssigned", parameter);
+       return;
+}
index 1d02b5d..d965630 100644 (file)
@@ -903,11 +903,14 @@ void wfd_event_group_created(wfd_oem_event_s *event)
                                                                            WFD_EVENT_CONNECTION_RSP,
                                                                            peer_mac_address));
 #if defined(TIZEN_FEATURE_ASP)
-       if (!ISZEROMACADDR(session->session_mac))
+       if (!ISZEROMACADDR(session->session_mac)) {
                wfd_asp_connect_status(session->session_mac,
                                                        session->session_id,
                                                        ASP_CONNECT_STATUS_GROUP_FORMATION_COMPLETED,
                                                        NULL);
+               wfd_asp_session_peer_ip(session->session_mac, session->session_id,
+                               session->service_mac, peer->ip_addr);
+       }
 #endif
                        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTED);
                        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTED);
@@ -1180,11 +1183,15 @@ void wfd_event_sta_connected(wfd_oem_event_s *event)
                                     g_variant_new("(ss)", peer_mac_address,
                                                           assigned_ip_address));
 #if defined(TIZEN_FEATURE_ASP)
-       if (!ISZEROMACADDR(session->session_mac))
+       if (!ISZEROMACADDR(session->session_mac)) {
                wfd_asp_connect_status(session->session_mac,
                                                        session->session_id,
                                                        ASP_CONNECT_STATUS_GROUP_FORMATION_COMPLETED,
                                                        NULL);
+
+               wfd_asp_session_peer_ip(session->session_mac, session->session_id,
+                               session->service_mac, peer->ip_addr);
+       }
 #endif
        } else
 #endif /* TIZEN_FEATURE_IP_OVER_EAPOL */
index f9c1725..6827904 100644 (file)
@@ -442,6 +442,9 @@ const gchar wfd_manager_introspection_xml[] = {
                "<signal name='SessionStatus'>"
                        "<arg type='a{sv}' name='parameters'/>"
                "</signal>"
+               "<signal name='SessionPeerIPAssigned'>"
+               "<arg type='a{sv}' name='parameters'/>"
+               "</signal>"
                "</interface>"
 #endif
        "</node>"