diff options
Diffstat (limited to 'src/session/session.cpp')
| -rw-r--r-- | src/session/session.cpp | 42 |
1 files changed, 7 insertions, 35 deletions
diff --git a/src/session/session.cpp b/src/session/session.cpp index 8cdfcc6..ea3bf89 100644 --- a/src/session/session.cpp +++ b/src/session/session.cpp @@ -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)); |
