Update session timeouts
This commit is contained in:
@@ -240,6 +240,99 @@ enum session_dir session_get_cur_dir(const struct session *sess)
|
||||
* session tcp reassembly
|
||||
******************************************************************************/
|
||||
|
||||
int session_new_tcp_reassembly(struct session *sess, struct tcp_reassembly_options *opts)
|
||||
{
|
||||
sess->c2s_reassembly = tcp_reassembly_new(opts);
|
||||
if (sess->c2s_reassembly == NULL)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
sess->s2c_reassembly = tcp_reassembly_new(opts);
|
||||
if (sess->s2c_reassembly == NULL)
|
||||
{
|
||||
tcp_reassembly_free(sess->c2s_reassembly);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void session_free_tcp_reassembly(struct session *sess)
|
||||
{
|
||||
tcp_reassembly_free(sess->c2s_reassembly);
|
||||
tcp_reassembly_free(sess->s2c_reassembly);
|
||||
}
|
||||
|
||||
void session_init_tcp_seq(struct session *sess, uint32_t syn_seq)
|
||||
{
|
||||
if (sess->type != SESSION_TYPE_TCP)
|
||||
{
|
||||
assert(0);
|
||||
return;
|
||||
}
|
||||
|
||||
if (sess->cur_dir == SESSION_DIR_C2S)
|
||||
{
|
||||
sess->c2s_seq = syn_seq;
|
||||
tcp_reassembly_init(sess->c2s_reassembly, syn_seq);
|
||||
}
|
||||
else
|
||||
{
|
||||
sess->s2c_seq = syn_seq;
|
||||
tcp_reassembly_init(sess->s2c_reassembly, syn_seq);
|
||||
}
|
||||
}
|
||||
|
||||
void session_set_tcp_seq_ack(struct session *sess, uint32_t seq, uint32_t ack)
|
||||
{
|
||||
if (sess->type != SESSION_TYPE_TCP)
|
||||
{
|
||||
assert(0);
|
||||
return;
|
||||
}
|
||||
|
||||
if (sess->cur_dir == SESSION_DIR_C2S)
|
||||
{
|
||||
sess->c2s_seq = seq;
|
||||
sess->c2s_ack = ack;
|
||||
}
|
||||
else
|
||||
{
|
||||
sess->s2c_seq = seq;
|
||||
sess->s2c_ack = ack;
|
||||
}
|
||||
}
|
||||
|
||||
void session_insert_tcp_payload(struct session *sess, uint32_t seq, const char *payload, uint32_t len, uint64_t now)
|
||||
{
|
||||
if (sess->type != SESSION_TYPE_TCP)
|
||||
{
|
||||
assert(0);
|
||||
return;
|
||||
}
|
||||
|
||||
if (sess->cur_dir == SESSION_DIR_C2S)
|
||||
{
|
||||
tcp_reassembly_insert(sess->c2s_reassembly, seq, payload, len, now);
|
||||
}
|
||||
else
|
||||
{
|
||||
tcp_reassembly_insert(sess->s2c_reassembly, seq, payload, len, now);
|
||||
}
|
||||
}
|
||||
|
||||
void session_expire_tcp_payload(struct session *sess, uint64_t now)
|
||||
{
|
||||
if (sess->type != SESSION_TYPE_TCP)
|
||||
{
|
||||
assert(0);
|
||||
return;
|
||||
}
|
||||
|
||||
tcp_reassembly_expire(sess->c2s_reassembly, now);
|
||||
tcp_reassembly_expire(sess->s2c_reassembly, now);
|
||||
}
|
||||
|
||||
const char *session_peek_tcp_payload(struct session *sess, uint32_t *len)
|
||||
{
|
||||
if (sess->type != SESSION_TYPE_TCP)
|
||||
|
||||
Reference in New Issue
Block a user