session manager support tcp reassembly
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user