session add API support get/set closing reasion

This commit is contained in:
luwenpeng
2024-01-16 14:10:13 +08:00
parent 8f685bc018
commit 1d4736ac88
3 changed files with 51 additions and 6 deletions

View File

@@ -88,6 +88,17 @@ enum session_type session_get_type(const struct session *sess)
return sess->type;
}
// closing reasion
void session_set_closing_reasion(struct session *sess, enum closing_reasion reasion)
{
sess->closing_reasion = reasion;
}
enum closing_reasion session_get_closing_reasion(const struct session *sess)
{
return sess->closing_reasion;
}
// session metrics
void session_inc_c2s_metrics(struct session *sess, uint64_t packets, uint64_t bytes)
{
@@ -388,6 +399,27 @@ static void udp_ex_data_tostring(uint64_t ex_data, char *buffer, size_t buffer_l
}
}
const char *session_closing_reasion_tostring(enum closing_reasion reasion)
{
switch (reasion)
{
case CLOSING_BY_TIMEOUT:
return "CLOSING_BY_TIMEOUT";
case CLOSING_BY_EVICTED:
return "CLOSING_BY_EVICTED";
case CLOSING_BY_CLIENT_FIN:
return "CLOSING_BY_CLIENT_FIN";
case CLOSING_BY_CLIENT_RST:
return "CLOSING_BY_CLIENT_RST";
case CLOSING_BY_SERVER_FIN:
return "CLOSING_BY_SERVER_FIN";
case CLOSING_BY_SERVER_RST:
return "CLOSING_BY_SERVER_RST";
default:
return "unknown";
}
}
const char *session_state_tostring(enum session_state state)
{
switch (state)
@@ -445,6 +477,7 @@ void session_dump(struct session *sess)
printf("session tuple6 dir : %s\n", session_dir_tostring(session_get_tuple6_dir(sess)));
printf("session state : %s\n", session_state_tostring(session_get_state(sess)));
printf("session type : %s\n", session_type_tostring(session_get_type(sess)));
printf("session closing reasion : %s\n", session_closing_reasion_tostring(session_get_closing_reasion(sess)));
printf("session c2s packets : %" PRIu64 "\n", session_get_c2s_packets(sess));
printf("session c2s bytes : %" PRIu64 "\n", session_get_c2s_bytes(sess));
printf("session s2c packets : %" PRIu64 "\n", session_get_s2c_packets(sess));