Session manager add builtin ex data
This commit is contained in:
@@ -487,6 +487,66 @@ TEST(PACKET_UTILS, UDP_AND_TCP)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
TEST(PACKET_UTILS, PACKET_DUP)
|
||||||
|
{
|
||||||
|
struct packet handler;
|
||||||
|
packet_parse(&handler, (const char *)data5, sizeof(data5));
|
||||||
|
|
||||||
|
// IP
|
||||||
|
EXPECT_TRUE(paket_is_fragment(&handler) == false);
|
||||||
|
|
||||||
|
// TCP
|
||||||
|
EXPECT_TRUE(packet_has_tcp(&handler) == true);
|
||||||
|
EXPECT_TRUE(packet_get_tcp_sport(&handler) == 443);
|
||||||
|
EXPECT_TRUE(packet_get_tcp_dport(&handler) == 46582);
|
||||||
|
EXPECT_TRUE(packet_get_tcp_seq(&handler) == 2198097831);
|
||||||
|
EXPECT_TRUE(packet_get_tcp_ack(&handler) == 2264498872);
|
||||||
|
EXPECT_TRUE(packet_get_tcp_flags(&handler) == 0x10);
|
||||||
|
EXPECT_TRUE(packet_has_tcp_flag_urg(&handler) == false);
|
||||||
|
EXPECT_TRUE(packet_has_tcp_flag_ack(&handler) == true);
|
||||||
|
EXPECT_TRUE(packet_has_tcp_flag_psh(&handler) == false);
|
||||||
|
EXPECT_TRUE(packet_has_tcp_flag_rst(&handler) == false);
|
||||||
|
EXPECT_TRUE(packet_has_tcp_flag_syn(&handler) == false);
|
||||||
|
EXPECT_TRUE(packet_has_tcp_flag_fin(&handler) == false);
|
||||||
|
|
||||||
|
// UDP
|
||||||
|
EXPECT_TRUE(packet_has_udp(&handler) == true);
|
||||||
|
EXPECT_TRUE(packet_get_inner_udp_sport(&handler) == 2152);
|
||||||
|
EXPECT_TRUE(packet_get_inner_udp_dport(&handler) == 2152);
|
||||||
|
EXPECT_TRUE(packet_get_outer_udp_sport(&handler) == 2152);
|
||||||
|
EXPECT_TRUE(packet_get_outer_udp_dport(&handler) == 2152);
|
||||||
|
|
||||||
|
struct packet *dup = packet_dup(&handler);
|
||||||
|
|
||||||
|
// IP
|
||||||
|
EXPECT_TRUE(paket_is_fragment(&handler) == false);
|
||||||
|
|
||||||
|
// TCP
|
||||||
|
EXPECT_TRUE(packet_has_tcp(&handler) == true);
|
||||||
|
EXPECT_TRUE(packet_get_tcp_sport(&handler) == 443);
|
||||||
|
EXPECT_TRUE(packet_get_tcp_dport(&handler) == 46582);
|
||||||
|
EXPECT_TRUE(packet_get_tcp_seq(&handler) == 2198097831);
|
||||||
|
EXPECT_TRUE(packet_get_tcp_ack(&handler) == 2264498872);
|
||||||
|
EXPECT_TRUE(packet_get_tcp_flags(&handler) == 0x10);
|
||||||
|
EXPECT_TRUE(packet_has_tcp_flag_urg(&handler) == false);
|
||||||
|
EXPECT_TRUE(packet_has_tcp_flag_ack(&handler) == true);
|
||||||
|
EXPECT_TRUE(packet_has_tcp_flag_psh(&handler) == false);
|
||||||
|
EXPECT_TRUE(packet_has_tcp_flag_rst(&handler) == false);
|
||||||
|
EXPECT_TRUE(packet_has_tcp_flag_syn(&handler) == false);
|
||||||
|
EXPECT_TRUE(packet_has_tcp_flag_fin(&handler) == false);
|
||||||
|
|
||||||
|
// UDP
|
||||||
|
EXPECT_TRUE(packet_has_udp(&handler) == true);
|
||||||
|
EXPECT_TRUE(packet_get_inner_udp_sport(&handler) == 2152);
|
||||||
|
EXPECT_TRUE(packet_get_inner_udp_dport(&handler) == 2152);
|
||||||
|
EXPECT_TRUE(packet_get_outer_udp_sport(&handler) == 2152);
|
||||||
|
EXPECT_TRUE(packet_get_outer_udp_dport(&handler) == 2152);
|
||||||
|
|
||||||
|
packet_free(dup);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
::testing::InitGoogleTest(&argc, argv);
|
::testing::InitGoogleTest(&argc, argv);
|
||||||
|
|||||||
@@ -1101,6 +1101,7 @@ const char *packet_parse(struct packet *handler, const char *data, uint16_t len)
|
|||||||
handler->data_ptr = data;
|
handler->data_ptr = data;
|
||||||
handler->data_len = len;
|
handler->data_len = len;
|
||||||
handler->zone_id = 0;
|
handler->zone_id = 0;
|
||||||
|
handler->user_data = NULL;
|
||||||
|
|
||||||
// TESTED
|
// TESTED
|
||||||
return parse_ether(handler, data, len);
|
return parse_ether(handler, data, len);
|
||||||
|
|||||||
@@ -86,6 +86,8 @@ struct packet
|
|||||||
const char *data_ptr;
|
const char *data_ptr;
|
||||||
uint16_t data_len;
|
uint16_t data_len;
|
||||||
uint64_t zone_id;
|
uint64_t zone_id;
|
||||||
|
|
||||||
|
const void *user_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
// return innermost payload
|
// return innermost payload
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <netinet/ip.h>
|
#include <netinet/ip.h>
|
||||||
#include <netinet/ip6.h>
|
#include <netinet/ip6.h>
|
||||||
@@ -42,6 +44,94 @@ static bool ipv6_is_fragment(const struct ip6_hdr *ip6_hdr, uint16_t hdr_len)
|
|||||||
* Public API
|
* Public API
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
|
// metadata
|
||||||
|
struct metadata *metadata_dup(const struct metadata *metadata)
|
||||||
|
{
|
||||||
|
if (metadata == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct metadata *metadata_dup = (struct metadata *)calloc(1, sizeof(struct metadata));
|
||||||
|
if (metadata_dup == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(metadata_dup, metadata, sizeof(struct metadata));
|
||||||
|
|
||||||
|
return metadata_dup;
|
||||||
|
}
|
||||||
|
|
||||||
|
void metadata_free(struct metadata *metadata)
|
||||||
|
{
|
||||||
|
if (metadata)
|
||||||
|
{
|
||||||
|
free(metadata);
|
||||||
|
metadata = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void packet_set0_metadata(struct packet *pkt, const struct metadata *metadata)
|
||||||
|
{
|
||||||
|
pkt->user_data = (const void *)metadata;
|
||||||
|
}
|
||||||
|
|
||||||
|
const struct metadata *packet_get0_metadata(const struct packet *pkt)
|
||||||
|
{
|
||||||
|
return (const struct metadata *)pkt->user_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
// packet
|
||||||
|
struct packet *packet_dup(const struct packet *pkt)
|
||||||
|
{
|
||||||
|
if (pkt == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct packet *pkt_dup = (struct packet *)calloc(1, sizeof(struct packet));
|
||||||
|
if (pkt_dup == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(pkt_dup, pkt, sizeof(struct packet));
|
||||||
|
|
||||||
|
if (pkt->data_len)
|
||||||
|
{
|
||||||
|
pkt_dup->data_ptr = (const char *)calloc(1, pkt->data_len);
|
||||||
|
if (pkt_dup->data_ptr == NULL)
|
||||||
|
{
|
||||||
|
free(pkt_dup);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
memcpy((char *)pkt_dup->data_ptr, pkt->data_ptr, pkt->data_len);
|
||||||
|
|
||||||
|
for (int8_t i = 0; i < pkt->layers_used; i++)
|
||||||
|
{
|
||||||
|
pkt_dup->layers[i].hdr_ptr = pkt_dup->data_ptr + pkt->layers[i].hdr_offset;
|
||||||
|
pkt_dup->layers[i].pld_ptr = pkt_dup->data_ptr + pkt->layers[i].hdr_offset + pkt->layers[i].hdr_len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return pkt_dup;
|
||||||
|
}
|
||||||
|
|
||||||
|
void packet_free(struct packet *pkt)
|
||||||
|
{
|
||||||
|
if (pkt)
|
||||||
|
{
|
||||||
|
if (pkt->data_ptr)
|
||||||
|
{
|
||||||
|
free((char *)pkt->data_ptr);
|
||||||
|
pkt->data_ptr = NULL;
|
||||||
|
}
|
||||||
|
free(pkt);
|
||||||
|
pkt = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// packet
|
// packet
|
||||||
uint64_t packet_get_zone_id(const struct packet *pkt)
|
uint64_t packet_get_zone_id(const struct packet *pkt)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,7 +8,21 @@ extern "C"
|
|||||||
|
|
||||||
#include "packet.h"
|
#include "packet.h"
|
||||||
|
|
||||||
|
struct metadata
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
};
|
||||||
|
|
||||||
|
// metadata
|
||||||
|
struct metadata *metadata_dup(const struct metadata *metadata);
|
||||||
|
void metadata_free(struct metadata *metadata);
|
||||||
|
void packet_set0_metadata(struct packet *pkt, const struct metadata *metadata);
|
||||||
|
const struct metadata *packet_get0_metadata(const struct packet *pkt);
|
||||||
|
|
||||||
// packet
|
// packet
|
||||||
|
struct packet *packet_dup(const struct packet *pkt);
|
||||||
|
void packet_free(struct packet *pkt);
|
||||||
|
|
||||||
uint64_t packet_get_zone_id(const struct packet *pkt);
|
uint64_t packet_get_zone_id(const struct packet *pkt);
|
||||||
uint16_t packet_get_raw_len(const struct packet *pkt);
|
uint16_t packet_get_raw_len(const struct packet *pkt);
|
||||||
const char *packet_get0_raw_data(const struct packet *pkt);
|
const char *packet_get0_raw_data(const struct packet *pkt);
|
||||||
|
|||||||
@@ -1478,7 +1478,6 @@ const char *plugin_ctx = "hello world";
|
|||||||
|
|
||||||
void plugin_session_ex_free(struct session *sess, uint8_t idx, void *ex_ptr, void *arg)
|
void plugin_session_ex_free(struct session *sess, uint8_t idx, void *ex_ptr, void *arg)
|
||||||
{
|
{
|
||||||
printf("free ex data: %s\n", (char *)ex_ptr);
|
|
||||||
EXPECT_STREQ((char *)ex_ptr, "123");
|
EXPECT_STREQ((char *)ex_ptr, "123");
|
||||||
free(ex_ptr);
|
free(ex_ptr);
|
||||||
}
|
}
|
||||||
@@ -1551,8 +1550,6 @@ TEST(SESSION_MANAGER, INIT_TO_OPENING_BY_SYN)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||||
@@ -1628,8 +1625,6 @@ TEST(SESSION_MANAGER, INIT_TO_OPENING_BY_SYNACK)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 0);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 0);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||||
@@ -1709,8 +1704,6 @@ TEST(SESSION_MANAGER, INIT_TO_ACTIVE_BY_UDP_C2S)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||||
@@ -1786,8 +1779,6 @@ TEST(SESSION_MANAGER, INIT_TO_ACTIVE_BY_UDP_S2C)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 550);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 550);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 0);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 0);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||||
@@ -1874,8 +1865,6 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_C2S_PAYLOAD)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||||
@@ -1919,8 +1908,6 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_C2S_PAYLOAD)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -2012,8 +1999,6 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_S2C_PAYLOAD)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||||
@@ -2057,8 +2042,6 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_S2C_PAYLOAD)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 1354);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 1354);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -2149,8 +2132,6 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_C2S_PAYLOAD)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 0);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 0);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||||
@@ -2194,8 +2175,6 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_C2S_PAYLOAD)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -2286,8 +2265,6 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_S2C_PAYLOAD)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 0);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 0);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||||
@@ -2331,8 +2308,6 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYNACK_AND_S2C_PAYLOAD)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 1354);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 1354);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 0);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 0);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -2428,8 +2403,6 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_SYNACK_AND_ACK_AND_C2S_PAYLOA
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||||
@@ -2473,8 +2446,6 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_SYNACK_AND_ACK_AND_C2S_PAYLOA
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -2518,8 +2489,6 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_SYNACK_AND_ACK_AND_C2S_PAYLOA
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -2563,8 +2532,6 @@ TEST(SESSION_MANAGER, OPENING_TO_ACTIVE_BY_SYN_AND_SYNACK_AND_ACK_AND_C2S_PAYLOA
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -2756,8 +2723,6 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||||
@@ -2801,8 +2766,6 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -2846,8 +2809,6 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -2891,8 +2852,6 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -2936,8 +2895,6 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -2981,8 +2938,6 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66 + 1354);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66 + 1354);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -3026,8 +2981,6 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66 + 1354 + 385);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66 + 1354 + 385);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -3071,8 +3024,6 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66 + 1354 + 385);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66 + 1354 + 385);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1 + 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -3116,8 +3067,6 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66 + 1354 + 385);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66 + 1354 + 385);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1 + 1 + 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -3161,8 +3110,6 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66 + 1354 + 385 + 66);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66 + 1354 + 385 + 66);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1 + 1 + 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1 + 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -3206,8 +3153,6 @@ TEST(SESSION_MANAGER, TCP_FULL_STREAM)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66 + 1354 + 385 + 66);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 74 + 66 + 1354 + 385 + 66);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1 + 1 + 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1 + 1 + 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1 + 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1 + 1 + 1 + 1 + 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
@@ -3294,8 +3239,6 @@ TEST(SESSION_MANAGER, UDP_FULL_STREAM)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 0);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 0);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) == session_get_last_time(sess));
|
||||||
@@ -3339,8 +3282,6 @@ TEST(SESSION_MANAGER, UDP_FULL_STREAM)
|
|||||||
EXPECT_TRUE(session_get_s2c_bytes(sess) == 550);
|
EXPECT_TRUE(session_get_s2c_bytes(sess) == 550);
|
||||||
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
EXPECT_TRUE(session_get_c2s_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
EXPECT_TRUE(session_get_s2c_packets(sess) == 1);
|
||||||
EXPECT_TRUE(session_get0_c2s_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get0_s2c_1st_md(sess) == NULL);
|
|
||||||
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
EXPECT_TRUE(session_get_create_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
EXPECT_TRUE(session_get_last_time(sess) != 0);
|
||||||
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
EXPECT_TRUE(session_get_create_time(sess) < session_get_last_time(sess));
|
||||||
|
|||||||
@@ -20,6 +20,10 @@ struct ex_manager
|
|||||||
static struct ex_manager g_ex_manager = {0};
|
static struct ex_manager g_ex_manager = {0};
|
||||||
uint8_t tcp_builtin_ex = 0; // built-in ex_data index
|
uint8_t tcp_builtin_ex = 0; // built-in ex_data index
|
||||||
uint8_t udp_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
|
* ev queue
|
||||||
@@ -164,35 +168,6 @@ uint64_t session_get_s2c_packets(const struct session *sess)
|
|||||||
return sess->s2c_packets;
|
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
|
// session timestamp
|
||||||
void session_set_create_time(struct session *sess, uint64_t 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];
|
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)
|
if (schema->free_cb != NULL && sess->ex_data[idx] != NULL)
|
||||||
{
|
{
|
||||||
schema->free_cb(sess, idx, sess->ex_data[idx], schema->args);
|
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";
|
return "none";
|
||||||
case SESSION_EVENT_OPENING:
|
case SESSION_EVENT_OPENING:
|
||||||
return "opening";
|
return "opening";
|
||||||
case SESSION_EVENT_ACTIVE:
|
case SESSION_EVENT_PACKET:
|
||||||
return "active";
|
return "packet";
|
||||||
case SESSION_EVENT_CLOSING:
|
case SESSION_EVENT_CLOSING:
|
||||||
return "closing";
|
return "closing";
|
||||||
default:
|
default:
|
||||||
@@ -478,8 +454,6 @@ const char *session_state_tostring(enum session_state state)
|
|||||||
return "opening";
|
return "opening";
|
||||||
case SESSION_STATE_ACTIVE:
|
case SESSION_STATE_ACTIVE:
|
||||||
return "active";
|
return "active";
|
||||||
case SESSION_STATE_DISCARD:
|
|
||||||
return "discard";
|
|
||||||
case SESSION_STATE_CLOSING:
|
case SESSION_STATE_CLOSING:
|
||||||
return "closing";
|
return "closing";
|
||||||
case SESSION_STATE_CLOSED:
|
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 c2s bytes : %" PRIu64 "\n", session_get_c2s_bytes(sess));
|
||||||
printf("session s2c packets : %" PRIu64 "\n", session_get_s2c_packets(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 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 create time : %" PRIu64 "\n", session_get_create_time(sess));
|
||||||
printf("session last time : %" PRIu64 "\n", session_get_last_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));
|
printf("session current packet ptr : %p\n", (void *)session_get0_cur_pkt(sess));
|
||||||
|
|||||||
@@ -16,11 +16,16 @@ enum session_state
|
|||||||
SESSION_STATE_INIT = 0,
|
SESSION_STATE_INIT = 0,
|
||||||
SESSION_STATE_OPENING,
|
SESSION_STATE_OPENING,
|
||||||
SESSION_STATE_ACTIVE,
|
SESSION_STATE_ACTIVE,
|
||||||
SESSION_STATE_DISCARD,
|
|
||||||
SESSION_STATE_CLOSING,
|
SESSION_STATE_CLOSING,
|
||||||
SESSION_STATE_CLOSED,
|
SESSION_STATE_CLOSED,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum session_action
|
||||||
|
{
|
||||||
|
SESSION_ACTION_DISCARD,
|
||||||
|
SESSION_ACTION_FASTFORWARD,
|
||||||
|
};
|
||||||
|
|
||||||
enum session_type
|
enum session_type
|
||||||
{
|
{
|
||||||
SESSION_TYPE_NONE = 0,
|
SESSION_TYPE_NONE = 0,
|
||||||
@@ -33,7 +38,7 @@ enum session_event
|
|||||||
{
|
{
|
||||||
SESSION_EVENT_NONE = 0,
|
SESSION_EVENT_NONE = 0,
|
||||||
SESSION_EVENT_OPENING,
|
SESSION_EVENT_OPENING,
|
||||||
SESSION_EVENT_ACTIVE,
|
SESSION_EVENT_PACKET,
|
||||||
SESSION_EVENT_CLOSING,
|
SESSION_EVENT_CLOSING,
|
||||||
|
|
||||||
// Add new event before SESSION_EVENT_MAX
|
// Add new event before SESSION_EVENT_MAX
|
||||||
@@ -48,12 +53,6 @@ enum session_dir
|
|||||||
SESSION_DIR_S2C = 2,
|
SESSION_DIR_S2C = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct metadata
|
|
||||||
{
|
|
||||||
char data[64]; // TODO
|
|
||||||
int len;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct session;
|
struct session;
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@@ -88,12 +87,6 @@ uint64_t session_get_s2c_bytes(const struct session *sess);
|
|||||||
uint64_t session_get_c2s_packets(const struct session *sess);
|
uint64_t session_get_c2s_packets(const struct session *sess);
|
||||||
uint64_t session_get_s2c_packets(const struct session *sess);
|
uint64_t session_get_s2c_packets(const struct session *sess);
|
||||||
|
|
||||||
// session metadata
|
|
||||||
void session_set_c2s_1st_md(struct session *sess, struct metadata *md);
|
|
||||||
void session_set_s2c_1st_md(struct session *sess, struct metadata *md);
|
|
||||||
const struct metadata *session_get0_c2s_1st_md(const struct session *sess);
|
|
||||||
const struct metadata *session_get0_s2c_1st_md(const struct session *sess);
|
|
||||||
|
|
||||||
// session timestamp
|
// session timestamp
|
||||||
void session_set_create_time(struct session *sess, uint64_t timestamp);
|
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);
|
||||||
|
|||||||
@@ -46,12 +46,21 @@ static uint64_t alloc_session_id(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
static void metadata_ex_free_cb(struct session *sess, uint8_t idx, void *ex_ptr, void *arg)
|
||||||
struct metadata *packet_get0_metadata(const struct packet *pkt)
|
|
||||||
{
|
{
|
||||||
static struct metadata md = {0};
|
if (ex_ptr)
|
||||||
return &md;
|
{
|
||||||
};
|
metadata_free((struct metadata *)ex_ptr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void packet_ex_free_cb(struct session *sess, uint8_t idx, void *ex_ptr, void *arg)
|
||||||
|
{
|
||||||
|
if (ex_ptr)
|
||||||
|
{
|
||||||
|
packet_free((struct packet *)ex_ptr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* session manager counter
|
* session manager counter
|
||||||
@@ -269,21 +278,29 @@ static int tcp_need_active(uint64_t state)
|
|||||||
static void update_session_base(struct session *sess, const struct packet *pkt, enum session_dir curr_dir)
|
static void update_session_base(struct session *sess, const struct packet *pkt, enum session_dir curr_dir)
|
||||||
{
|
{
|
||||||
uint64_t len = packet_get_raw_len(pkt);
|
uint64_t len = packet_get_raw_len(pkt);
|
||||||
struct metadata *md = packet_get0_metadata(pkt);
|
const struct metadata *md = packet_get0_metadata(pkt);
|
||||||
if (curr_dir == SESSION_DIR_C2S)
|
if (curr_dir == SESSION_DIR_C2S)
|
||||||
{
|
{
|
||||||
session_inc_c2s_metrics(sess, 1, len);
|
session_inc_c2s_metrics(sess, 1, len);
|
||||||
if (session_get0_c2s_1st_md(sess) == NULL)
|
if (session_get0_ex_data(sess, c2s_1st_md_ex) == NULL)
|
||||||
{
|
{
|
||||||
session_set_c2s_1st_md(sess, md);
|
session_set_ex_data(sess, c2s_1st_md_ex, metadata_dup(md));
|
||||||
|
}
|
||||||
|
if (session_get0_ex_data(sess, c2s_1st_pkt_ex) == NULL)
|
||||||
|
{
|
||||||
|
session_set_ex_data(sess, c2s_1st_pkt_ex, packet_dup(pkt));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
session_inc_s2c_metrics(sess, 1, len);
|
session_inc_s2c_metrics(sess, 1, len);
|
||||||
if (session_get0_s2c_1st_md(sess) == NULL)
|
if (session_get0_ex_data(sess, s2c_1st_md_ex) == NULL)
|
||||||
{
|
{
|
||||||
session_set_s2c_1st_md(sess, md);
|
session_set_ex_data(sess, s2c_1st_md_ex, metadata_dup(md));
|
||||||
|
}
|
||||||
|
if (session_get0_ex_data(sess, s2c_1st_pkt_ex) == NULL)
|
||||||
|
{
|
||||||
|
session_set_ex_data(sess, s2c_1st_pkt_ex, packet_dup(pkt));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
session_set_last_time(sess, timestamp_get_msec());
|
session_set_last_time(sess, timestamp_get_msec());
|
||||||
@@ -441,7 +458,7 @@ static int handle_udp_new_session(struct session_manager *mgr, struct tuple6 *ke
|
|||||||
update_session_base(sess, pkt, curr_dir);
|
update_session_base(sess, pkt, curr_dir);
|
||||||
|
|
||||||
session_manager_trigger_session_event(mgr, sess, SESSION_EVENT_OPENING);
|
session_manager_trigger_session_event(mgr, sess, SESSION_EVENT_OPENING);
|
||||||
session_manager_trigger_session_event(mgr, sess, SESSION_EVENT_ACTIVE);
|
session_manager_trigger_session_event(mgr, sess, SESSION_EVENT_PACKET);
|
||||||
session_manager_update_session_timer(mgr, sess, packet_expire_callback, mgr->packet_timeout_ms);
|
session_manager_update_session_timer(mgr, sess, packet_expire_callback, mgr->packet_timeout_ms);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -467,7 +484,7 @@ static void handle_tcp_old_session(struct session_manager *mgr, struct tuple6 *k
|
|||||||
{
|
{
|
||||||
update_counter_on_active(mgr, sess);
|
update_counter_on_active(mgr, sess);
|
||||||
session_set_state(sess, SESSION_STATE_ACTIVE);
|
session_set_state(sess, SESSION_STATE_ACTIVE);
|
||||||
session_manager_trigger_session_event(mgr, sess, SESSION_EVENT_ACTIVE);
|
session_manager_trigger_session_event(mgr, sess, SESSION_EVENT_PACKET);
|
||||||
session_manager_update_session_timer(mgr, sess, packet_expire_callback, mgr->packet_timeout_ms);
|
session_manager_update_session_timer(mgr, sess, packet_expire_callback, mgr->packet_timeout_ms);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -481,7 +498,7 @@ static void handle_udp_old_session(struct session_manager *mgr, struct tuple6 *k
|
|||||||
|
|
||||||
update_counter_on_active(mgr, sess);
|
update_counter_on_active(mgr, sess);
|
||||||
session_set_state(sess, SESSION_STATE_ACTIVE);
|
session_set_state(sess, SESSION_STATE_ACTIVE);
|
||||||
session_manager_trigger_session_event(mgr, sess, SESSION_EVENT_ACTIVE);
|
session_manager_trigger_session_event(mgr, sess, SESSION_EVENT_PACKET);
|
||||||
session_manager_update_session_timer(mgr, sess, packet_expire_callback, mgr->packet_timeout_ms);
|
session_manager_update_session_timer(mgr, sess, packet_expire_callback, mgr->packet_timeout_ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -565,6 +582,10 @@ struct session_manager *session_manager_create(uint64_t max_session_num)
|
|||||||
|
|
||||||
tcp_builtin_ex = session_get_ex_new_index("tcp_builtin_ex", NULL, NULL);
|
tcp_builtin_ex = session_get_ex_new_index("tcp_builtin_ex", NULL, NULL);
|
||||||
udp_builtin_ex = session_get_ex_new_index("udp_builtin_ex", NULL, NULL);
|
udp_builtin_ex = session_get_ex_new_index("udp_builtin_ex", NULL, NULL);
|
||||||
|
c2s_1st_md_ex = session_get_ex_new_index("c2s_1st_md_ex", metadata_ex_free_cb, NULL);
|
||||||
|
s2c_1st_md_ex = session_get_ex_new_index("s2c_1st_md_ex", metadata_ex_free_cb, NULL);
|
||||||
|
c2s_1st_pkt_ex = session_get_ex_new_index("c2s_1st_pkt_ex", packet_ex_free_cb, NULL);
|
||||||
|
s2c_1st_pkt_ex = session_get_ex_new_index("s2c_1st_pkt_ex", packet_ex_free_cb, NULL);
|
||||||
|
|
||||||
return mgr;
|
return mgr;
|
||||||
|
|
||||||
@@ -616,14 +637,13 @@ struct session *session_manager_find_session(struct session_manager *mgr, const
|
|||||||
struct session *sess = session_table_find_session(mgr->sess_table, &key);
|
struct session *sess = session_table_find_session(mgr->sess_table, &key);
|
||||||
if (sess == NULL)
|
if (sess == NULL)
|
||||||
{
|
{
|
||||||
// if session pool is full, discard oldest session
|
|
||||||
if (session_pool_get_count(mgr->sess_pool) == 1)
|
if (session_pool_get_count(mgr->sess_pool) == 1)
|
||||||
{
|
{
|
||||||
struct session *unused_sess = session_table_find_least_recently_unused_session(mgr->sess_table);
|
struct session *unused_sess = session_table_find_least_recently_unused_session(mgr->sess_table);
|
||||||
assert(unused_sess);
|
assert(unused_sess);
|
||||||
|
|
||||||
update_counter_on_closing(mgr, unused_sess);
|
update_counter_on_closing(mgr, unused_sess);
|
||||||
session_set_state(unused_sess, SESSION_STATE_DISCARD);
|
session_set_state(unused_sess, SESSION_STATE_CLOSING);
|
||||||
session_manager_trigger_session_event(mgr, unused_sess, SESSION_EVENT_CLOSING);
|
session_manager_trigger_session_event(mgr, unused_sess, SESSION_EVENT_CLOSING);
|
||||||
session_manager_update_session_timer(mgr, unused_sess, closing_expire_callback, mgr->closing_timeout_ms);
|
session_manager_update_session_timer(mgr, unused_sess, closing_expire_callback, mgr->closing_timeout_ms);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,10 +63,6 @@ struct session
|
|||||||
uint64_t c2s_packets;
|
uint64_t c2s_packets;
|
||||||
uint64_t s2c_packets;
|
uint64_t s2c_packets;
|
||||||
|
|
||||||
// session metadata
|
|
||||||
struct metadata c2s_1st_md;
|
|
||||||
struct metadata s2c_1st_md;
|
|
||||||
|
|
||||||
// session timestamp
|
// session timestamp
|
||||||
uint64_t create_time;
|
uint64_t create_time;
|
||||||
uint64_t last_time;
|
uint64_t last_time;
|
||||||
@@ -129,10 +125,12 @@ struct session
|
|||||||
struct session *next_ready_ptr;
|
struct session *next_ready_ptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
// tcp_builtin_ex = session_get_ex_new_index("tcp_builtin_ex", NULL, NULL);
|
|
||||||
// udp_builtin_ex = session_get_ex_new_index("udp_builtin_ex", NULL, NULL);
|
|
||||||
extern uint8_t tcp_builtin_ex;
|
extern uint8_t tcp_builtin_ex;
|
||||||
extern uint8_t udp_builtin_ex;
|
extern uint8_t udp_builtin_ex;
|
||||||
|
extern uint8_t c2s_1st_md_ex;
|
||||||
|
extern uint8_t s2c_1st_md_ex;
|
||||||
|
extern uint8_t c2s_1st_pkt_ex;
|
||||||
|
extern uint8_t s2c_1st_pkt_ex;
|
||||||
|
|
||||||
#ifdef __cpluscplus
|
#ifdef __cpluscplus
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user