Add test cases for session manager (session state machine)
This commit is contained in:
@@ -296,11 +296,13 @@ static void update_tcp_ex_data(struct session *sess, const struct packet *pkt, e
|
||||
{
|
||||
if (curr_dir == SESSION_DIR_C2S)
|
||||
{
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state & TCP_C2S_RST_RECVED));
|
||||
state |= TCP_C2S_RST_RECVED;
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state));
|
||||
}
|
||||
else
|
||||
{
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state & TCP_S2C_RST_RECVED));
|
||||
state |= TCP_S2C_RST_RECVED;
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -308,11 +310,13 @@ static void update_tcp_ex_data(struct session *sess, const struct packet *pkt, e
|
||||
{
|
||||
if (curr_dir == SESSION_DIR_C2S)
|
||||
{
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state & TCP_C2S_FIN_RECVED));
|
||||
state |= TCP_C2S_FIN_RECVED;
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state));
|
||||
}
|
||||
else
|
||||
{
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state & TCP_S2C_FIN_RECVED));
|
||||
state |= TCP_S2C_FIN_RECVED;
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -320,28 +324,27 @@ static void update_tcp_ex_data(struct session *sess, const struct packet *pkt, e
|
||||
{
|
||||
if (packet_has_tcp_flag_ack(pkt))
|
||||
{
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state | TCP_SYNACK_RECVED));
|
||||
state |= TCP_SYNACK_RECVED;
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state));
|
||||
}
|
||||
else
|
||||
{
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state | TCP_SYN_RECVED));
|
||||
state |= TCP_SYN_RECVED;
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state));
|
||||
}
|
||||
}
|
||||
|
||||
if (packet_has_tcp_flag_ack(pkt) && curr_dir == SESSION_DIR_C2S)
|
||||
{
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state | TCP_ACK_RECVED));
|
||||
}
|
||||
|
||||
if (packet_get_tcp_pld_len(pkt) > 0)
|
||||
{
|
||||
if (curr_dir == SESSION_DIR_C2S)
|
||||
{
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state | TCP_C2S_PAYLOAD_RECVED));
|
||||
state |= TCP_C2S_PAYLOAD_RECVED;
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state));
|
||||
}
|
||||
else
|
||||
{
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state | TCP_S2C_PAYLOAD_RECVED));
|
||||
state |= TCP_S2C_PAYLOAD_RECVED;
|
||||
session_set_ex_data(sess, tcp_builtin_ex, (void *)(state));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user