#define ASP_SESSION_INFO_BYTE_MAX 144
#define ASP_DEFER_RESPONSE_BYTE_MAX 144
#define ASP_MAX_DEVICE_NAME_LEN 32
-#define SESSION_STATUS_ADDITIONAL_INFO "REQUEST_SESSION"
+#define SESSION_STATUS_ADDITIONAL_INFO_LEN 16
+#define SESSION_STATUS_ADDITIONAL_INFO_CO "REQUEST_SESSION"
+#define SESSION_STATUS_ADDITIONAL_INFO_PD "PDRequest"
#define ASP_SESSION_HEADER "SESSION_FSM"
asp_session_closed_state_e closed_state;
gboolean over_p2p; /*p2p or infra */
gboolean confirmed;
+ gchar additional_info[SESSION_STATUS_ADDITIONAL_INFO_LEN];
} asp_session_s;
typedef struct session_request_cb {
if (session == NULL)
session = _new_session_by_request_session(sock_addr, peer_ip, p_msg);
+ g_strlcpy(session->additional_info, SESSION_STATUS_ADDITIONAL_INFO_PD,
+ SESSION_STATUS_ADDITIONAL_INFO_LEN);
g_assert(session);
_send_ack(sock_addr, p_header->seq_num);
session_cb_v_table.session_status.cb(error_code, session_mac, session_id,
_get_session_state(session_mac, session_id), closed_state,
- SESSION_STATUS_ADDITIONAL_INFO, session_cb_v_table.session_status.user_data);
+ session->additional_info, session_cb_v_table.session_status.user_data);
}
void _call_connect_status_cb(gint32 error_code, guint8 *session_mac,
g_assert(session);
gfsm_state_id_t current_state = gfsm_get_current_state_id(session->context);
+ ASP_LOGD("%s _get_session_state() current session_state : %d", ROLE, current_state);
switch (current_state) {
case SESSION_STATE_NONE:
case SESSION_STATE_CLOSED:
ret = ASP_SESSION_STATE_CLOSED;
break;
case SESSION_STATE_REQUEST_SESSION_SENT:
+ case SESSION_STATE_SESSION_REQUEST_SENT:
ret = ASP_SESSION_STATE_INITIATED;
break;
case SESSION_STATE_OPEN:
ret = ASP_SESSION_STATE_OPEN;
break;
case SESSION_STATE_REQUEST_SESSION_RECEIVED:
+ case SESSION_STATE_SESSION_REQUEST_RECEIVED:
/*case SESSION_STATE_DEFERRED_SESSION_SENT: */
case SESSION_STATE_REJECT_SESSION_SENT:
ret = ASP_SESSION_STATE_REQUESTED;
/*session->sock_family = G_SOCKET_FAMILY_IPV4; // temporary */
session->over_p2p = FALSE;
+ g_strlcpy(session->additional_info, SESSION_STATUS_ADDITIONAL_INFO_CO,
+ SESSION_STATUS_ADDITIONAL_INFO_LEN);
+
session->context = gfsm_create_context(session_fsm,
_asp_session_destroy_session, session);
session->advertisement_id = advertisement_id,
/*session->sock_family = G_SOCKET_FAMILY_IPV4; // temporary */
session->over_p2p = TRUE;
+ g_strlcpy(session->additional_info, SESSION_STATUS_ADDITIONAL_INFO_PD,
+ SESSION_STATUS_ADDITIONAL_INFO_LEN);
session->context = gfsm_create_context(session_fsm,
_asp_session_destroy_session, session);
/*session->sock_family = G_SOCKET_FAMILY_IPV4; // temporary */
session->over_p2p = TRUE;
+ g_strlcpy(session->additional_info, SESSION_STATUS_ADDITIONAL_INFO_PD,
+ SESSION_STATUS_ADDITIONAL_INFO_LEN);
+
session->context = gfsm_create_context(session_fsm,
_asp_session_destroy_session, session);
{
INFO_MSG;
- /*asp_session_s* session = (asp_session_s*)p_context_data; */
+ asp_session_s* session = (asp_session_s*)p_context_data;
/*_start_timer(...); */
+ _call_session_status_cb(0, session->session_mac, session->session_id,
+ ASP_SESSION_CLOSED_STATE_NONE);
}
void _state_session_request_sent_exit_action(void *p_context_data)
void _state_session_request_received_entry_action(void *p_context_data)
{
INFO_MSG;
+
+ asp_session_s* session = (asp_session_s*)p_context_data;
+
/*_start_timer(..); */
+ _call_session_status_cb(0, session->session_mac, session->session_id,
+ ASP_SESSION_CLOSED_STATE_NONE);
}
void _state_session_request_received_exit_action(void *p_context_data)
_store_peer_ip_addr(session, p_ip_assigned_param->peer_ip_addr,
p_ip_assigned_param->length);
if (session->asp_role == ASP_ROLE_SEEKER) {
- _send_request_session(session, NULL, 0);
ret_state = SESSION_STATE_REQUEST_SESSION_SENT;
} else {
- ret_state = GFSM_DISCARD_EVENT;
+ ret_state = SESSION_STATE_REQUEST_SESSION_RECEIVED;
}
return ret_state;
asp_session_s *session = (asp_session_s *)p_context_data;
- _call_connect_status_cb(0, session->session_mac, session->session_id,
+ if(!session->over_p2p)
+ _call_connect_status_cb(0, session->session_mac, session->session_id,
ASP_SESSION_CONNECT_STATUS_SESSION_REQUEST_SENT);
}