Add log function for each FSMs 07/87407/3
authorYu Jiung <jiung.yu@samsung.com>
Wed, 7 Sep 2016 11:25:50 +0000 (20:25 +0900)
committerJiung Yu <jiung.yu@samsung.com>
Fri, 9 Sep 2016 05:31:09 +0000 (22:31 -0700)
Change-Id: I00ed157ae7217494cbca0474c102fcb6486a503f
Signed-off-by: Yu jiung <jiung.yu@samsung.com>
packaging/asp-manager.spec
src/session/asp-coordination-protocol.h
src/session/asp-session-peer.c
src/session/asp-session.c

index 2a228f4..708961a 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       asp-manager
 Summary:    ASP(application service platform) manager
-Version:    0.0.5
+Version:    0.0.7
 Release:    2
 Group:      Network & Connectivity/Other
 License:    Apache-2.0
index 99a5325..c2b6dd7 100644 (file)
 
 #ifdef SEEKER
 #define ROLE "[seeker    ]"
-#define INFO_MSG ASP_LOGD("%s %s : %s(), :%s  line:%d", ROLE, __TIME__, __FILE__, __func__, __LINE__)
+#define INFO_MSG ASP_LOGD("%s %s", ROLE, __TIME__)
 #else
 #define ROLE "[advertiser]"
