Session manager add builtin ex data
This commit is contained in:
@@ -20,6 +20,10 @@ struct ex_manager
|
||||
static struct ex_manager g_ex_manager = {0};
|
||||
uint8_t tcp_builtin_ex = 0; // built-in ex_data index
|
||||
uint8_t udp_builtin_ex = 0; // built-in ex_data index
|
||||
uint8_t c2s_1st_md_ex = 0; // built-in ex_data index
|
||||
uint8_t s2c_1st_md_ex = 0; // built-in ex_data index
|
||||
uint8_t c2s_1st_pkt_ex = 0; // built-in ex_data index
|
||||
uint8_t s2c_1st_pkt_ex = 0; // built-in ex_data index
|
||||
|
||||
/******************************************************************************
|
||||
* ev queue
|
||||
@@ -164,35 +168,6 @@ uint64_t session_get_s2c_packets(const struct session *sess)
|
||||
return sess->s2c_packets;
|
||||
}
|
||||
|
||||
// session metadata
|
||||
void session_set_c2s_1st_md(struct session *sess, struct metadata *md)
|
||||
{
|
||||
memcpy(&sess->c2s_1st_md, md, sizeof(struct metadata));
|
||||
}
|
||||
|
||||
void session_set_s2c_1st_md(struct session *sess, struct metadata *md)
|
||||
{
|
||||
memcpy(&sess->s2c_1st_md, md, sizeof(struct metadata));
|
||||
}
|
||||
|
||||
const struct metadata *session_get0_c2s_1st_md(const struct session *sess)
|
||||
{
|
||||
if (sess->c2s_1st_md.len == 0)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
return &sess->c2s_1st_md;
|
||||
}
|
||||
|
||||
const struct metadata *session_get0_s2c_1st_md(const struct session *sess)
|
||||
{
|
||||
if (sess->s2c_1st_md.len == 0)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
return &sess->s2c_1st_md;
|
||||
}
|
||||
|
||||
// session timestamp
|
||||
void session_set_create_time(struct session *sess, uint64_t timestamp)
|
||||
{
|
||||
@@ -337,6 +312,7 @@ void session_free_ex_data(struct session *sess, uint8_t idx)
|
||||
}
|
||||
|
||||
struct ex_schema *schema = &g_ex_manager.schemas[idx];
|
||||
printf("free ex_data, idx: %d, key: %s, val: %p\n", idx, schema->key, sess->ex_data[idx]);
|
||||
if (schema->free_cb != NULL && sess->ex_data[idx] != NULL)
|
||||
{
|
||||
schema->free_cb(sess, idx, sess->ex_data[idx], schema->args);
|
||||
@@ -459,8 +435,8 @@ const char *session_event_tostring(enum session_event event)
|
||||
return "none";
|
||||
case SESSION_EVENT_OPENING:
|
||||
return "opening";
|
||||
case SESSION_EVENT_ACTIVE:
|
||||
return "active";
|
||||
case SESSION_EVENT_PACKET:
|
||||
return "packet";
|
||||
case SESSION_EVENT_CLOSING:
|
||||
return "closing";
|
||||
default:
|
||||
@@ -478,8 +454,6 @@ const char *session_state_tostring(enum session_state state)
|
||||
return "opening";
|
||||
case SESSION_STATE_ACTIVE:
|
||||
return "active";
|
||||
case SESSION_STATE_DISCARD:
|
||||
return "discard";
|
||||
case SESSION_STATE_CLOSING:
|
||||
return "closing";
|
||||
case SESSION_STATE_CLOSED:
|
||||
@@ -535,8 +509,6 @@ void session_dump(struct session *sess)
|
||||
printf("session c2s bytes : %" PRIu64 "\n", session_get_c2s_bytes(sess));
|
||||
printf("session s2c packets : %" PRIu64 "\n", session_get_s2c_packets(sess));
|
||||
printf("session s2c bytes : %" PRIu64 "\n", session_get_s2c_bytes(sess));
|
||||
printf("session c2s 1st metadata : %p\n", (void *)session_get0_c2s_1st_md(sess));
|
||||
printf("session s2c 1st metadata : %p\n", (void *)session_get0_s2c_1st_md(sess));
|
||||
printf("session create time : %" PRIu64 "\n", session_get_create_time(sess));
|
||||
printf("session last time : %" PRIu64 "\n", session_get_last_time(sess));
|
||||
printf("session current packet ptr : %p\n", (void *)session_get0_cur_pkt(sess));
|
||||
|
||||
Reference in New Issue
Block a user