add tcp active -> closing test case

This commit is contained in:
luwenpeng
2024-01-23 18:23:56 +08:00
parent 0df12ed331
commit 62b61fcc8d
7 changed files with 630 additions and 376 deletions

View File

@@ -107,7 +107,10 @@ static void tcp_init_timeout_cb(struct session *sess, void *arg)
struct session_manager *mgr = (struct session_manager *)arg;
assert(mgr != NULL);
session_set_closing_reasion(sess, CLOSING_BY_TIMEOUT);
if (session_get_closing_reasion(sess) == 0)
{
session_set_closing_reasion(sess, CLOSING_BY_TIMEOUT);
}
session_manager_update_tcp_to_closing(mgr, sess, 1);
}
@@ -117,7 +120,10 @@ static void tcp_handshake_timeout_cb(struct session *sess, void *arg)
struct session_manager *mgr = (struct session_manager *)arg;
assert(mgr != NULL);
session_set_closing_reasion(sess, CLOSING_BY_TIMEOUT);
if (session_get_closing_reasion(sess) == 0)
{
session_set_closing_reasion(sess, CLOSING_BY_TIMEOUT);
}
session_manager_update_tcp_to_closing(mgr, sess, 1);
}
@@ -127,7 +133,10 @@ static void tcp_data_timeout_cb(struct session *sess, void *arg)
struct session_manager *mgr = (struct session_manager *)arg;
assert(mgr != NULL);
session_set_closing_reasion(sess, CLOSING_BY_TIMEOUT);
if (session_get_closing_reasion(sess) == 0)
{
session_set_closing_reasion(sess, CLOSING_BY_TIMEOUT);
}
session_manager_update_tcp_to_closing(mgr, sess, 1);
}
@@ -137,7 +146,10 @@ static void tcp_half_closed_timeout_cb(struct session *sess, void *arg)
struct session_manager *mgr = (struct session_manager *)arg;
assert(mgr != NULL);
session_set_closing_reasion(sess, CLOSING_BY_TIMEOUT);
if (session_get_closing_reasion(sess) == 0)
{
session_set_closing_reasion(sess, CLOSING_BY_TIMEOUT);
}
session_manager_update_tcp_to_closing(mgr, sess, 1);
}
@@ -156,7 +168,10 @@ static void udp_data_timeout_cb(struct session *sess, void *arg)
struct session_manager *mgr = (struct session_manager *)arg;
assert(mgr != NULL);
session_set_closing_reasion(sess, CLOSING_BY_TIMEOUT);
if (session_get_closing_reasion(sess) == 0)
{
session_set_closing_reasion(sess, CLOSING_BY_TIMEOUT);
}
session_manager_update_udp_to_closing(mgr, sess);
}
@@ -734,7 +749,7 @@ static void session_manager_handle_tcp_on_opening(struct session_manager *mgr, s
static void session_manager_handle_tcp_on_active(struct session_manager *mgr, struct session *sess, enum tcp_state tcp_old_state, enum tcp_state tcp_curr_state)
{
// active -> closing
if ((tcp_curr_state & TCP_C2S_FIN_RECVED) && (tcp_curr_state | TCP_S2C_FIN_RECVED))
if ((tcp_curr_state & TCP_C2S_FIN_RECVED) && (tcp_curr_state & TCP_S2C_FIN_RECVED))
{
SESSION_LOG_DEBUG("TCP FIN-FIN received, session %lu active -> closing", session_get_id(sess));
session_manager_update_tcp_to_closing(mgr, sess, 1);