#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <glib.h>
#include "wifi-direct-error.h"
#include "wifi-direct-log.h"
#include "wifi-direct-dbus.h"
-#ifdef TIZEN_FEATURE_ASP
#include "wifi-direct-asp.h"
-#endif /* TIZEN_FEATURE_ASP */
-
+//LCOV_EXCL_START
static gboolean _session_timeout_cb(gpointer *user_data)
{
- __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;
unsigned char *peer_addr = NULL;
char peer_mac_address[MACSTR_LEN+1] = {0, };
if (!session) {
- WDS_LOGE("Invalid parameter");
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
return FALSE;
}
session->connecting_120 = 0;
session->timer = 0;
- WDS_LOGD("Session timer expired");
+ WDS_LOGD("Session timer expired");//LCOV_EXCL_LINE
peer_addr = wfd_session_get_peer_addr(session);
if (peer_addr != NULL)
WFD_EVENT_CONNECTION_RSP,
peer_mac_address));
-#if defined(TIZEN_FEATURE_ASP)
- if (!ISZEROMACADDR(session->session_mac)) {
- if(session->state < SESSION_STATE_GO_NEG)
+ if (wfd_asp_is_asp_session(session)) {
+ if (session->state < SESSION_STATE_GO_NEG)
wfd_asp_connect_status(session->session_mac,
session->session_id,
ASP_CONNECT_STATUS_REQUEST_FAILED,
ASP_CONNECT_STATUS_GROUP_FORMATION_FAILED,
NULL);
}
-#endif
wfd_session_cancel(session, peer_addr);
wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
}
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return FALSE;
}
+//LCOV_EXCL_STOP
static void _wfd_notify_session_failed(wfd_manager_s *manager, unsigned char *peer_addr)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
char peer_mac_address[MACSTR_LEN+1] = {0, };
snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(peer_addr));
WFD_EVENT_CONNECTION_RSP,
peer_mac_address));
-#if defined(TIZEN_FEATURE_ASP)
+
+
wfd_session_s *session = manager->session;
- if (session && !ISZEROMACADDR(session->session_mac))
+ if (wfd_asp_is_asp_session(session)) {
wfd_asp_connect_status(session->session_mac,
session->session_id,
ASP_CONNECT_STATUS_GROUP_FORMATION_STARTED,
NULL);
-#endif
+ }
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_ACTIVATED);
}
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
}
int wfd_session_timer(wfd_session_s *session, int start)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
if (!session) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
session->connecting_120 = 1;
if (session->timer > 0) {
- WDS_LOGE("Session timer already started");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Session timer already started");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
session->timer = g_timeout_add(120000,
(GSourceFunc) _session_timeout_cb,
NULL);
- WDS_LOGD("Session timer started");
+ WDS_LOGD("Session timer started");//LCOV_EXCL_LINE
} else {
session->connecting_120 = 0;
if (session->timer > 0) {
g_source_remove(session->timer);
session->timer = 0;
- WDS_LOGD("Session timer stoped");
+ WDS_LOGD("Session timer stoped");//LCOV_EXCL_LINE
}
}
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
* before using this function */
wfd_session_s *wfd_create_session(void *data, unsigned char *peer_addr, int wps_mode, int direction)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = (wfd_manager_s*) data;
wfd_session_s *session = NULL;
wfd_device_s *peer = NULL;
if (!data || !peer_addr) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return NULL;
}
WDS_LOGD("create session for peer[" MACSTR "]", MAC2STR(peer_addr));
if (manager->session) {
- WDS_LOGE("Session already exist");
+ WDS_LOGE("Session already exist");//LCOV_EXCL_LINE
return NULL;
}
session = (wfd_session_s*) g_try_malloc0(sizeof(wfd_session_s));
if (!session) {
- WDS_LOGE("Failed to allocate memory for session");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to allocate memory for session");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return NULL;
}
if (!peer) {
WDS_LOGE("Failed to find peer info[" MACSECSTR "]", MAC2SECSTR(peer_addr));
g_free(session);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return NULL;
}
peer->state = WFD_PEER_STATE_CONNECTING;
session->wps_mode = WFD_WPS_MODE_KEYPAD;
else if (wps_mode == WFD_WPS_MODE_KEYPAD)
session->wps_mode = WFD_WPS_MODE_DISPLAY;
-#if defined(TIZEN_FEATURE_ASP)
else if (wps_mode == WFD_WPS_MODE_P2PS)
session->wps_mode = WFD_WPS_MODE_P2PS;
-#endif /* TIZEN_FEATURE_ASP */
else
session->wps_mode = wps_mode;
session->direction = direction;
session->req_wps_mode = WFD_WPS_MODE_KEYPAD;
if (wfd_oem_generate_pin(manager->oem_ops, &generated_pin) != 0) {
- WDS_LOGE("Failed to generate pin");
+ WDS_LOGE("Failed to generate pin");//LCOV_EXCL_LINE
g_free(session);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return NULL;
}
+#if defined(BUILD_GTESTS)
+ generated_pin = g_strndup("12345678", PINSTR_LEN + 1);
+#endif /* BUILD_GTESTS */
g_strlcpy(session->wps_pin, generated_pin, PINSTR_LEN + 1);
g_free(generated_pin);
}
if (peer->dev_role == WFD_DEV_ROLE_GO && manager->local->dev_role != WFD_DEV_ROLE_GO)
manager->local->dev_role = WFD_DEV_ROLE_GC;
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return session;
}
int wfd_destroy_session(void *data)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = (wfd_manager_s*) data;
wfd_session_s *session = NULL;
wfd_device_s *peer = NULL;
if (!manager) {
- WDS_LOGE("Invalid parameter");
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
return -1;
}
session = (wfd_session_s*) manager->session;
if (!session) {
- WDS_LOGE("Session not found"); /* self prevent */
+ WDS_LOGE("Session not found");//LCOV_EXCL_LINE /* self prevent */
return -1;
}
wfd_session_timer(session, 0);
peer = session->peer;
+ WDS_LOGD("peer :%p", peer);
if (peer) {
if (session->state == SESSION_STATE_COMPLETED)
else
peer->state = WFD_PEER_STATE_DISCOVERED;
} else {
- WDS_LOGE("Peer not found");
+ WDS_LOGE("Peer not found");//LCOV_EXCL_LINE
}
g_free(session);
if (manager->local->dev_role == WFD_DEV_ROLE_GC)
manager->local->dev_role = WFD_DEV_ROLE_NONE;
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
int wfd_session_start(wfd_session_s *session)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_device_s *peer = NULL;
int join = 0;
int res = 0;
if (!session) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
MAC2SECSTR(peer->dev_addr));
wfd_destroy_session(manager);
/* TODO: send notification to App */
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
wfd_session_timer(session, 1);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
-#if defined(TIZEN_FEATURE_ASP)
int wfd_session_asp_session_start(wfd_session_s *session, wfd_oem_asp_prov_s *params)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
int res = 0;
if (session == NULL || 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;
}
if (session->state > SESSION_STATE_STARTED) {
WDS_LOGE("Invalid session state(%d)", session->state);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
res = wfd_oem_asp_prov_disc_req(manager->oem_ops, params);
if (res < 0) {
- WDS_LOGD("Failed to send ASP provision discovery request to peer");
+ WDS_LOGD("Failed to send ASP provision discovery request to peer");//LCOV_EXCL_LINE
wfd_destroy_session(manager);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
memcpy(session->service_mac, params->service_mac, MACADDR_LEN);
wfd_session_timer(session, 1);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
-#endif /* TIZEN_FEATURE_ASP */
#if 0
int wfd_session_stop(wfd_session_s *session)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_device_s *peer = NULL;
int res = 0;
if (!session) {
WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
if (res < 0) {
WDS_LOGE("Failed to reject or cancel connection");
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
}
session->state = SESSION_STATE_STOPPED;
wfd_destroy_session(manager);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
#endif
*/
int wfd_session_connect(wfd_session_s *session)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_oem_conn_param_s param;
wfd_device_s *peer = NULL;
int res = 0;
if (!session) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
if (session->state > SESSION_STATE_GO_NEG) {
- WDS_LOGE("Session already finished GO Negotiation");
+ WDS_LOGE("Session already finished GO Negotiation");//LCOV_EXCL_LINE
return -1;
}
if (res < 0) {
WDS_LOGD("Failed to connect peer [" MACSECSTR "]", MAC2SECSTR(peer->dev_addr));
wfd_destroy_session(manager);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
wfd_session_timer(session, 1);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
int wfd_session_cancel(wfd_session_s *session, unsigned char *peer_addr)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
int res = 0;
if (!session || !session->peer) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return WIFI_DIRECT_ERROR_NOT_PERMITTED;
}
if (memcmp(peer_addr, session->peer->dev_addr, MACADDR_LEN)) {
- WDS_LOGE("Peer is not included in this session");
+ WDS_LOGE("Peer is not included in this session");//LCOV_EXCL_LINE
return WIFI_DIRECT_ERROR_NOT_PERMITTED;
}
res = wfd_oem_cancel_connection(manager->oem_ops, peer_addr);
if (res < 0) {
- WDS_LOGE("Failed to cancel connection");
+ WDS_LOGE("Failed to cancel connection");//LCOV_EXCL_LINE
return WIFI_DIRECT_ERROR_OPERATION_FAILED;
}
wfd_destroy_session(manager);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
int wfd_session_reject(wfd_session_s *session, unsigned char *peer_addr)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_device_s *peer = NULL;
int res = 0;
if (!session || !manager) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
if (session->state < SESSION_STATE_CREATED ||
session->state >= SESSION_STATE_STOPPED) {
WDS_LOGE("Session state is Invalid [%d]", session->state);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
else
res = wfd_oem_reject_connection(manager->oem_ops, peer->dev_addr);
if (res < 0) {
- WDS_LOGE("Failed to reject connection");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Failed to reject connection");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
wfd_destroy_session(manager);
/* TODO: send notification to App */
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
int wfd_session_join(wfd_session_s *session)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_oem_conn_param_s param;
wfd_device_s *peer = NULL;
int res = 0;
if (!session) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
if (res < 0) {
WDS_LOGD("Failed to join with peer [" MACSECSTR "]", MAC2SECSTR(peer->dev_addr));
wfd_destroy_session(manager);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
wfd_session_timer(session, 1);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
int wfd_session_invite(wfd_session_s *session)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_oem_invite_param_s param;
wfd_device_s *peer = NULL;
int res = 0;
if (!session) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
if (res < 0) {
WDS_LOGE("Failed to invite with peer [" MACSECSTR "]", MAC2SECSTR(peer->dev_addr));
wfd_destroy_session(manager);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
wfd_session_timer(session, 1);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
int wfd_session_wps(wfd_session_s *session)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_device_s *peer = NULL;
int res = 0;
if (!session) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
if (session->state > SESSION_STATE_WPS) {
- WDS_LOGE("Session already starts WPS");
+ WDS_LOGE("Session already starts WPS");//LCOV_EXCL_LINE
return -1;
}
if (res < 0) {
WDS_LOGE("Failed to start wps with peer [" MACSECSTR "]", MAC2SECSTR(peer->dev_addr));
wfd_destroy_session(manager);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
-#if defined(TIZEN_FEATURE_ASP)
/* In case of incomming session, when user accept connection request, this function should be called.
* In case of outgoing session, when prov_disc response arrived, this function should be called.
* Even though peer is GO, we can use this function, which can decide using join itself.
*/
int wfd_session_asp_connect(wfd_session_s *session, int role)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
wfd_oem_conn_param_s param;
wfd_device_s *peer = NULL;
int res = 0;
if (!session) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
- if (session->state > SESSION_STATE_GO_NEG) {
- WDS_LOGE("Session already finished GO Negotiation");
- __WDS_LOG_FUNC_EXIT__;
+ if (session->state >= SESSION_STATE_GO_NEG) {
+ WDS_LOGE("Session already starting GO Negotiation");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
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(¶m, 0x00, sizeof(wfd_oem_conn_param_s));
if (res < 0) {
WDS_LOGD("Failed to connect peer [" MACSECSTR "]", MAC2SECSTR(peer->dev_addr));
wfd_destroy_session(manager);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
wfd_session_timer(session, 1);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
*/
int wfd_session_asp_persistent_connect(wfd_session_s *session, int persist_group_id)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_manager_s *manager = wfd_get_manager();
- wfd_device_s *peer = NULL;
wfd_oem_group_param_s param;
int res = 0;
if (!session) {
- WDS_LOGE("Invalid parameter");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
if (session->state > SESSION_STATE_GO_NEG) {
- WDS_LOGE("Session already finished GO Negotiation");
- __WDS_LOG_FUNC_EXIT__;
+ WDS_LOGE("Session already finished GO Negotiation");//LCOV_EXCL_LINE
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
res = wfd_oem_create_group(manager->oem_ops, ¶m);
if (res < 0) {
- WDS_LOGD("Failed to connect peer [" MACSECSTR "]", MAC2SECSTR(peer->dev_addr));
+ WDS_LOGD("Failed to create persistent group for ASP");//LCOV_EXCL_LINE
wfd_destroy_session(manager);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return -1;
}
wfd_session_timer(session, 1);
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
-#endif /* TIZEN_FEATURE_ASP */
wfd_device_s *wfd_session_get_peer(wfd_session_s *session)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_device_s *peer = NULL;
if (!session) {
- WDS_LOGE("Invalid parameter");
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
return NULL;
}
peer = session->peer;
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return peer;
}
unsigned char *wfd_session_get_peer_addr(wfd_session_s *session)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
wfd_device_s *peer = NULL;
if (!session || !session->peer) {
- WDS_LOGE("Invalid parameter");
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
return NULL;
}
peer = session->peer;
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return peer->dev_addr;
}
#if 0
int wfd_session_get_wps_pin(wfd_session_s *session, unsigned char *pin)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
int wfd_session_set_wps_pin(wfd_session_s *session, unsigned char *pin)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
int wfd_session_set_freq(wfd_session_s *session, int freq)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
int wfd_session_get_state(wfd_session_s *session)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
int wfd_session_set_state(wfd_session_s *session, int state)
{
- __WDS_LOG_FUNC_ENTER__;
+ __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}
#endif
int wfd_session_process_event(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;
int res = 0;
if (!manager || !event) {
- WDS_LOGE("Invalid parameter");
+ WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
return -1;
}
MAC2SECSTR(event->dev_addr));
break;
}
- WDS_LOGD("=====> session already exist. (invitation session)");
+ WDS_LOGD("=====> session already exist. (invitation session)");//LCOV_EXCL_LINE
+ if (session->state > SESSION_STATE_WPS) {
+ WDS_LOGE("Session already starts WPS");//LCOV_EXCL_LINE
+ break;
+ }
+
session->req_wps_mode = req_wps_mode;
session->wps_mode = event->wps_mode;
} else {
session->state = SESSION_STATE_STARTED;
if (session->type == SESSION_TYPE_INVITE)
- WDS_LOGD("Invitation session");
+ WDS_LOGD("Invitation session");//LCOV_EXCL_LINE
else if (WFD_DEV_ROLE_GO == manager->local->dev_role)
session->type = SESSION_TYPE_JOIN;
else
manager->local->wps_mode = event->wps_mode;
wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
+ wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
if (session->type == SESSION_TYPE_INVITE) {
WDS_LOGD("Start WPS corresponding to OEM event [%d]", event->event_id);
}
if (session->state > SESSION_STATE_STARTED) {
- WDS_LOGE("Unexpected event. Session is already started");
+ WDS_LOGE("Unexpected event. Session is already started");//LCOV_EXCL_LINE
break;
}
if (session->type == SESSION_TYPE_INVITE) {
- WDS_LOGE("Session type is invite, ignore provision discovery response");
+ WDS_LOGE("Session type is invite, ignore provision discovery response");//LCOV_EXCL_LINE
break;
}
session = wfd_create_session(manager, event->dev_addr,
event->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
break;
}
session->state = SESSION_STATE_GO_NEG;
wfd_session_timer(session, 1);
wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
+ wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
char peer_mac_address[MACSTR_LEN+1] = {0, };
g_snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(event->dev_addr));
/* Sometimes, Provision Discovery response is not received.
* At this time, connection should be triggered by GO Negotiation request event */
if (session->direction == SESSION_DIRECTION_OUTGOING) {
+ if (session->wps_mode == WFD_WPS_MODE_KEYPAD && session->wps_pin[0] == '\0')
+ break;
res = wfd_session_connect(session);
} else {
/* In autoconnection mode, MT should not send GO Nego Req
}
}
break;
-#if defined(TIZEN_FEATURE_ASP)
case WFD_OEM_EVENT_ASP_PROV_START:
{
int req_wps_mode = WFD_WPS_MODE_NONE;
}
}
break;
-#endif /* TIZEN_FEATURE_ASP */
- if (res < 0)
- _wfd_notify_session_failed(manager, event->dev_addr);
- break;
default:
break;
}
- __WDS_LOG_FUNC_EXIT__;
+ __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
return 0;
}