#include <unistd.h>
#include <time.h>
#include <errno.h>
+#include <string.h>
#include <glib.h>
#include "wifi-direct-dbus.h"
#include "wifi-direct-asp.h"
+static void _wfd_event_reset_state(wfd_manager_s *manager)
+{
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
+
+ if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
+ wfd_state_set(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+ wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_GROUP_OWNER);
+ } else if (manager->local->dev_role == WFD_DEV_ROLE_GC) {
+ wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTED);
+ wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTED);
+ } else {
+ wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
+ wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
+ }
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
+}
+
static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *data)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_device_s *peer = NULL;
if (!manager || !data) {
WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
peer = wfd_add_peer(manager, data->p2p_dev_addr, data->name);
if (!peer) {
WDS_LOGE("Failed to add peer");
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
} else {
if (manager->is_wifi_display_supported)
memcpy(&(peer->display), &(data->display), sizeof(wfd_display_s));
+ if (data->vsie) {
+ if (peer->vsie)
+ g_free(peer->vsie);
+ peer->vsie = g_strdup(data->vsie);
+ }
+ WDS_LOGD("Peer name: [%s], vsie: [%s]", peer->dev_name, peer->vsie);
+
#if !(__GNUC__ <= 4 && __GNUC_MINOR__ < 8)
wfd_util_get_current_time(&peer->time);
#else
#endif
WDS_LOGI("Update time [%s - %ld]", peer->dev_name, peer->time);
- __WDS_LOG_FUNC_EXIT__;
+ //We don't free data memory or memory in it.
+ //They're handled by plugin
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
-
+//LCOV_EXCL_START
gboolean _wfd_connection_retry(gpointer *data)
{
wfd_session_s *session = (wfd_session_s*) data;
if (!session) {
WDS_LOGE("Session is NULL");
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return G_SOURCE_REMOVE;
}
WDS_LOGE("Invalid session state [%d]", session->state);
break;
}
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return G_SOURCE_REMOVE;
}
void wfd_event_deactivated(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
if (manager->is_connection_agent)
wfd_util_stop_wifi_direct_popup();
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
-
+//LCOV_EXCL_STOP
void wfd_event_peer_found(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_oem_dev_data_s *edata = NULL;
edata = (wfd_oem_dev_data_s*) event->edata;
if (!edata || event->edata_type != WFD_OEM_EDATA_TYPE_DEVICE) {
- WDS_LOGE("Invalid event data");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid event data");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
res = _wfd_event_update_peer(manager, edata);
if (res < 0) {
- WDS_LOGE("Failed to update peer data");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to update peer data");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
params);
}
}
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_peer_disappeared(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_session_s *session = NULL;
WDS_LOGD("session peer [" MACSTR "] lost peer [" MACSTR "]", MAC2STR(peer->dev_addr),
MAC2STR(event->dev_addr));
if (memcmp(peer->dev_addr, event->dev_addr, MACADDR_LEN) == 0) {
- WDS_LOGD("peer already in connection");
+ WDS_LOGD("peer already in connection");//LCOV_EXCL_LINE
return;
}
}
"PeerLost",
g_variant_new("(s)", peer_mac_address));
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_discovery_finished(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
if (manager->state != WIFI_DIRECT_STATE_DISCOVERING &&
manager->state != WIFI_DIRECT_STATE_ACTIVATED) {
WDS_LOGE("Notify finding stopped when discovering or activated. [%d]", manager->state);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
if (manager->scan_mode == WFD_SCAN_MODE_PASSIVE) {
- WDS_LOGE("During passive scan, Discover Finished event will not notified");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("During passive scan, Discover Finished event will not notified");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
- if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
- wfd_state_set(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
- wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_GROUP_OWNER);
- } else {
- wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
- wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
- }
+ _wfd_event_reset_state(manager);
manager->scan_mode = WFD_SCAN_MODE_NONE;
wfd_manager_dbus_emit_signal(WFD_MANAGER_MANAGE_INTERFACE,
"DiscoveryFinished",
NULL);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_prov_disc_req(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_device_s *peer = NULL;
wfd_group_s *group = (wfd_group_s*) manager->group;
if (group && group->role == WFD_DEV_ROLE_GC) {
- WDS_LOGD("Device has GC role - ignore this provision request");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGD("Device has GC role - ignore this provision request");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
if (member) {
/* PD request can be arrived from peer device
* when connection is timeout to close connection */
- WDS_LOGE("Unexpected Event - Member already exist");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Unexpected Event - Member already exist");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
edata = (wfd_oem_dev_data_s*) event->edata;
if (!edata || event->edata_type != WFD_OEM_EDATA_TYPE_DEVICE) {
- WDS_LOGE("Invalid event data");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid event data");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
peer = wfd_peer_find_by_dev_addr(manager, event->dev_addr);
if (WFD_DEV_ROLE_GO != manager->local->dev_role) {
- WDS_LOGI("TV is not GO, updated peer data only.");
+ WDS_LOGI("Own device is not GO, updated peer data only.");//LCOV_EXCL_LINE
manager->local->wps_mode = event->wps_mode;
if (event->wps_mode == WFD_WPS_MODE_PBC ||
event->wps_mode == WFD_WPS_MODE_KEYPAD) {
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
}
res = wfd_session_process_event(manager, event);
if (res < 0)
- WDS_LOGE("Failed to process event of session");
+ WDS_LOGE("Failed to process event of session");//LCOV_EXCL_LINE
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_prov_disc_resp(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_device_s *peer = NULL;
edata = (wfd_oem_dev_data_s*) event->edata;
if (!edata || event->edata_type != WFD_OEM_EDATA_TYPE_DEVICE) {
- WDS_LOGE("Invalid event data");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid event data");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
res = wfd_session_process_event(manager, event);
if (res < 0)
- WDS_LOGE("Failed to process event of session");
+ WDS_LOGE("Failed to process event of session");//LCOV_EXCL_LINE
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
if (prov_params && !ISZEROMACADDR(session->session_mac)) {
/* This connection is for ASP session */
if (prov_params->status == WFD_OEM_SC_FAIL_INVALID_PARAMS) {
- WDS_LOGD("ASP prov disc deferred. wait response.");
+ WDS_LOGD("ASP prov disc deferred. wait response.");//LCOV_EXCL_LINE
wfd_asp_connect_status(session->session_mac,
session->session_id,
ASP_CONNECT_STATUS_REQUEST_DEFERRED,
is_deferred = true;
}
}
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return is_deferred;
}
void wfd_event_prov_disc_fail(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_session_s *session = NULL;
session = (wfd_session_s*) manager->session;
if (!session) {
- WDS_LOGE("Unexpected event. Session not exist");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Unexpected event. Session not exist");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
peer_addr = wfd_session_get_peer_addr(session);
if (!peer_addr) {
- WDS_LOGE("Session do not have peer");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Session do not have peer");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
memset(¶m, 0x0, sizeof(wfd_oem_scan_param_s));
param.scan_mode = WFD_OEM_SCAN_MODE_PASSIVE;
wfd_oem_start_scan(manager->oem_ops, ¶m);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
}
WFD_EVENT_CONNECTION_RSP,
peer_mac_address));
if (wfd_asp_is_asp_session(session)) {
- WDS_LOGD("ASP prov disc failed. remove session.");
+ WDS_LOGD("ASP prov disc failed. remove session.");//LCOV_EXCL_LINE
wfd_asp_connect_status(session->session_mac,
session->session_id,
ASP_CONNECT_STATUS_REQUEST_FAILED,
wfd_oem_start_scan(manager->oem_ops, ¶m);
manager->scan_mode = WFD_SCAN_MODE_ACTIVE;
#endif
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_go_neg_req(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_group_s *group = (wfd_group_s*) manager->group;
if (group && group->role == WFD_DEV_ROLE_GC) {
- WDS_LOGD("Device has GC role - ignore this go neg request");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGD("Device has GC role - ignore this go neg request");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
edata = (wfd_oem_dev_data_s*) event->edata;
if (!edata || event->edata_type != WFD_OEM_EDATA_TYPE_DEVICE) {
- WDS_LOGE("Invalid event data");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid event data");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
res = _wfd_event_update_peer(manager, edata);
if (res < 0) {
- WDS_LOGE("Failed to update peer data");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to update peer data");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
wfd_session_process_event(manager, event);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_go_neg_fail(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_session_s *session = NULL;
session = (wfd_session_s*) manager->session;
if (!session) {
- WDS_LOGE("Unexpected event. Session not exist");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Unexpected event. Session not exist");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
peer_addr = wfd_session_get_peer_addr(session);
if (!peer_addr) {
- WDS_LOGE("Session do not have peer");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Session do not have peer");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
edata = (wfd_oem_conn_data_s*) event->edata;
if (!edata) {
- WDS_LOGE("Invalid p2p connection data");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid p2p connection data");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
session->retry_gsrc = 0;
}
session->retry_gsrc = g_idle_add((GSourceFunc) _wfd_connection_retry, session);
- WDS_LOGD("Connection will be retried");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGD("Connection will be retried");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
NULL);
}
- wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
- wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
-
wfd_destroy_session(manager);
wfd_destroy_group(manager);
manager->local->dev_role = WFD_DEV_ROLE_NONE;
- __WDS_LOG_FUNC_EXIT__;
+ _wfd_event_reset_state(manager);
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_go_neg_done(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_session_s *session = NULL;
edata = (wfd_oem_conn_data_s*) event->edata;
if (edata == NULL) {
- WDS_LOGE("Invalid event data");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid event data");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
}
wfd_session_process_event(manager, event);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_wps_fail(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_session_s *session = NULL;
session = (wfd_session_s*) manager->session;
if (!session) {
- WDS_LOGE("Unexpected event. Session not exist");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Unexpected event. Session not exist");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
peer_addr = wfd_session_get_peer_addr(session);
if (!peer_addr) {
- WDS_LOGE("Session do not have peer");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Session do not have peer");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
wfd_oem_start_scan(manager->oem_ops, ¶m);
manager->scan_mode = WFD_SCAN_MODE_ACTIVE;
#endif
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_wps_done(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_session_process_event(manager, event);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_key_neg_fail(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_session_s *session = NULL;
session = (wfd_session_s*) manager->session;
if (!session) {
- WDS_LOGE("Unexpected event. Session not exist");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Unexpected event. Session not exist");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
peer_addr = wfd_session_get_peer_addr(session);
if (!peer_addr) {
- WDS_LOGE("Session do not has peer");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Session do not has peer");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
wfd_oem_start_scan(manager->oem_ops, ¶m);
manager->scan_mode = WFD_SCAN_MODE_ACTIVE;
#endif
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_key_neg_done(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_conn_fail(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_conn_done(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_group_created(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_group_s *group = (wfd_group_s*) manager->group;
if (!group) {
group = wfd_create_pending_group(manager, event->intf_addr);
if (!group) {
- WDS_LOGE("Failed to create pending group");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to create pending group");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
if (group->role == WFD_DEV_ROLE_GC && session) {
wfd_device_s *peer = session->peer;
if (peer == NULL) {
- WDS_LOGE("Unexpected event. Peer doesn't exist");
+ WDS_LOGE("Unexpected event. Peer doesn't exist");//LCOV_EXCL_LINE
return;
}
wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_GROUP_OWNER);
}
}
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_group_destroyed(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
char peer_mac_address[MACSTR_LEN+1] = {0, };
"Destroyed", NULL);
}
} else {
- WDS_LOGD("Unexpected event(GROUP_DESTROYED). Ignore it");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGD("Unexpected event(GROUP_DESTROYED). Ignore it");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
wfd_destroy_group(manager);
manager->local->dev_role = WFD_DEV_ROLE_NONE;
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_invitation_req(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_device_s *peer = NULL;
peer = wfd_peer_find_by_dev_addr(manager, event->dev_addr);
if (!peer) {
- WDS_LOGD("Invitation from unknown peer. Add new peer");
+ WDS_LOGD("Invitation from unknown peer. Add new peer");//LCOV_EXCL_LINE
peer = wfd_add_peer(manager, event->dev_addr, "DIRECT-");
if (!peer) {
- WDS_LOGE("Failed to add peer for invitation");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to add peer for invitation");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
}
manager->req_wps_mode,
SESSION_DIRECTION_INCOMING);
if (!session) {
- WDS_LOGE("Failed to create session");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to create session");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
session->type = SESSION_TYPE_INVITE;
res = wfd_session_start(session);
if (res < 0) {
- WDS_LOGE("Failed to start session");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to start session");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
WFD_EVENT_CONNECTION_REQ,
peer_mac_address));
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_invitation_res(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_sta_connected(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_session_s *session = (wfd_session_s*) manager->session;
wfd_device_s *peer = NULL;
char peer_mac_address[MACSTR_LEN+1] = {0, };
- /* FIXME: Move this code to plugin */
- if (!memcmp(event->intf_addr, manager->local->intf_addr, MACADDR_LEN)) {
- WDS_LOGD("Ignore this event");
- __WDS_LOG_FUNC_EXIT__;
- return;
+ if(session) {
+ WDS_LOGD("event->dev addr : [" MACSTR "]", MAC2STR(event->dev_addr));
+ if (session->peer && memcmp(event->dev_addr, session->peer->dev_addr, MACADDR_LEN)) {
+ WDS_LOGE("Session Device and connected device do not match.Destroy previous session.");
+ wfd_destroy_session(manager);
+ }
}
if (ISZEROMACADDR(event->dev_addr)) {
peer = wfd_peer_find_by_addr(manager, event->intf_addr);
if (!peer) {
- WDS_LOGI("Add legacy peer");
+ WDS_LOGI("Add legacy peer");//LCOV_EXCL_LINE
peer = wfd_add_peer(manager, event->intf_addr, "LEGACY-PEER");
if (!peer) {
- WDS_LOGE("Failed to add Legacy peer.");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to add Legacy peer.");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
}
if (wfd_group_add_member(group, peer->dev_addr) == -1) {
- WDS_LOGE("Failed to add Legacy peer.");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to add Legacy peer.");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
peer_mac_address));
wfd_util_dhcps_wait_ip_leased(peer);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
if (!session) {
WDS_LOGE("Failed to create session with peer [" MACSTR "]",
MAC2STR(event->dev_addr));
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
} else {
wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
}
peer = wfd_session_get_peer(session);
if (!peer) {
- WDS_LOGE("Peer not found");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Peer not found");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
+ WDS_LOGD("peer->dev addr : [" MACSTR "]", MAC2STR(session->peer->dev_addr));
group = (wfd_group_s*) manager->group;
if (!group) {
group = wfd_create_pending_group(manager, event->intf_addr);
if (!group) {
- WDS_LOGE("Failed to create pending group");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to create pending group");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
manager->group = group;
}
wfd_destroy_session(manager);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_sta_disconnected(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_group_s *group = NULL;
wfd_device_s *peer = NULL;
unsigned char peer_addr[MACADDR_LEN] = {0, };
char peer_mac_address[MACSTR_LEN+1] = {0, };
+ char peer_dev_name[DEV_NAME_LEN+1] = {0, };
+ int member_cnt;
group = (wfd_group_s*) manager->group;
if (!group) {
- WDS_LOGE("Group not found");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Group not found");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
}
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
peer = wfd_group_find_member_by_addr(group, event->dev_addr);
if (!peer) {
- WDS_LOGE("Failed to find connected peer");
+ WDS_LOGE("Failed to find connected peer");//LCOV_EXCL_LINE
peer = wfd_session_get_peer(manager->session);
if (!peer) {
- WDS_LOGE("Failed to find connecting peer");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to find connecting peer");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
* If no peer connected and
* disconnected event is not for connecting peer
* then event should be ignored.
- * This situation can arrise when TV is GO and
+ * This situation can arrise when own device is GO and
* some connected peer sent disassociation.
*/
- if (memcmp(peer_addr, event->dev_addr, MACADDR_LEN)) {
- WDS_LOGE("Unexpected event, Ignore it...");
- __WDS_LOG_FUNC_EXIT__;
+ if (memcmp(peer->dev_addr, event->dev_addr, MACADDR_LEN)) {
+ WDS_LOGE("Unexpected event, Ignore it...");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
}
memcpy(peer_addr, peer->dev_addr, MACADDR_LEN);
+ g_strlcpy(peer_dev_name, peer->dev_name, DEV_NAME_LEN+1);
/**
* If state is not DISCONNECTING, connection is finished by peer.
if (manager->state >= WIFI_DIRECT_STATE_CONNECTED ||
(manager->state == WIFI_DIRECT_STATE_DISCOVERING &&
manager->local->dev_role == WFD_DEV_ROLE_GO)) {
- wfd_group_remove_member(group, peer_addr);
+ member_cnt = wfd_group_remove_member(group, peer_addr);
g_snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(peer_addr));
- if (group->member_count) {
+ if (member_cnt) {
wfd_manager_dbus_emit_signal(WFD_MANAGER_MANAGE_INTERFACE,
- "Disconnection",
- g_variant_new("(iis)", WIFI_DIRECT_ERROR_NONE,
+ "DisconnectionInd",
+ g_variant_new("(iiss)", WIFI_DIRECT_ERROR_NONE,
WFD_EVENT_DISASSOCIATION_IND,
- peer_mac_address));
+ peer_mac_address, peer_dev_name));
} else {
wfd_manager_dbus_emit_signal(WFD_MANAGER_MANAGE_INTERFACE,
- "Disconnection",
- g_variant_new("(iis)", WIFI_DIRECT_ERROR_NONE,
+ "DisconnectionInd",
+ g_variant_new("(iiss)", WIFI_DIRECT_ERROR_NONE,
WFD_EVENT_DISCONNECTION_IND,
- peer_mac_address));
+ peer_mac_address, peer_dev_name));
}
- } else if (manager->state == WIFI_DIRECT_STATE_DISCONNECTING) {
- g_snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(peer_addr));
- wfd_manager_dbus_emit_signal(WFD_MANAGER_MANAGE_INTERFACE,
- "Disconnection",
- g_variant_new("(iis)", WIFI_DIRECT_ERROR_NONE,
- WFD_EVENT_DISCONNECTION_RSP,
- peer_mac_address));
-
} else if (manager->state == WIFI_DIRECT_STATE_CONNECTING &&
/* Some devices(GO) send disconnection message before connection completed.
* This message should be ignored when device is not GO */
manager->local->dev_role == WFD_DEV_ROLE_GO) {
if (WFD_PEER_STATE_CONNECTED == peer->state) {
- WDS_LOGD("Peer is already Connected !!!");
+ WDS_LOGD("Peer is already Connected !!!");//LCOV_EXCL_LINE
wfd_group_remove_member(group, peer_addr);
g_snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(peer_addr));
wfd_manager_dbus_emit_signal(WFD_MANAGER_MANAGE_INTERFACE,
- "Disconnection",
- g_variant_new("(iis)", WIFI_DIRECT_ERROR_NONE,
+ "DisconnectionInd",
+ g_variant_new("(iiss)", WIFI_DIRECT_ERROR_NONE,
WFD_EVENT_DISASSOCIATION_IND,
- peer_mac_address));
+ peer_mac_address, peer_dev_name));
} else if (WFD_PEER_STATE_CONNECTING == peer->state) {
- WDS_LOGD("Peer is Connecting...");
+ WDS_LOGD("Peer is Connecting...");//LCOV_EXCL_LINE
g_snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(peer_addr));
wfd_manager_dbus_emit_signal(WFD_MANAGER_MANAGE_INTERFACE,
"Connection",
NULL);
}
} else {
- WDS_LOGE("Unexpected Peer State. Ignore it");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Unexpected Peer State. Ignore it");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
} else {
- WDS_LOGE("Unexpected event. Ignore it");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Unexpected event. Ignore it");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
- if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
- wfd_state_set(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
- wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_GROUP_OWNER);
- } else {
- wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
- wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
- }
-
/* If there is no member, GO should be destroyed */
- if (!group->member_count) {
+
+ group = (wfd_group_s*)manager->group;
+ if (group && !group->member_count && wfd_util_is_remove_group_allowed()) {
wfd_oem_destroy_group(manager->oem_ops, group->ifname);
wfd_destroy_group(manager);
wfd_peer_clear_all(manager);
}
wfd_destroy_session(manager);
+ _wfd_event_reset_state(manager);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_terminating(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_group_formation_failure(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_session_s *session = (wfd_session_s*) manager->session;
if (!session) {
- WDS_LOGE("Unexpected event. Session not exist");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Unexpected event. Session not exist");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
unsigned char *peer_addr = wfd_session_get_peer_addr(session);
if (!peer_addr) {
- WDS_LOGE("Session do not has peer");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Session do not has peer");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
wfd_oem_refresh(manager->oem_ops);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_invitation_accepted(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_session_s *session = (wfd_session_s*) manager->session;
peer = wfd_peer_find_by_dev_addr(manager, event->dev_addr);
if (!peer) {
- WDS_LOGI("Invitation from unknown peer. Add new peer");
+ WDS_LOGI("Invitation from unknown peer. Add new peer");//LCOV_EXCL_LINE
peer = wfd_add_peer(manager, event->dev_addr, "DIRECT-");
if (!peer) {
- WDS_LOGE("Failed to add peer for invitation");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to add peer for invitation");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
}
if (!session) {
WDS_LOGE("Failed to create session with peer [" MACSTR "]",
MAC2STR(event->dev_addr));
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
}
wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
}
void wfd_event_serv_disc_resp(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
int service_type;
char peer_mac_address[MACSTR_LEN+1] = {0, };
if (!manager->is_service_discovery_supported) {
- WDS_LOGD("service discovery not supported");
+ WDS_LOGD("service discovery not supported");//LCOV_EXCL_LINE
return;
}
WDS_LOGD("Found service: [%d: %s] - [" MACSECSTR "]", service->protocol,
service->data.bonjour.query, MAC2SECSTR(event->dev_addr));
} else {
- WDS_LOGD("Found service is not supported");
+ WDS_LOGD("Found service is not supported");//LCOV_EXCL_LINE
goto next;
}
service = NULL;
count++;
}
- } else if (event->edata_type == WFD_OEM_EDATA_TYPE_SERVICE) {
- wfd_oem_service_data_s *edata = (wfd_oem_service_data_s*) event->edata;
-
- if (!edata) {
- service_type = -1;
- } else {
- service_type = edata->type;
- g_snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(event->dev_addr));
- switch (edata->type) {
- WDS_LOGE("Unknown type [type ID: %d]", edata->type);
- }
- }
-
- wfd_manager_dbus_emit_signal(WFD_MANAGER_SERVICE_INTERFACE,
- "DiscoveryFound",
- g_variant_new("(iss)", service_type,
- response_data,
- peer_mac_address));
}
-
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_serv_disc_started(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_asp_serv_resp(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_oem_asp_service_s *service = NULL;
GVariant *params = NULL;
if (manager && !manager->is_asp_supported) {
- WDS_LOGD("ASP is not supported.");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGD("ASP is not supported.");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
service = (wfd_oem_asp_service_s *)event->edata;
if (service == NULL) {
- WDS_LOGE("P2P service found event has NULL information");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("P2P service found event has NULL information");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
"SearchResult",
params);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
int __wfd_handle_asp_prov(wfd_manager_s *manager, wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_session_s *session = NULL;
wfd_oem_asp_prov_s *prov_params = NULL;
prov_params = (wfd_oem_asp_prov_s *)event->edata;
if (prov_params == NULL) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
res = wfd_session_process_event(manager, event);
session = (wfd_session_s *)manager->session;
if (res < 0 || session == NULL) {
- WDS_LOGE("Failed to process event of session");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to process event of session");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
session->session_id = prov_params->session_id;
memcpy(session->session_mac, prov_params->session_mac, MACADDR_LEN);
memcpy(session->service_mac, prov_params->service_mac, MACADDR_LEN);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
int __wfd_handle_asp_prov_done(wfd_session_s *session, wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_oem_asp_prov_s *prov_params = NULL;
prov_params = (wfd_oem_asp_prov_s *)event->edata;
if (prov_params->persist &&
(prov_params->network_role || prov_params->network_config)) {
WDS_LOGE("Persistent group is used but "
- "conncap/dev_passwd_id are present");
- __WDS_LOG_FUNC_EXIT__;
+ "conncap/dev_passwd_id are present");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
if (!prov_params->persist &&
(!prov_params->network_role && !prov_params->network_config)) {
WDS_LOGE("Persistent group not used but "
- "conncap/dev_passwd_id are missing");
- __WDS_LOG_FUNC_EXIT__;
+ "conncap/dev_passwd_id are missing");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
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.");
+ WDS_LOGD("don't need to take action.");//LCOV_EXCL_LINE
} else {
- WDS_LOGE("Unhandled event");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Unhandled event");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
res = -1;
}
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return res;
}
void wfd_event_asp_prov_start(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_session_s *session = NULL;
int res = 0;
if (manager == NULL || event == NULL || event->edata == NULL) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
if (!manager->is_asp_supported) {
- WDS_LOGD("ASP is not supported.");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGD("ASP is not supported.");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
res = __wfd_handle_asp_prov(manager, event);
session = (wfd_session_s *)manager->session;
if (res < 0 || session == NULL) {
- WDS_LOGE("Failed to process event of session");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to process event of session");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
void wfd_event_asp_prov_done(wfd_oem_event_s *event)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_session_s *session = NULL;
int res = 0;
if (manager == NULL || event == NULL || event->edata == NULL) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
if (!manager->is_asp_supported) {
- WDS_LOGD("ASP is not supported.");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGD("ASP is not supported.");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
res = __wfd_handle_asp_prov(manager, event);
session = (wfd_session_s *)manager->session;
if (res < 0 || session == NULL) {
- WDS_LOGE("Failed to process event of session");
+ WDS_LOGE("Failed to process event of session");//LCOV_EXCL_LINE
wfd_destroy_session(manager);
+ wfd_oem_refresh(manager->oem_ops);
+ _wfd_event_reset_state(manager);
wfd_asp_connect_status(prov_params->session_mac,
prov_params->session_id,
ASP_CONNECT_STATUS_REQUEST_FAILED,
NULL);
- wfd_oem_refresh(manager->oem_ops);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
if (prov_params->status != WFD_OEM_SC_SUCCESS &&
prov_params->status != WFD_OEM_SC_SUCCESS_ACCEPTED_BY_USER) {
- WDS_LOGD("ASP-PROV failed. remove session.");
+ WDS_LOGD("ASP-PROV failed. remove session.");//LCOV_EXCL_LINE
wfd_destroy_session(manager);
wfd_oem_refresh(manager->oem_ops);
+ _wfd_event_reset_state(manager);
wfd_asp_connect_status(prov_params->session_mac,
prov_params->session_id,
ASP_CONNECT_STATUS_REQUEST_FAILED,
NULL);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
NULL);
res = __wfd_handle_asp_prov_done(session, event);
if (res < 0) {
- WDS_LOGE("Connect failed. remove session.");
+ WDS_LOGE("Connect failed. remove session.");//LCOV_EXCL_LINE
wfd_destroy_session(manager);
wfd_oem_refresh(manager->oem_ops);
+ _wfd_event_reset_state(manager);
wfd_asp_connect_status(prov_params->session_mac,
prov_params->session_id,
ASP_CONNECT_STATUS_GROUP_FORMATION_FAILED,
NULL);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
- WDS_LOGD("Provision done succeeded.");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGD("Provision done succeeded.");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
-
+//LCOV_EXCL_START
void wfd_event_init(wfd_oem_event_cbs_s *event_cbs)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
if (!event_cbs) {
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
event_cbs->extra_data = NULL;
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return;
}
+//LCOV_EXCL_STOP