session support get/set current packet

This commit is contained in:
luwenpeng
2023-12-15 11:20:05 +08:00
parent a232045764
commit 90a6936fd6
4 changed files with 66 additions and 2 deletions

View File

@@ -294,11 +294,19 @@ void session_set_s2c_1st_md(struct session *sess, struct metadata *md)
struct metadata *session_get0_c2s_1st_md(struct session *sess) struct metadata *session_get0_c2s_1st_md(struct session *sess)
{ {
if (sess->c2s_1st_md.len == 0)
{
return NULL;
}
return &sess->c2s_1st_md; return &sess->c2s_1st_md;
} }
struct metadata *session_get0_s2c_1st_md(struct session *sess) struct metadata *session_get0_s2c_1st_md(struct session *sess)
{ {
if (sess->s2c_1st_md.len == 0)
{
return NULL;
}
return &sess->s2c_1st_md; return &sess->s2c_1st_md;
} }
@@ -323,6 +331,36 @@ uint64_t session_get_last_time(struct session *sess)
return sess->last_time; return sess->last_time;
} }
/******************************************************************************
* session current packet
******************************************************************************/
// session current packet
void session_set0_cur_pkt(struct session *sess, const struct packet *pkt)
{
sess->cur_pkt = pkt;
}
struct packet *session_get0_cur_pkt(struct session *sess)
{
return sess->cur_pkt;
}
// session current dir
void session_set_cur_dir(struct session *sess, enum session_dir dir)
{
sess->cur_dir = dir;
}
enum session_dir session_get_cur_dir(struct session *sess)
{
return sess->cur_dir;
}
/******************************************************************************
* session event
******************************************************************************/
// session event // session event
bool session_push_event(struct session *sess, uint32_t event) bool session_push_event(struct session *sess, uint32_t event)
{ {

View File

@@ -64,9 +64,16 @@ struct session_key
uint64_t security_zone; uint64_t security_zone;
}; };
enum session_dir
{
SESSION_DIR_C2S = 0,
SESSION_DIR_S2C = 1,
};
struct metadata struct metadata
{ {
char data[64]; // TODO char data[64]; // TODO
int len;
}; };
struct session; struct session;
@@ -121,7 +128,18 @@ void session_set_create_time(struct session *sess, uint64_t timestamp);
void session_set_last_time(struct session *sess, uint64_t timestamp); void session_set_last_time(struct session *sess, uint64_t timestamp);
uint64_t session_get_create_time(struct session *sess); uint64_t session_get_create_time(struct session *sess);
uint64_t session_get_last_time(struct session *sess); uint64_t session_get_last_time(struct session *sess);
uint64_t session_get_expire_time(struct session *sess);
/******************************************************************************
* session current packet
******************************************************************************/
// session current packet
void session_set0_cur_pkt(struct session *sess, const struct packet *pkt);
struct packet *session_get0_cur_pkt(struct session *sess);
// session current dir
void session_set_cur_dir(struct session *sess, enum session_dir dir);
enum session_dir session_get_cur_dir(struct session *sess);
/****************************************************************************** /******************************************************************************
* session event * session event

View File

@@ -168,7 +168,7 @@ void session_manager_set_session_eventcb(struct session_manager *mgr, session_ev
mgr->arg = arg; mgr->arg = arg;
} }
struct session *session_manager_find_sessions(struct session_manager *mgr, const struct packet *pkt) struct session *session_manager_find_session(struct session_manager *mgr, const struct packet *pkt)
{ {
struct session_key key; struct session_key key;
// TODO packet to key // TODO packet to key

View File

@@ -49,6 +49,14 @@ struct session
uint64_t create_time; uint64_t create_time;
uint64_t last_time; uint64_t last_time;
/******************************
* Session Current Packet
******************************/
// session current packet
struct packet *cur_pkt;
enum session_dir cur_dir;
/****************************** /******************************
* Session Ev Queue Zone * Session Ev Queue Zone
******************************/ ******************************/