remove session_manager_subscribe_xxx() API; convert session closing events to pseudo packets
when a session is closed, use the packet manager to create a pseudo packet,
set the session to be closed as packet Exdata, and schedule it to the packet forwarding stage.
when the pseudo packet free, the session will be free.
This commit is contained in:
@@ -5,9 +5,6 @@
|
||||
void session_init(struct session *sess)
|
||||
{
|
||||
memset(sess, 0, sizeof(struct session));
|
||||
sess->empty_seg.data = NULL;
|
||||
sess->empty_seg.len = 0;
|
||||
sess->empty_seg.user_data = sess;
|
||||
}
|
||||
|
||||
void session_set_id(struct session *sess, uint64_t id)
|
||||
@@ -212,7 +209,6 @@ struct tcp_segment *session_get_tcp_segment(struct session *sess)
|
||||
{
|
||||
sess->sess_mgr_stat->tcp_segs_consumed++;
|
||||
half->inorder_seg_consumed = 1;
|
||||
half->inorder_seg.user_data = sess;
|
||||
return &half->inorder_seg;
|
||||
}
|
||||
else
|
||||
@@ -226,7 +222,6 @@ struct tcp_segment *session_get_tcp_segment(struct session *sess)
|
||||
// TODO
|
||||
sess->sess_mgr_stat->tcp_segs_consumed++;
|
||||
sess->sess_mgr_stat->tcp_segs_reordered++;
|
||||
seg->user_data = sess;
|
||||
}
|
||||
return seg;
|
||||
}
|
||||
@@ -239,12 +234,6 @@ void session_free_tcp_segment(struct session *sess, struct tcp_segment *seg)
|
||||
return;
|
||||
}
|
||||
|
||||
// empty segment for end of session
|
||||
if (seg == &sess->empty_seg)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
enum flow_type type = session_get_flow_type(sess);
|
||||
struct tcp_half *half = &sess->tcp_halfs[type];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user