-#define INFO_MSG ASP_LOGD("%s %s : %s(), :%s  line:%d", ROLE, __TIME__, __FILE__, __func__, __LINE__)
+#define INFO_MSG ASP_LOGD("%s %s", ROLE, __TIME__)
 #endif
 
 typedef struct asp_coord_header {
index 3974e4d..0e1050a 100644 (file)
@@ -7,6 +7,8 @@
 #define ASP_SESS_PEER_FSM_TRACE_ENTER()
 #define ASP_SESS_PEER_FSM_TRACE_LEAVE()
 
+#define ASP_SESS_PEER_HEADER "SESSION_PEER_FSM"
+
 typedef struct asp_sess_peer {
        gfsm_context_s *context;
        GSocketAddress *p_sock_addr;
@@ -417,6 +419,7 @@ gboolean asp_sess_peer_add_session(GSocketAddress *p_sock_addr,
        asp_sess_peer_s *p_peer = _asp_sess_peer_tree_find_peer(p_sock_addr);
 
        if (NULL == p_peer) {
+               ASP_LOGD("create peer");
                p_peer = _asp_sess_peer_create_peer(p_sock_addr);
                g_assert(p_peer);
 
@@ -565,6 +568,7 @@ asp_sess_peer_s *_asp_sess_peer_create_peer(GSocketAddress *p_sock_addr)
                                              _asp_sess_peer_sess_tree_key_destructor_cb,
                                              _asp_sess_peer_sess_tree_value_destructor_cb);
 
+       ASP_LOGD("insert peer");
        _asp_sess_peer_tree_insert_peer(p_sock_addr, p_peer);
 
        p_peer->context = gfsm_create_context(asm_sess_peer_fsm,
@@ -577,6 +581,7 @@ void _asp_sess_peer_destroy_peer(void *p_context_data)
 {
        asp_sess_peer_s *p_peer = (asp_sess_peer_s *) p_context_data;
 
+       INFO_MSG;
        if (p_peer->p_sock_addr) {
                g_object_unref(p_peer->p_sock_addr);
                p_peer->p_sock_addr = 0;
@@ -686,6 +691,7 @@ void _asp_sess_peer_increase_seq_num(asp_sess_peer_s *p_peer)
 asp_sess_peer_sess_key_s *_asp_sess_peer_sess_tree_create_key(
        guint8 session_mac[], guint32 session_id)
 {
+       INFO_MSG;
        asp_sess_peer_sess_key_s *p_key = (asp_sess_peer_sess_key_s *) g_malloc(sizeof(
                        asp_sess_peer_sess_key_s));
 
@@ -718,6 +724,7 @@ void _asp_sess_peer_remove_session(asp_sess_peer_s *p_peer,
 gint _asp_sess_peer_sess_tree_compare_cb(gconstpointer a, gconstpointer b,
                gpointer user_data)
 {
+       INFO_MSG;
        asp_sess_peer_sess_key_s *p_l = (asp_sess_peer_sess_key_s *) a;
        asp_sess_peer_sess_key_s *p_r = (asp_sess_peer_sess_key_s *) b;
 
@@ -731,6 +738,7 @@ gint _asp_sess_peer_sess_tree_compare_cb(gconstpointer a, gconstpointer b,
 
 void _asp_sess_peer_sess_tree_key_destructor_cb(gpointer p_data)
 {
+       INFO_MSG;
        asp_sess_peer_sess_key_s *p_key = (asp_sess_peer_sess_key_s *) p_data;
        asp_session_peer_destroyed(p_key->sess_mac, p_key->sess_id);
        g_free(p_key);
@@ -738,6 +746,7 @@ void _asp_sess_peer_sess_tree_key_destructor_cb(gpointer p_data)
 
 void _asp_sess_peer_sess_tree_value_destructor_cb(gpointer p_value)
 {
+       INFO_MSG;
        /*do nothing. */
        /*p_key and p_value is same pointer. */
 }
@@ -870,6 +879,110 @@ void _asp_sess_peer_send_nack_to_protocol(GSocketAddress *p_sock_addr,
        asp_coordination_protocol_send_msg(p_sock_addr, &nack_msg);
 }
 
+const char *_asp_sess_peer_fsm_get_state_name_cb(gfsm_state_id_t state_id)
+{
+       const char *ret_val = NULL;
+
+       switch (state_id) {
+       case ASP_S_PEER_STATE_INIT:
+               ret_val = "ASP_S_PEER_STATE_INIT";
+               break;
+       case ASP_S_PEER_STATE_CREATED:
+               ret_val = "ASP_S_PEER_STATE_CREATED";
+               break;
+       case ASP_S_PEER_STATE_VERSION_SENT:
+               ret_val = "ASP_S_PEER_STATE_VERSION_SENT";
+               break;
+       case ASP_S_PEER_STATE_WAIT_VERSION:
+               ret_val = "ASP_S_PEER_STATE_WAIT_VERSION";
+               break;
+       case ASP_S_PEER_STATE_WAIT_ACK:
+               ret_val = "ASP_S_PEER_STATE_WAIT_ACK";
+               break;
+       case ASP_S_PEER_STATE_OPENED:
+               ret_val = "ASP_S_PEER_STATE_OPENED";
+               break;
+       case ASP_S_PEER_STATE_IDLE:
+               ret_val = "ASP_S_PEER_STATE_IDLE";
+               break;
+       /*
+       case ASP_S_PEER_STATE_REQ_SENT:
+               ret_val = "ASP_S_PEER_STATE_REQ_SENT";
+               break;
+       */
+       case ASP_S_PEER_STATE_CLOSED:
+               ret_val = "ASP_S_PEER_STATE_CLOSED";
+               break;
+       default:
+               ret_val = "ASP_S_PEER_STATE_MAX";
+               break;
+       }
+
+       return ret_val;
+}
+
+const char *_asp_sess_peer_gfsm_get_event_name_cb(gfsm_event_id_t event_id)
+{
+       const char *ret_val = NULL;
+
+       switch (event_id) {
+       case ASP_S_PEER_EVENT_START:
+               ret_val = "ASP_S_PEER_EVENT_START";
+               break;
+       case ASP_S_PEER_EVENT_ADD_SESSION:
+               ret_val = "ASP_S_PEER_EVENT_ADD_SESSION";
+               break;
+       case ASP_S_PEER_EVENT_DEL_SESSION:
+               ret_val = "ASP_S_PEER_EVENT_DEL_SESSION";
+               break;
+       case ASP_S_PEER_EVENT_SEND_REQ:
+               ret_val = "ASP_S_PEER_EVENT_SEND_REQ";
+               break;
+       case ASP_S_PEER_EVENT_SEND_ACK:
+               ret_val = "ASP_S_PEER_EVENT_SEND_ACK";
+               break;
+       case ASP_S_PEER_EVENT_SEND_NACK:
+               ret_val = "ASP_S_PEER_EVENT_SEND_NACK";
+               break;
+       case ASP_S_PEER_EVENT_RECV_VERSION:
+               ret_val = "ASP_S_PEER_EVENT_RECV_VERSION";
+               break;
+       case ASP_S_PEER_EVENT_RECV_REQ:
+               ret_val = "ASP_S_PEER_EVENT_RECV_REQ";
+               break;
+       case ASP_S_PEER_EVENT_RECV_ACK:
+               ret_val = "ASP_S_PEER_EVENT_RECV_ACK";
+               break;
+       case ASP_S_PEER_EVENT_RECV_NACK:
+               ret_val = "ASP_S_PEER_EVENT_RECV_NACK";
+               break;
+       case ASP_S_PEER_EVENT_TIMEOUT:
+               ret_val = "ASP_S_PEER_EVENT_TIMEOUT";
+               break;
+       case ASP_S_PEER_EVENT_CLOSE:
+               ret_val = "ASP_S_PEER_EVENT_CLOSE";
+               break;
+       default:
+               ret_val = "ASP_S_PEER_EVENT_MAX";
+               break;
+       }
+
+       return ret_val;
+}
+
+int _asp_sess_peer_fsm_log_func(const char *format, ...)
+{
+       gchar buffer[256];
+       va_list args;
+       va_start (args, format);
+       g_vsnprintf (buffer, 255, format, args);
+       va_end (args);
+
+       ASP_LOGD("%s", buffer);
+
+       return 0;
+}
+
 void asp_sess_peer_fsm_init()
 {
        INFO_MSG;
@@ -981,6 +1094,11 @@ void asp_sess_peer_fsm_init()
        /*gfsm_add_state(&asm_sess_peer_fsm,&asp_sess_peer_state_req_sent); */
        gfsm_add_state(asm_sess_peer_fsm, asp_sess_peer_state_wait_ack);
        gfsm_add_state(asm_sess_peer_fsm, asp_sess_peer_state_closed);
+
+       gfsm_set_logger(asm_sess_peer_fsm, _asp_sess_peer_fsm_log_func,
+                       ASP_SESS_PEER_HEADER,
+                       _asp_sess_peer_fsm_get_state_name_cb,
+                       _asp_sess_peer_gfsm_get_event_name_cb);
 }
 
 void _asp_sess_peer_state_init_entry_action(void *p_context_data)
index edfbc56..79e3545 100644 (file)
@@ -56,6 +56,8 @@
 #define ASP_MAX_DEVICE_NAME_LEN 32
 #define SESSION_STATUS_ADDITIONAL_INFO "REQUEST_SESSION"
 
+#define ASP_SESSION_HEADER "SESSION_FSM"
+
 typedef enum asp_role {
        ASP_ROLE_NONE,
        ASP_ROLE_ADVERTIZER,
@@ -1438,9 +1440,16 @@ asp_session_s *_new_session_from_session_request(const guint8 *session_mac,
 
 void _store_peer_ip_addr(asp_session_s *session, char *peer_ip, size_t length)
 {
+       INFO_MSG;
        g_strlcpy(session->peer_ip, peer_ip, length);
        session->sock_addr = g_inet_socket_address_new_from_string(peer_ip,
                             (guint) g_asp_cordination_port);
+
+       if (session->sock_addr == NULL)
+               ASP_LOGD("Failed to create socket IP %s", peer_ip);
+       else
+               ASP_LOGD("Succeeded to create socket IP %s", peer_ip);
+
 }
 
 #ifdef HAVE_ASP_P2P_CONN
@@ -1518,6 +1527,157 @@ void _get_ip_from_socketaddress(GSocketAddress *sock_addr, gchar *peer_ip)
  * Local Function for state machine
  *****************************************************************************/
 
+const char *_asp_session_fsm_get_state_name_cb(gfsm_state_id_t state_id)
+{
+       const char *ret_val = NULL;
+
+       switch (state_id) {
+       case SESSION_STATE_NONE:
+               ret_val = "SESSION_STATE_NONE";
+               break;
+       case SESSION_STATE_CLOSED:
+               ret_val = "SESSION_STATE_CLOSED";
+               break;
+       case SESSION_STATE_RUNNING:
+               ret_val = "SESSION_STATE_RUNNING";
+               break;
+       case SESSION_STATE_L2CONNECTING:
+               ret_val = "SESSION_STATE_L2CONNECTING";
+               break;
+       case SESSION_STATE_SESSION_REQUEST_SENT:
+               ret_val = "SESSION_STATE_SESSION_REQUEST_SENT";
+               break;
+       case SESSION_STATE_SESSION_REQUEST_RECEIVED:
+               ret_val = "SESSION_STATE_SESSION_REQUEST_RECEIVED";
+               break;
+       case SESSION_STATE_SESSION_REQUEST_DEFERED:
+               ret_val = "SESSION_STATE_SESSION_REQUEST_DEFERED";
+               break;
+       case SESSION_STATE_SESSION_REQUEST_ACCEPTED:
+               ret_val = "SESSION_STATE_SESSION_REQUEST_ACCEPTED";
+               break;
+       case SESSION_STATE_ENTERING_PIN:
+               ret_val = "SESSION_STATE_ENTERING_PIN";
+               break;
+       case SESSION_STATE_GROUP_FORMATION_COMPLETED:
+               ret_val = "SESSION_STATE_GROUP_FORMATION_COMPLETED";
+               break;
+       case SESSION_STATE_L2CONNECTED:
+               ret_val = "SESSION_STATE_L2CONNECTED";
+               break;
+       case SESSION_STATE_REQUEST_SESSION_SENT:
+               ret_val = "SESSION_STATE_REQUEST_SESSION_SENT";
+               break;
+       case SESSION_STATE_OPEN:
+               ret_val = "SESSION_STATE_OPEN";
+               break;
+       case SESSION_STATE_REQUEST_SESSION_RECEIVED:
+               ret_val = "SESSION_STATE_REQUEST_SESSION_RECEIVED";
+               break;
+       case SESSION_STATE_REJECT_SESSION_SENT:
+               ret_val = "SESSION_STATE_REJECT_SESSION_SENT";
+               break;
+       case SESSION_STATE_REMOVE_SESSION_SENT:
+               ret_val = "SESSION_STATE_REMOVE_SESSION_SENT";
+               break;
+       default:
+               ret_val = "SESSION_STATE_MAX";
+               break;
+       }
+
+       return ret_val;
+}
+
+const char *_asp_session_gfsm_get_event_name_cb(gfsm_event_id_t event_id)
+{
+       const char *ret_val = NULL;
+
+       switch (event_id) {
+       case SESSION_EVENT_BOUND_PORT_CALLED:
+               ret_val = "SESSION_EVENT_BOUND_PORT_CALLED";
+               break;
+       case SESSION_EVENT_CLOSE_SESSION_CALLED:
+               ret_val = "SESSION_EVENT_CLOSE_SESSION_CALLED";
+               break;
+       case SESSION_EVENT_CONNECT_SESSION_CALLED:
+               ret_val = "SESSION_EVENT_CONNECT_SESSION_CALLED";
+               break;
+       case SESSION_EVENT_CONFIRM_SESSION_CALLED:
+               ret_val = "SESSION_EVENT_CONFIRM_SESSION_CALLED";
+               break;
+       case SESSION_EVENT_DEFER_SESSION_CALLED:
+               ret_val = "SESSION_EVENT_DEFER_SESSION_CALLED";
+               break;
+       case SESSION_EVENT_SET_SESSION_READY_CALLED:
+               ret_val = "SESSION_EVENT_SET_SESSION_READY_CALLED";
+               break;
+       case SESSION_EVENT_SESSION_REQUEST_CALLED:
+               ret_val = "SESSION_EVENT_SESSION_REQUEST_CALLED";
+               break;
+       case SESSION_EVENT_SESSION_CONFIG_REQUEST_CALLED:
+               ret_val = "SESSION_EVENT_SESSION_CONFIG_REQUEST_CALLED";
+               break;
+       case SESSION_EVENT_CONNECT_STATUS_CALLED:
+               ret_val = "SESSION_EVENT_CONNECT_STATUS_CALLED";
+               break;
+       case SESSION_EVENT_IP_ASSIGNED:
+               ret_val = "SESSION_EVENT_IP_ASSIGNED";
+               break;
+       case SESSION_EVENT_REMOVE_SESSION_RECEIVED:
+               ret_val = "SESSION_EVENT_REMOVE_SESSION_RECEIVED";
+               break;
+       case SESSION_EVENT_ALLOWED_PORT_RECEIVED:
+               ret_val = "SESSION_EVENT_ALLOWED_PORT_RECEIVED";
+               break;
+       case SESSION_EVENT_DEFERRED_SESSION_RECEIVED:
+               ret_val = "SESSION_EVENT_DEFERRED_SESSION_RECEIVED";
+               break;
+       case SESSION_EVENT_REJECTED_SESSION_RECEIVED:
+               ret_val = "SESSION_EVENT_REJECTED_SESSION_RECEIVED";
+               break;
+       case SESSION_EVENT_ADDED_SESSION_RECEIVED:
+               ret_val = "SESSION_EVENT_ADDED_SESSION_RECEIVED";
+               break;
+       case SESSION_EVENT_REQUEST_SESSION_RECEIVED:
+               ret_val = "SESSION_EVENT_REQUEST_SESSION_RECEIVED";
+               break;
+       case SESSION_EVENT_ACK_RECEIVED:
+               ret_val = "SESSION_EVENT_ACK_RECEIVED";
+               break;
+       case SESSION_EVENT_NACK_RECEIVED:
+               ret_val = "SESSION_EVENT_NACK_RECEIVED";
+               break;
+       case SESSION_EVENT_PEER_DESTROYED:
+               ret_val = "SESSION_EVENT_PEER_DESTROYED";
+               break;
+       case SESSION_EVENT_TIMEOUT:
+               ret_val = "SESSION_EVENT_TIMEOUT";
+               break;
+       case SESSION_EVENT_DELETE_SESSION:
+               ret_val = "SESSION_EVENT_DELETE_SESSION";
+               break;
+       default:
+               ret_val = "SESSION_EVENT_MAX";
+               break;
+       }
+
+       return ret_val;
+}
+
+int _asp_session_fsm_log_func(const char *format, ...)
+{
+       gchar buffer[256];
+       va_list args;
+       va_start (args, format);
+       g_vsnprintf (buffer, 255, format, args);
+       va_end (args);
+
+       ASP_LOGD("%s", buffer);
+
+       return 0;
+}
+
+
 void _asp_session_fsm_init()
 {
        INFO_MSG;
@@ -1718,6 +1878,11 @@ void _asp_session_fsm_init()
 
        gfsm_add_state(session_fsm, session_state_reject_session_sent);
        gfsm_add_state(session_fsm, session_state_remove_session_sent);
+
+       gfsm_set_logger(session_fsm, _asp_session_fsm_log_func,
+                       ASP_SESSION_HEADER,
+                       _asp_session_fsm_get_state_name_cb,
+                       _asp_session_gfsm_get_event_name_cb);
 }
 
 void _asp_session_fsm_terminate()
@@ -2236,6 +2401,7 @@ gfsm_state_id_t _state_group_formation_completed_reaction_ip_assigned(
        ip_assigned_param_s *p_ip_assigned_param = (ip_assigned_param_s *)p_event_data;
        g_assert(p_ip_assigned_param);
 
+       ASP_LOGD("peer IP %s", p_ip_assigned_param->peer_ip_addr);
        _store_peer_ip_addr(session, p_ip_assigned_param->peer_ip_addr,
                            p_ip_assigned_param->length);