session manager support tcp reassembly

This commit is contained in:
luwenpeng
2024-03-26 15:09:03 +08:00
parent 5b92d6d8de
commit eb281ab789
30 changed files with 1917 additions and 88 deletions

View File

@@ -236,6 +236,47 @@ enum session_dir session_get_cur_dir(const struct session *sess)
return sess->cur_dir;
}
/******************************************************************************
* session tcp reassembly
******************************************************************************/
const char *session_peek_tcp_payload(struct session *sess, uint32_t *len)
{
if (sess->type != SESSION_TYPE_TCP)
{
*len = 0;
assert(0);
return NULL;
}
if (sess->cur_dir == SESSION_DIR_C2S)
{
return tcp_reassembly_peek(sess->c2s_reassembly, len);
}
else
{
return tcp_reassembly_peek(sess->s2c_reassembly, len);
}
}
void session_consume_tcp_payload(struct session *sess, uint32_t len)
{
if (sess->type != SESSION_TYPE_TCP)
{
assert(0);
return;
}
if (sess->cur_dir == SESSION_DIR_C2S)
{
tcp_reassembly_consume(sess->c2s_reassembly, len);
}
else
{
tcp_reassembly_consume(sess->s2c_reassembly, len);
}
}
/******************************************************************************
* session ex data
******************************************************************************/
@@ -327,7 +368,7 @@ void session_free_ex_data(struct session *sess, uint8_t idx)
sess->ex_data[idx] = NULL;
}
void session_clean(struct session *sess)
void session_free_all_ex_data(struct session *sess)
{
if (sess)
{
@@ -335,18 +376,6 @@ void session_clean(struct session *sess)
{
session_free_ex_data(sess, i);
}
if (sess->c2s_1st_pkt)
{
packet_free(sess->c2s_1st_pkt);
sess->c2s_1st_pkt = NULL;
}
if (sess->s2c_1st_pkt)
{
packet_free(sess->s2c_1st_pkt);
sess->s2c_1st_pkt = NULL;
}
}
}