Split session_manager_dispatch into session_manager_dispatch and session_manager_expire
This commit is contained in:
@@ -67,11 +67,11 @@ TEST(SESSION_MANAGER, INIT_TO_OPENING_BY_SYN)
|
||||
mgr = session_manager_create(max_session_num);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_eventcb(mgr, plugin_dispatch, (void *)plugin_ctx);
|
||||
session_manager_set_packet_timeout(mgr, 1000);
|
||||
session_manager_set_closing_timeout(mgr, 2000);
|
||||
session_manager_set_timeout_toclosing(mgr, 1000);
|
||||
session_manager_set_timeout_toclosed(mgr, 2000);
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt1_c2s_syn, sizeof(tcp_pkt1_c2s_syn));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -101,10 +101,11 @@ TEST(SESSION_MANAGER, INIT_TO_OPENING_BY_SYN)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
session_manager_dispatch(mgr, sess);
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, session_manager_expire(mgr));
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
@@ -142,11 +143,11 @@ TEST(SESSION_MANAGER, INIT_TO_OPENING_BY_SYNACK)
|
||||
mgr = session_manager_create(max_session_num);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_eventcb(mgr, plugin_dispatch, (void *)plugin_ctx);
|
||||
session_manager_set_packet_timeout(mgr, 1000);
|
||||
session_manager_set_closing_timeout(mgr, 2000);
|
||||
session_manager_set_timeout_toclosing(mgr, 1000);
|
||||
session_manager_set_timeout_toclosed(mgr, 2000);
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt2_s2c_syn_ack, sizeof(tcp_pkt2_s2c_syn_ack));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -176,10 +177,11 @@ TEST(SESSION_MANAGER, INIT_TO_OPENING_BY_SYNACK)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
session_manager_dispatch(mgr, sess);
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, session_manager_expire(mgr));
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
@@ -221,11 +223,11 @@ TEST(SESSION_MANAGER, INIT_TO_ACTIVE_BY_UDP_C2S)
|
||||
mgr = session_manager_create(max_session_num);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_eventcb(mgr, plugin_dispatch, (void *)plugin_ctx);
|
||||
session_manager_set_packet_timeout(mgr, 1000);
|
||||
session_manager_set_closing_timeout(mgr, 2000);
|
||||
session_manager_set_timeout_toclosing(mgr, 1000);
|
||||
session_manager_set_timeout_toclosed(mgr, 2000);
|
||||
|
||||
packet_parse(&pkt, (const char *)udp_pkt1_dns_req, sizeof(udp_pkt1_dns_req));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -255,10 +257,11 @@ TEST(SESSION_MANAGER, INIT_TO_ACTIVE_BY_UDP_C2S)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 1);
|
||||
|
||||
session_manager_dispatch(mgr, sess);
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, session_manager_expire(mgr));
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
@@ -296,11 +299,11 @@ TEST(SESSION_MANAGER, INIT_TO_ACTIVE_BY_UDP_S2C)
|
||||
mgr = session_manager_create(max_session_num);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_eventcb(mgr, plugin_dispatch, (void *)plugin_ctx);
|
||||
session_manager_set_packet_timeout(mgr, 1000);
|
||||
session_manager_set_closing_timeout(mgr, 2000);
|
||||
session_manager_set_timeout_toclosing(mgr, 1000);
|
||||
session_manager_set_timeout_toclosed(mgr, 2000);
|
||||
|
||||
packet_parse(&pkt, (const char *)udp_pkt2_dns_resp, sizeof(udp_pkt2_dns_resp));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -330,10 +333,11 @@ TEST(SESSION_MANAGER, INIT_TO_ACTIVE_BY_UDP_S2C)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 1);
|
||||
|
||||
session_manager_dispatch(mgr, sess);
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, session_manager_expire(mgr));
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
@@ -378,15 +382,15 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_C2S_PAYLOAD)
|
||||
mgr = session_manager_create(max_session_num);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_eventcb(mgr, plugin_dispatch, (void *)plugin_ctx);
|
||||
session_manager_set_packet_timeout(mgr, 1000);
|
||||
session_manager_set_closing_timeout(mgr, 2000);
|
||||
session_manager_set_timeout_toclosing(mgr, 1000);
|
||||
session_manager_set_timeout_toclosed(mgr, 2000);
|
||||
|
||||
/**************************************************************************
|
||||
* syn packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt1_c2s_syn, sizeof(tcp_pkt1_c2s_syn));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -416,20 +420,15 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_C2S_PAYLOAD)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer SYN Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* c2s payload packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt4_c2s_http_req, sizeof(tcp_pkt4_c2s_http_req));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -446,7 +445,7 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_C2S_PAYLOAD)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_C2S);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_C2S_PAYLOAD_RECVED));
|
||||
@@ -459,9 +458,8 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_C2S_PAYLOAD)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer C2S Payload Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* timeout
|
||||
@@ -471,7 +469,7 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_C2S_PAYLOAD)
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, session_manager_expire(mgr));
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
@@ -512,15 +510,15 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_S2C_PAYLOAD)
|
||||
mgr = session_manager_create(max_session_num);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_eventcb(mgr, plugin_dispatch, (void *)plugin_ctx);
|
||||
session_manager_set_packet_timeout(mgr, 1000);
|
||||
session_manager_set_closing_timeout(mgr, 2000);
|
||||
session_manager_set_timeout_toclosing(mgr, 1000);
|
||||
session_manager_set_timeout_toclosed(mgr, 2000);
|
||||
|
||||
/**************************************************************************
|
||||
* syn packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt1_c2s_syn, sizeof(tcp_pkt1_c2s_syn));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -550,20 +548,15 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_S2C_PAYLOAD)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer SYN Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* s2c payload packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt6_s2c_http_resq_1, sizeof(tcp_pkt6_s2c_http_resq_1));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -580,7 +573,7 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_S2C_PAYLOAD)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_S2C);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_S2C_PAYLOAD_RECVED));
|
||||
@@ -593,9 +586,8 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_S2C_PAYLOAD)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer C2S Payload Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* timeout
|
||||
@@ -605,10 +597,9 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_S2C_PAYLOAD)
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, session_manager_expire(mgr));
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
// check sess mgr
|
||||
EXPECT_TRUE(session_manager_get_tcp_opening_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_tcp_closing_sess_num(mgr) == 0);
|
||||
@@ -645,15 +636,15 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_C2S_PAYLOAD)
|
||||
mgr = session_manager_create(max_session_num);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_eventcb(mgr, plugin_dispatch, (void *)plugin_ctx);
|
||||
session_manager_set_packet_timeout(mgr, 1000);
|
||||
session_manager_set_closing_timeout(mgr, 2000);
|
||||
session_manager_set_timeout_toclosing(mgr, 1000);
|
||||
session_manager_set_timeout_toclosed(mgr, 2000);
|
||||
|
||||
/**************************************************************************
|
||||
* synack packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt2_s2c_syn_ack, sizeof(tcp_pkt2_s2c_syn_ack));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -683,20 +674,15 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_C2S_PAYLOAD)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer SYNACK Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* c2s payload packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt4_c2s_http_req, sizeof(tcp_pkt4_c2s_http_req));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -713,7 +699,7 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_C2S_PAYLOAD)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_C2S);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYNACK_RECVED | TCP_C2S_PAYLOAD_RECVED));
|
||||
@@ -726,9 +712,8 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_C2S_PAYLOAD)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer C2S Payload Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* timeout
|
||||
@@ -738,7 +723,7 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_C2S_PAYLOAD)
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, session_manager_expire(mgr));
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
@@ -778,15 +763,15 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_S2C_PAYLOAD)
|
||||
mgr = session_manager_create(max_session_num);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_eventcb(mgr, plugin_dispatch, (void *)plugin_ctx);
|
||||
session_manager_set_packet_timeout(mgr, 1000);
|
||||
session_manager_set_closing_timeout(mgr, 2000);
|
||||
session_manager_set_timeout_toclosing(mgr, 1000);
|
||||
session_manager_set_timeout_toclosed(mgr, 2000);
|
||||
|
||||
/**************************************************************************
|
||||
* synack packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt2_s2c_syn_ack, sizeof(tcp_pkt2_s2c_syn_ack));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -816,20 +801,15 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_S2C_PAYLOAD)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer SYNACK Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* s2c payload packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt6_s2c_http_resq_1, sizeof(tcp_pkt6_s2c_http_resq_1));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -846,7 +826,7 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_S2C_PAYLOAD)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_S2C);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYNACK_RECVED | TCP_S2C_PAYLOAD_RECVED));
|
||||
@@ -859,9 +839,8 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_S2C_PAYLOAD)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer S2C Payload Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* timeout
|
||||
@@ -871,7 +850,7 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_S2C_PAYLOAD)
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, session_manager_expire(mgr));
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
@@ -916,15 +895,15 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_SYNACK_AND_ACK_AND_C2S_PAYLOA
|
||||
mgr = session_manager_create(max_session_num);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_eventcb(mgr, plugin_dispatch, (void *)plugin_ctx);
|
||||
session_manager_set_packet_timeout(mgr, 1000);
|
||||
session_manager_set_closing_timeout(mgr, 2000);
|
||||
session_manager_set_timeout_toclosing(mgr, 1000);
|
||||
session_manager_set_timeout_toclosed(mgr, 2000);
|
||||
|
||||
/**************************************************************************
|
||||
* syn packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt1_c2s_syn, sizeof(tcp_pkt1_c2s_syn));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -954,20 +933,15 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_SYNACK_AND_ACK_AND_C2S_PAYLOA
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer SYN Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* synack packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt2_s2c_syn_ack, sizeof(tcp_pkt2_s2c_syn_ack));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -984,7 +958,7 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_SYNACK_AND_ACK_AND_C2S_PAYLOA
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_S2C);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_SYNACK_RECVED));
|
||||
@@ -997,20 +971,15 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_SYNACK_AND_ACK_AND_C2S_PAYLOA
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer SYNACK Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* ack packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt3_c2s_ack, sizeof(tcp_pkt3_c2s_ack));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1027,7 +996,7 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_SYNACK_AND_ACK_AND_C2S_PAYLOA
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_C2S);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_SYNACK_RECVED));
|
||||
@@ -1040,20 +1009,15 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_SYNACK_AND_ACK_AND_C2S_PAYLOA
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer ACK Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* c2s payload packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt4_c2s_http_req, sizeof(tcp_pkt4_c2s_http_req));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1070,7 +1034,7 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_SYNACK_AND_ACK_AND_C2S_PAYLOA
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_C2S);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_SYNACK_RECVED | TCP_C2S_PAYLOAD_RECVED));
|
||||
@@ -1083,9 +1047,8 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_SYNACK_AND_ACK_AND_C2S_PAYLOA
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer C2S TCP Payload Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* timeout
|
||||
@@ -1095,10 +1058,9 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_SYNACK_AND_ACK_AND_C2S_PAYLOA
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, session_manager_expire(mgr));
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
// check sess mgr
|
||||
EXPECT_TRUE(session_manager_get_tcp_opening_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_tcp_closing_sess_num(mgr) == 0);
|
||||
@@ -1236,15 +1198,15 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
mgr = session_manager_create(max_session_num);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_eventcb(mgr, plugin_dispatch, (void *)plugin_ctx);
|
||||
session_manager_set_packet_timeout(mgr, 1000);
|
||||
session_manager_set_closing_timeout(mgr, 2000);
|
||||
session_manager_set_timeout_toclosing(mgr, 1000);
|
||||
session_manager_set_timeout_toclosed(mgr, 2000);
|
||||
|
||||
/**************************************************************************
|
||||
* syn packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt1_c2s_syn, sizeof(tcp_pkt1_c2s_syn));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1274,20 +1236,15 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer SYN Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* synack packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt2_s2c_syn_ack, sizeof(tcp_pkt2_s2c_syn_ack));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1304,7 +1261,7 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_S2C);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_SYNACK_RECVED));
|
||||
@@ -1317,20 +1274,15 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer SYNACK Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* ack packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt3_c2s_ack, sizeof(tcp_pkt3_c2s_ack));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1347,7 +1299,7 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_C2S);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_SYNACK_RECVED));
|
||||
@@ -1360,20 +1312,15 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer ACK Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* c2s http req packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt4_c2s_http_req, sizeof(tcp_pkt4_c2s_http_req));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1390,7 +1337,7 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_C2S);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_SYNACK_RECVED | TCP_C2S_PAYLOAD_RECVED));
|
||||
@@ -1403,20 +1350,15 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer C2S HTTP Req Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* s2c ack packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt5_s2c_ack, sizeof(tcp_pkt5_s2c_ack));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1433,7 +1375,7 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_S2C);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_SYNACK_RECVED | TCP_C2S_PAYLOAD_RECVED));
|
||||
@@ -1446,20 +1388,15 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer S2C Ack Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* s2c http resp packet1
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt6_s2c_http_resq_1, sizeof(tcp_pkt6_s2c_http_resq_1));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1476,7 +1413,7 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_S2C);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_SYNACK_RECVED | TCP_C2S_PAYLOAD_RECVED | TCP_S2C_PAYLOAD_RECVED));
|
||||
@@ -1489,20 +1426,15 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer S2C HTTP Resp Packet1 <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* s2c http resp packet2
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt7_s2c_http_resp_2, sizeof(tcp_pkt7_s2c_http_resp_2));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1519,7 +1451,7 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_S2C);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_SYNACK_RECVED | TCP_C2S_PAYLOAD_RECVED | TCP_S2C_PAYLOAD_RECVED));
|
||||
@@ -1532,20 +1464,15 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer S2C HTTP Resp Packet2 <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* c2s ack packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt8_c2s_ack, sizeof(tcp_pkt8_c2s_ack));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1562,7 +1489,7 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_C2S);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_SYNACK_RECVED | TCP_C2S_PAYLOAD_RECVED | TCP_S2C_PAYLOAD_RECVED));
|
||||
@@ -1575,20 +1502,15 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer C2S Ack Packet2 <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* c2s fin packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt9_c2s_fin, sizeof(tcp_pkt9_c2s_fin));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1605,7 +1527,7 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_C2S);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_SYNACK_RECVED | TCP_C2S_PAYLOAD_RECVED | TCP_S2C_PAYLOAD_RECVED | TCP_C2S_FIN_RECVED));
|
||||
@@ -1618,20 +1540,15 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer C2S FIN Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* s2c fin packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt10_s2c_fin, sizeof(tcp_pkt10_s2c_fin));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1648,7 +1565,7 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1 + 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_S2C);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_SYNACK_RECVED | TCP_C2S_PAYLOAD_RECVED | TCP_S2C_PAYLOAD_RECVED | TCP_C2S_FIN_RECVED | TCP_S2C_FIN_RECVED));
|
||||
@@ -1661,20 +1578,15 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer C2S FIN Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* c2s ack packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)tcp_pkt11_c2s_ack, sizeof(tcp_pkt11_c2s_ack));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1691,7 +1603,7 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1 + 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == NULL);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_NONE);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, tcp_builtin_ex) == (TCP_SYN_RECVED | TCP_SYNACK_RECVED | TCP_C2S_PAYLOAD_RECVED | TCP_S2C_PAYLOAD_RECVED | TCP_C2S_FIN_RECVED | TCP_S2C_FIN_RECVED));
|
||||
@@ -1704,6 +1616,9 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 0);
|
||||
|
||||
printf("\n===> Atfer C2S ACK Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* timeout
|
||||
**************************************************************************/
|
||||
@@ -1712,7 +1627,7 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, session_manager_expire(mgr));
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
@@ -1752,15 +1667,15 @@ TEST(SESSION_MANAGER, UDP_FULL_STREAM)
|
||||
mgr = session_manager_create(max_session_num);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_eventcb(mgr, plugin_dispatch, (void *)plugin_ctx);
|
||||
session_manager_set_packet_timeout(mgr, 1000);
|
||||
session_manager_set_closing_timeout(mgr, 2000);
|
||||
session_manager_set_timeout_toclosing(mgr, 1000);
|
||||
session_manager_set_timeout_toclosed(mgr, 2000);
|
||||
|
||||
/**************************************************************************
|
||||
* UDP c2s packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)udp_pkt1_dns_req, sizeof(udp_pkt1_dns_req));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1790,20 +1705,15 @@ TEST(SESSION_MANAGER, UDP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 1);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer UDP c2s Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
|
||||
// update timestamp
|
||||
usleep(1000);
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* UDP s2c packet
|
||||
**************************************************************************/
|
||||
|
||||
packet_parse(&pkt, (const char *)udp_pkt2_dns_resp, sizeof(udp_pkt2_dns_resp));
|
||||
sess = session_manager_find_session(mgr, &pkt);
|
||||
sess = session_manager_update(mgr, &pkt);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check session info
|
||||
@@ -1820,7 +1730,7 @@ TEST(SESSION_MANAGER, UDP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||
EXPECT_TRUE(session_get0_cur_pkt(sess) == &pkt);
|
||||
EXPECT_TRUE(session_get_cur_dir(sess) == SESSION_DIR_S2C);
|
||||
EXPECT_TRUE((uint64_t)session_get0_ex_data(sess, udp_builtin_ex) == (UDP_C2S_RECVED | UDP_S2C_RECVED));
|
||||
@@ -1833,9 +1743,8 @@ TEST(SESSION_MANAGER, UDP_FULL_STREAM)
|
||||
EXPECT_TRUE(session_manager_get_udp_closing_sess_num(mgr) == 0);
|
||||
EXPECT_TRUE(session_manager_get_udp_active_sess_num(mgr) == 1);
|
||||
|
||||
timestamp_update();
|
||||
printf("\n===> Atfer UDP c2s Packet <=== \n\n");
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, sess);
|
||||
|
||||
/**************************************************************************
|
||||
* timeout
|
||||
@@ -1844,7 +1753,7 @@ TEST(SESSION_MANAGER, UDP_FULL_STREAM)
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
timestamp_update();
|
||||
session_manager_dispatch(mgr);
|
||||
session_manager_dispatch(mgr, session_manager_expire(mgr));
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user