refactor: use session_manager_discard_session() instead of session_set_discard()
This commit is contained in:
@@ -68,7 +68,6 @@ struct session
|
||||
enum session_type sess_type;
|
||||
enum session_state state;
|
||||
enum closing_reason reason;
|
||||
struct session_manager_rte *sess_mgr_rte;
|
||||
struct session_manager_stat *sess_mgr_stat;
|
||||
};
|
||||
|
||||
|
||||
@@ -463,6 +463,16 @@ struct session *session_manager_lookup_session_by_id(struct session_manager *ses
|
||||
return session_manager_rte_lookup_session_by_id(rte, sess_id);
|
||||
}
|
||||
|
||||
void session_manager_discard_session(struct session_manager *sess_mgr, uint16_t thread_id, struct session *sess)
|
||||
{
|
||||
struct session_manager_rte *rte = session_manager_get_rte(sess_mgr, thread_id);
|
||||
if (rte == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
session_manager_rte_discard_session(rte, sess);
|
||||
}
|
||||
|
||||
struct session *packet_exdata_to_session(const struct session_manager *sess_mgr, const struct packet *pkt)
|
||||
{
|
||||
return (struct session *)packet_get_exdata(pkt, sess_mgr->pkt_ex_to_get_sess);
|
||||
|
||||
@@ -32,7 +32,10 @@ struct session_manager_rte
|
||||
struct session_manager_cfg cfg;
|
||||
struct session_manager_stat stat;
|
||||
|
||||
// only used for session_set_discard() or session_manager_rte_record_duplicated_packet(), because the function is called by plugin and has no time input.
|
||||
/*
|
||||
* only used for session_manager_discard_session() or session_manager_rte_record_duplicated_packet(),
|
||||
* because the function is called by module and has no time input.
|
||||
*/
|
||||
uint64_t now_ms;
|
||||
struct snowflake *sf;
|
||||
};
|
||||
@@ -587,7 +590,6 @@ static struct session *session_manager_rte_new_tcp_session(struct session_manage
|
||||
return NULL;
|
||||
}
|
||||
session_init(sess);
|
||||
sess->sess_mgr_rte = sess_mgr_rte;
|
||||
sess->sess_mgr_stat = &sess_mgr_rte->stat;
|
||||
|
||||
enum session_state next_state = session_transition_run(SESSION_STATE_INIT, TCP_SYN);
|
||||
@@ -634,7 +636,6 @@ static struct session *session_manager_rte_new_udp_session(struct session_manage
|
||||
return NULL;
|
||||
}
|
||||
session_init(sess);
|
||||
sess->sess_mgr_rte = sess_mgr_rte;
|
||||
sess->sess_mgr_stat = &sess_mgr_rte->stat;
|
||||
|
||||
enum flow_type type = identify_flow_type_by_port(ntohs(key->src_port), ntohs(key->dst_port));
|
||||
@@ -1160,22 +1161,8 @@ uint64_t session_manager_rte_scan_session(struct session_manager_rte *sess_mgr_r
|
||||
return mached_sess_num;
|
||||
}
|
||||
|
||||
void session_manager_rte_record_duplicated_packet(struct session_manager_rte *sess_mgr_rte, const struct packet *pkt)
|
||||
void session_manager_rte_discard_session(struct session_manager_rte *sess_mgr_rte, struct session *sess)
|
||||
{
|
||||
if (sess_mgr_rte->cfg.duplicated_packet_bloom_filter.enable)
|
||||
{
|
||||
packet_dabloom_add(sess_mgr_rte->dup_pkt_dab, pkt, sess_mgr_rte->now_ms);
|
||||
}
|
||||
}
|
||||
|
||||
struct session_manager_stat *session_manager_rte_get_stat(struct session_manager_rte *sess_mgr_rte)
|
||||
{
|
||||
return &sess_mgr_rte->stat;
|
||||
}
|
||||
|
||||
void session_set_discard(struct session *sess)
|
||||
{
|
||||
struct session_manager_rte *sess_mgr_rte = sess->sess_mgr_rte;
|
||||
enum session_type type = session_get_type(sess);
|
||||
enum session_state curr_state = session_get_current_state(sess);
|
||||
enum session_state next_state = session_transition_run(curr_state, USER_CLOSE);
|
||||
@@ -1197,3 +1184,16 @@ void session_set_discard(struct session *sess)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void session_manager_rte_record_duplicated_packet(struct session_manager_rte *sess_mgr_rte, const struct packet *pkt)
|
||||
{
|
||||
if (sess_mgr_rte->cfg.duplicated_packet_bloom_filter.enable)
|
||||
{
|
||||
packet_dabloom_add(sess_mgr_rte->dup_pkt_dab, pkt, sess_mgr_rte->now_ms);
|
||||
}
|
||||
}
|
||||
|
||||
struct session_manager_stat *session_manager_rte_get_stat(struct session_manager_rte *sess_mgr_rte)
|
||||
{
|
||||
return &sess_mgr_rte->stat;
|
||||
}
|
||||
@@ -44,6 +44,7 @@ struct session *session_manager_rte_get_expired_session(struct session_manager_r
|
||||
struct session *session_manager_rte_get_evicted_session(struct session_manager_rte *sess_mgr_rte);
|
||||
|
||||
uint64_t session_manager_rte_scan_session(struct session_manager_rte *sess_mgr_rte, const struct session_filter *filter, uint64_t mached_sess_id[], uint64_t array_size);
|
||||
void session_manager_rte_discard_session(struct session_manager_rte *sess_mgr_rte, struct session *sess);
|
||||
|
||||
void session_manager_rte_record_duplicated_packet(struct session_manager_rte *sess_mgr_rte, const struct packet *pkt);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user