Update the format of tuple to string output

This commit is contained in:
luwenpeng
2024-05-20 15:42:58 +08:00
parent 0e33a1b647
commit be9a68935b
17 changed files with 174 additions and 166 deletions

View File

@@ -147,7 +147,7 @@ uint64_t session_get_id(const struct session *sess);
uint64_t session_get_timestamp(const struct session *sess, enum session_timestamp type); uint64_t session_get_timestamp(const struct session *sess, enum session_timestamp type);
uint64_t session_get_stat(const struct session *sess, enum flow_direction dir, enum session_stat stat); uint64_t session_get_stat(const struct session *sess, enum flow_direction dir, enum session_stat stat);
const char *session_get0_readable_addr(struct session *sess); const char *session_get0_readable_addr(const struct session *sess);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -80,8 +80,6 @@ void tuple6_reverse(const struct tuple6 *in, struct tuple6 *out);
void tuple2_to_str(const struct tuple2 *tuple, char *buf, uint32_t size); void tuple2_to_str(const struct tuple2 *tuple, char *buf, uint32_t size);
void tuple4_to_str(const struct tuple4 *tuple, char *buf, uint32_t size); void tuple4_to_str(const struct tuple4 *tuple, char *buf, uint32_t size);
void tuple5_to_str(const struct tuple5 *tuple, char *buf, uint32_t size); void tuple5_to_str(const struct tuple5 *tuple, char *buf, uint32_t size);
// output format: "src_addr:src_port -> dst_addr:dst_port, proto: ip_proto, domain: domain"
// output max len: 46 + 1 + 5 + 4 + 46 + 1 + 5 + 9 + 1 + 10 + 20 = 107
void tuple6_to_str(const struct tuple6 *tuple, char *buf, uint32_t size); void tuple6_to_str(const struct tuple6 *tuple, char *buf, uint32_t size);
#ifdef __cplusplus #ifdef __cplusplus

View File

@@ -183,10 +183,10 @@ TEST(PACKET, ETH_VLAN_VLAN_IP4_IP4_UDP)
EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0); EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "69.67.35.146 -> 41.202.46.110"); EXPECT_STREQ(buffer, "69.67.35.146-41.202.46.110");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.10.100.25 -> 10.10.101.2"); EXPECT_STREQ(buffer, "10.10.100.25-10.10.101.2");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple4 * packet_get_outermost/innermost_tuple4
@@ -198,10 +198,10 @@ TEST(PACKET, ETH_VLAN_VLAN_IP4_IP4_UDP)
EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0); EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.10.100.25:62367 -> 10.10.101.2:17000"); EXPECT_STREQ(buffer, "10.10.100.25:62367-10.10.101.2:17000");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.10.100.25:62367 -> 10.10.101.2:17000"); EXPECT_STREQ(buffer, "10.10.100.25:62367-10.10.101.2:17000");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple6 * packet_get_outermost/innermost_tuple6
@@ -213,10 +213,10 @@ TEST(PACKET, ETH_VLAN_VLAN_IP4_IP4_UDP)
EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0); EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.10.100.25:62367 -> 10.10.101.2:17000, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "10.10.100.25:62367-10.10.101.2:17000-17-0");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.10.100.25:62367 -> 10.10.101.2:17000, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "10.10.100.25:62367-10.10.101.2:17000-17-0");
} }
#endif #endif
@@ -410,10 +410,10 @@ TEST(PACKET, ETH_IP6_IP4_TCP_SSH)
EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0); EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2001::192:168:40:134 -> 2001::192:168:40:133"); EXPECT_STREQ(buffer, "2001::192:168:40:134-2001::192:168:40:133");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "1.1.1.1 -> 2.2.2.2"); EXPECT_STREQ(buffer, "1.1.1.1-2.2.2.2");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple4 * packet_get_outermost/innermost_tuple4
@@ -425,9 +425,9 @@ TEST(PACKET, ETH_IP6_IP4_TCP_SSH)
EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0); EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "1.1.1.1:57639 -> 2.2.2.2:22"); EXPECT_STREQ(buffer, "1.1.1.1:57639-2.2.2.2:22");
tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "1.1.1.1:57639 -> 2.2.2.2:22"); EXPECT_STREQ(buffer, "1.1.1.1:57639-2.2.2.2:22");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple6 * packet_get_outermost/innermost_tuple6
@@ -439,10 +439,10 @@ TEST(PACKET, ETH_IP6_IP4_TCP_SSH)
EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0); EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "1.1.1.1:57639 -> 2.2.2.2:22, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "1.1.1.1:57639-2.2.2.2:22-6-0");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "1.1.1.1:57639 -> 2.2.2.2:22, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "1.1.1.1:57639-2.2.2.2:22-6-0");
} }
#endif #endif
@@ -692,10 +692,10 @@ TEST(PACKET, ETH_VLAN_IP6_IP4_GRE_PPP_IP4_UDP_DNS)
EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0); EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2607:fcd0:100:2300::b108:2a6b -> 2402:f000:1:8e01::5555"); EXPECT_STREQ(buffer, "2607:fcd0:100:2300::b108:2a6b-2402:f000:1:8e01::5555");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "8.8.8.8 -> 172.16.44.3"); EXPECT_STREQ(buffer, "8.8.8.8-172.16.44.3");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple4 * packet_get_outermost/innermost_tuple4
@@ -707,10 +707,10 @@ TEST(PACKET, ETH_VLAN_IP6_IP4_GRE_PPP_IP4_UDP_DNS)
EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0); EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "8.8.8.8:53 -> 172.16.44.3:9879"); EXPECT_STREQ(buffer, "8.8.8.8:53-172.16.44.3:9879");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "8.8.8.8:53 -> 172.16.44.3:9879"); EXPECT_STREQ(buffer, "8.8.8.8:53-172.16.44.3:9879");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple6 * packet_get_outermost/innermost_tuple6
@@ -722,10 +722,10 @@ TEST(PACKET, ETH_VLAN_IP6_IP4_GRE_PPP_IP4_UDP_DNS)
EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0); EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "8.8.8.8:53 -> 172.16.44.3:9879, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "8.8.8.8:53-172.16.44.3:9879-17-0");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "8.8.8.8:53 -> 172.16.44.3:9879, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "8.8.8.8:53-172.16.44.3:9879-17-0");
} }
#endif #endif
@@ -891,10 +891,10 @@ TEST(PACKET, ETH_IP4_IP6_TCP)
EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0); EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "210.77.88.163 -> 59.66.4.50"); EXPECT_STREQ(buffer, "210.77.88.163-59.66.4.50");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2001:da8:200:900e:200:5efe:d24d:58a3 -> 2600:140e:6::1702:1058"); EXPECT_STREQ(buffer, "2001:da8:200:900e:200:5efe:d24d:58a3-2600:140e:6::1702:1058");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple4 * packet_get_outermost/innermost_tuple4
@@ -906,10 +906,10 @@ TEST(PACKET, ETH_IP4_IP6_TCP)
EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0); EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2001:da8:200:900e:200:5efe:d24d:58a3:52556 -> 2600:140e:6::1702:1058:80"); EXPECT_STREQ(buffer, "2001:da8:200:900e:200:5efe:d24d:58a3:52556-2600:140e:6::1702:1058:80");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2001:da8:200:900e:200:5efe:d24d:58a3:52556 -> 2600:140e:6::1702:1058:80"); EXPECT_STREQ(buffer, "2001:da8:200:900e:200:5efe:d24d:58a3:52556-2600:140e:6::1702:1058:80");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple6 * packet_get_outermost/innermost_tuple6
@@ -921,10 +921,10 @@ TEST(PACKET, ETH_IP4_IP6_TCP)
EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0); EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2001:da8:200:900e:200:5efe:d24d:58a3:52556 -> 2600:140e:6::1702:1058:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "2001:da8:200:900e:200:5efe:d24d:58a3:52556-2600:140e:6::1702:1058:80-6-0");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2001:da8:200:900e:200:5efe:d24d:58a3:52556 -> 2600:140e:6::1702:1058:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "2001:da8:200:900e:200:5efe:d24d:58a3:52556-2600:140e:6::1702:1058:80-6-0");
} }
#endif #endif
@@ -1070,10 +1070,10 @@ TEST(PACKET, ETH_IP6_IP6_UDP)
EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0); EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2001:4f8:4:7:2e0:81ff:fe52:ffff -> 2001:4f8:4:7:2e0:81ff:fe52:9a6b"); EXPECT_STREQ(buffer, "2001:4f8:4:7:2e0:81ff:fe52:ffff-2001:4f8:4:7:2e0:81ff:fe52:9a6b");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "dead::beef -> cafe::babe"); EXPECT_STREQ(buffer, "dead::beef-cafe::babe");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple4 * packet_get_outermost/innermost_tuple4
@@ -1085,10 +1085,10 @@ TEST(PACKET, ETH_IP6_IP6_UDP)
EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0); EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "dead::beef:30000 -> cafe::babe:13000"); EXPECT_STREQ(buffer, "dead::beef:30000-cafe::babe:13000");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "dead::beef:30000 -> cafe::babe:13000"); EXPECT_STREQ(buffer, "dead::beef:30000-cafe::babe:13000");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple6 * packet_get_outermost/innermost_tuple6
@@ -1100,10 +1100,10 @@ TEST(PACKET, ETH_IP6_IP6_UDP)
EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0); EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "dead::beef:30000 -> cafe::babe:13000, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "dead::beef:30000-cafe::babe:13000-17-0");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "dead::beef:30000 -> cafe::babe:13000, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "dead::beef:30000-cafe::babe:13000-17-0");
} }
#endif #endif
@@ -1268,10 +1268,10 @@ TEST(PACKET, ETH_MPLS_IP4_TCP)
EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0); EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "119.40.37.65 -> 123.125.29.250"); EXPECT_STREQ(buffer, "119.40.37.65-123.125.29.250");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "119.40.37.65 -> 123.125.29.250"); EXPECT_STREQ(buffer, "119.40.37.65-123.125.29.250");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple4 * packet_get_outermost/innermost_tuple4
@@ -1283,10 +1283,10 @@ TEST(PACKET, ETH_MPLS_IP4_TCP)
EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0); EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "119.40.37.65:61853 -> 123.125.29.250:80"); EXPECT_STREQ(buffer, "119.40.37.65:61853-123.125.29.250:80");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "119.40.37.65:61853 -> 123.125.29.250:80"); EXPECT_STREQ(buffer, "119.40.37.65:61853-123.125.29.250:80");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple6 * packet_get_outermost/innermost_tuple6
@@ -1298,10 +1298,10 @@ TEST(PACKET, ETH_MPLS_IP4_TCP)
EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0); EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "119.40.37.65:61853 -> 123.125.29.250:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "119.40.37.65:61853-123.125.29.250:80-6-0");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "119.40.37.65:61853 -> 123.125.29.250:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "119.40.37.65:61853-123.125.29.250:80-6-0");
} }
#endif #endif
@@ -1479,10 +1479,10 @@ TEST(PACKET, ETH_MPLS_MPLS_IP4_TCP)
EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0); EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.31.0.1 -> 10.34.0.1"); EXPECT_STREQ(buffer, "10.31.0.1-10.34.0.1");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.31.0.1 -> 10.34.0.1"); EXPECT_STREQ(buffer, "10.31.0.1-10.34.0.1");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple4 * packet_get_outermost/innermost_tuple4
@@ -1494,10 +1494,10 @@ TEST(PACKET, ETH_MPLS_MPLS_IP4_TCP)
EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0); EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.31.0.1:11001 -> 10.34.0.1:23"); EXPECT_STREQ(buffer, "10.31.0.1:11001-10.34.0.1:23");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.31.0.1:11001 -> 10.34.0.1:23"); EXPECT_STREQ(buffer, "10.31.0.1:11001-10.34.0.1:23");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple6 * packet_get_outermost/innermost_tuple6
@@ -1509,10 +1509,10 @@ TEST(PACKET, ETH_MPLS_MPLS_IP4_TCP)
EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0); EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.31.0.1:11001 -> 10.34.0.1:23, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "10.31.0.1:11001-10.34.0.1:23-6-0");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.31.0.1:11001 -> 10.34.0.1:23, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "10.31.0.1:11001-10.34.0.1:23-6-0");
} }
#endif #endif
@@ -1702,9 +1702,9 @@ TEST(PACKET, ETH_VLAN_PPPOE_IP4_TCP)
EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0); EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "100.65.55.0 -> 91.185.14.33"); EXPECT_STREQ(buffer, "100.65.55.0-91.185.14.33");
tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "100.65.55.0 -> 91.185.14.33"); EXPECT_STREQ(buffer, "100.65.55.0-91.185.14.33");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple4 * packet_get_outermost/innermost_tuple4
@@ -1716,10 +1716,10 @@ TEST(PACKET, ETH_VLAN_PPPOE_IP4_TCP)
EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0); EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "100.65.55.0:34532 -> 91.185.14.33:443"); EXPECT_STREQ(buffer, "100.65.55.0:34532-91.185.14.33:443");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "100.65.55.0:34532 -> 91.185.14.33:443"); EXPECT_STREQ(buffer, "100.65.55.0:34532-91.185.14.33:443");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple6 * packet_get_outermost/innermost_tuple6
@@ -1731,10 +1731,10 @@ TEST(PACKET, ETH_VLAN_PPPOE_IP4_TCP)
EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0); EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "100.65.55.0:34532 -> 91.185.14.33:443, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "100.65.55.0:34532-91.185.14.33:443-6-0");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "100.65.55.0:34532 -> 91.185.14.33:443, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "100.65.55.0:34532-91.185.14.33:443-6-0");
} }
#endif #endif
@@ -1981,10 +1981,10 @@ TEST(PACKET, ETH_IP6_UDP_GTP_IP6_TCP_TLS)
EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0); EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2409:8034:4040:5300::105 -> 2409:8034:4025::60:61"); EXPECT_STREQ(buffer, "2409:8034:4040:5300::105-2409:8034:4025::60:61");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2409:8c34:4400:700:0:4:0:3 -> 2409:8934:5082:2100:ecad:e0e4:530a:c269"); EXPECT_STREQ(buffer, "2409:8c34:4400:700:0:4:0:3-2409:8934:5082:2100:ecad:e0e4:530a:c269");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple4 * packet_get_outermost/innermost_tuple4
@@ -1996,10 +1996,10 @@ TEST(PACKET, ETH_IP6_UDP_GTP_IP6_TCP_TLS)
EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0); EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2409:8034:4040:5300::105:2152 -> 2409:8034:4025::60:61:2152"); EXPECT_STREQ(buffer, "2409:8034:4040:5300::105:2152-2409:8034:4025::60:61:2152");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2409:8c34:4400:700:0:4:0:3:443 -> 2409:8934:5082:2100:ecad:e0e4:530a:c269:46582"); EXPECT_STREQ(buffer, "2409:8c34:4400:700:0:4:0:3:443-2409:8934:5082:2100:ecad:e0e4:530a:c269:46582");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple6 * packet_get_outermost/innermost_tuple6
@@ -2011,10 +2011,10 @@ TEST(PACKET, ETH_IP6_UDP_GTP_IP6_TCP_TLS)
EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0); EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2409:8034:4040:5300::105:2152 -> 2409:8034:4025::60:61:2152, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "2409:8034:4040:5300::105:2152-2409:8034:4025::60:61:2152-17-0");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2409:8c34:4400:700:0:4:0:3:443 -> 2409:8934:5082:2100:ecad:e0e4:530a:c269:46582, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "2409:8c34:4400:700:0:4:0:3:443-2409:8934:5082:2100:ecad:e0e4:530a:c269:46582-6-0");
} }
#endif #endif
@@ -2274,10 +2274,10 @@ TEST(PACKET, ETH_IP6_UDP_GTP_IP4_TCP_TLS)
EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0); EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2409:8034:4025::50:a31 -> 2409:8034:4040:5301::204"); EXPECT_STREQ(buffer, "2409:8034:4025::50:a31-2409:8034:4040:5301::204");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.49.115.138 -> 121.196.250.66"); EXPECT_STREQ(buffer, "10.49.115.138-121.196.250.66");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple4 * packet_get_outermost/innermost_tuple4
@@ -2289,10 +2289,10 @@ TEST(PACKET, ETH_IP6_UDP_GTP_IP4_TCP_TLS)
EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0); EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2409:8034:4025::50:a31:2152 -> 2409:8034:4040:5301::204:2152"); EXPECT_STREQ(buffer, "2409:8034:4025::50:a31:2152-2409:8034:4040:5301::204:2152");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.49.115.138:50081 -> 121.196.250.66:443"); EXPECT_STREQ(buffer, "10.49.115.138:50081-121.196.250.66:443");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple6 * packet_get_outermost/innermost_tuple6
@@ -2304,10 +2304,10 @@ TEST(PACKET, ETH_IP6_UDP_GTP_IP4_TCP_TLS)
EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0); EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2409:8034:4025::50:a31:2152 -> 2409:8034:4040:5301::204:2152, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "2409:8034:4025::50:a31:2152-2409:8034:4040:5301::204:2152-17-0");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.49.115.138:50081 -> 121.196.250.66:443, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "10.49.115.138:50081-121.196.250.66:443-6-0");
} }
#endif #endif
@@ -2506,10 +2506,10 @@ TEST(PACKET, ETH_IP4_UDP_VXLAN_ETH_IP4_UDP_DNS)
EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0); EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.1.1.1 -> 192.168.1.10"); EXPECT_STREQ(buffer, "10.1.1.1-192.168.1.10");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.11.193 -> 114.114.114.114"); EXPECT_STREQ(buffer, "192.168.11.193-114.114.114.114");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple4 * packet_get_outermost/innermost_tuple4
@@ -2521,10 +2521,10 @@ TEST(PACKET, ETH_IP4_UDP_VXLAN_ETH_IP4_UDP_DNS)
EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0); EXPECT_TRUE(packet_get_innermost_tuple4(&handler, &inner_tuple4) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&outer_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.1.1.1:50709 -> 192.168.1.10:4789"); EXPECT_STREQ(buffer, "10.1.1.1:50709-192.168.1.10:4789");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer)); tuple4_to_str(&inner_tuple4, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.11.193:65290 -> 114.114.114.114:53"); EXPECT_STREQ(buffer, "192.168.11.193:65290-114.114.114.114:53");
/****************************************************** /******************************************************
* packet_get_outermost/innermost_tuple6 * packet_get_outermost/innermost_tuple6
@@ -2536,10 +2536,10 @@ TEST(PACKET, ETH_IP4_UDP_VXLAN_ETH_IP4_UDP_DNS)
EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0); EXPECT_TRUE(packet_get_innermost_tuple6(&handler, &inner_tuple6) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&outer_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "10.1.1.1:50709 -> 192.168.1.10:4789, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "10.1.1.1:50709-192.168.1.10:4789-17-0");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer)); tuple6_to_str(&inner_tuple6, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.11.193:65290 -> 114.114.114.114:53, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "192.168.11.193:65290-114.114.114.114:53-17-0");
} }
#endif #endif
@@ -2815,10 +2815,10 @@ TEST(PACKET, ETH_IP4_ICMP)
EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0); EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.40.138 -> 192.168.40.134"); EXPECT_STREQ(buffer, "192.168.40.138-192.168.40.134");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.40.138 -> 192.168.40.134"); EXPECT_STREQ(buffer, "192.168.40.138-192.168.40.134");
} }
#endif #endif
@@ -2947,10 +2947,10 @@ TEST(PACKET, ETH_IP6_ICMP6)
EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0); EXPECT_TRUE(packet_get_innermost_tuple2(&handler, &inner_tuple2) == 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&outer_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2001:db8:0:12::1 -> 2001:db8:0:12::2"); EXPECT_STREQ(buffer, "2001:db8:0:12::1-2001:db8:0:12::2");
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer)); tuple2_to_str(&inner_tuple2, buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2001:db8:0:12::1 -> 2001:db8:0:12::2"); EXPECT_STREQ(buffer, "2001:db8:0:12::1-2001:db8:0:12::2");
} }
#endif #endif

View File

@@ -66,11 +66,6 @@ const char *session_get0_readable_addr(const struct session *sess)
return sess->tuple_str; return sess->tuple_str;
} }
const char *session_get0_readable_addr(struct session *sess)
{
return sess->tuple_str;
}
void session_set_direction(struct session *sess, enum session_direction dir) void session_set_direction(struct session *sess, enum session_direction dir)
{ {
sess->sess_dir = dir; sess->sess_dir = dir;

View File

@@ -17,9 +17,9 @@ extern "C"
#define EX_DATA_MAX_COUNT 4 #define EX_DATA_MAX_COUNT 4
// tuple6 str format: "src_addr:src_port -> dst_addr:dst_port, proto: ip_proto, domain: domain" // output format: "${src_addr}:${src_port}-${dst_addr}:${dst_port}-${ip_proto}-${domain}"
// tuple6 max len: 46 + 1 + 5 + 4 + 46 + 1 + 5 + 9 + 1 + 10 + 20 = 107 // output max len: (46 + 1 + 5) + 1 + (46 + 1 + 5) + 1 + 1 + 1 + 20 = 129
#define TUPLE6_STR_SIZE 108 #define TUPLE6_STR_SIZE 130
struct tcp_half struct tcp_half
{ {

View File

@@ -320,7 +320,7 @@ TEST(CASE, TCP_FAST_OPEN)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "2400:ac40:620:a4d8:484f:d2b0:d539:bd4c:51682 -> 2001:4860:4860::8844:853, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "2400:ac40:620:a4d8:484f:d2b0:d539:bd4c:51682-2001:4860:4860::8844:853-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);

View File

@@ -118,7 +118,7 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_FIN_FIN)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -205,7 +205,7 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_C2S_RST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -292,7 +292,7 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_S2C_RST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -420,7 +420,7 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_C2S_HALF_CLOSED_TIMEOUT)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -500,7 +500,7 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_S2C_HALF_CLOSED_TIMEOUT)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);

View File

@@ -77,7 +77,7 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -155,7 +155,7 @@ TEST(TCP_INIT_TO_OPENING, BY_SYNACK)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "93.184.216.34:80 -> 192.168.38.105:60111, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "93.184.216.34:80-192.168.38.105:60111-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_S2C); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_S2C);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -244,7 +244,7 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_SYNACK)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -344,7 +344,7 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_SYNACK_ACK)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -440,7 +440,7 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_RETRANSMISSION)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -537,7 +537,7 @@ TEST(TCP_INIT_TO_OPENING, BY_SYNACK_RETRANSMISSION)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "93.184.216.34:80 -> 192.168.38.105:60111, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "93.184.216.34:80-192.168.38.105:60111-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_S2C); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_S2C);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -626,7 +626,7 @@ TEST(TCP_INIT_TO_OPENING, BY_C2S_ASMMETRIC)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -715,7 +715,7 @@ TEST(TCP_INIT_TO_OPENING, BY_S2C_ASMMETRIC)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "93.184.216.34:80 -> 192.168.38.105:60111, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "93.184.216.34:80-192.168.38.105:60111-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_S2C); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_S2C);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);

View File

@@ -73,7 +73,7 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -104,7 +104,7 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -135,7 +135,7 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -166,7 +166,7 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -197,7 +197,7 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -228,7 +228,7 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -259,7 +259,7 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -290,7 +290,7 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -321,7 +321,7 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -352,7 +352,7 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -383,7 +383,7 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
memset(buffer, 0, sizeof(buffer)); memset(buffer, 0, sizeof(buffer));
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);

View File

@@ -87,7 +87,7 @@ TEST(TCP_OPENING_TO_ACTIVE, BY_SYN_C2S_DATA)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -176,7 +176,7 @@ TEST(TCP_OPENING_TO_ACTIVE, BY_SYNACK_S2C_DATA)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "93.184.216.34:80 -> 192.168.38.105:60111, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "93.184.216.34:80-192.168.38.105:60111-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_S2C); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_S2C);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);

View File

@@ -99,7 +99,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_FIN_FIN)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -194,7 +194,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_RST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -289,7 +289,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_RST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -434,7 +434,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_HANDSHAKE_TIMEOUT)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -534,7 +534,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_DATA_TIMEOUT)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -623,7 +623,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_HALF_FIN)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
@@ -711,7 +711,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_HALF_FIN)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:60111-93.184.216.34:80-6-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_CLOSING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);

View File

@@ -72,7 +72,7 @@ TEST(UDP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING, TEST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:61099 -> 121.14.154.93:53, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:61099-121.14.154.93:53-17-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_UDP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_UDP);
@@ -102,7 +102,7 @@ TEST(UDP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING, TEST)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:61099 -> 121.14.154.93:53, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:61099-121.14.154.93:53-17-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_ACTIVE);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_UDP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_UDP);

View File

@@ -77,7 +77,7 @@ TEST(UDP_INIT_TO_OPENING_TO_CLOSING, BY_C2S)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:61099 -> 121.14.154.93:53, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "192.168.38.105:61099-121.14.154.93:53-17-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_C2S);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_UDP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_UDP);
@@ -156,7 +156,7 @@ TEST(UDP_INIT_TO_OPENING_TO_CLOSING, BY_S2C)
EXPECT_TRUE(session_get_id(sess) != 0); EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer)); tuple6_to_str(session_get_tuple6(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "121.14.154.93:53 -> 192.168.38.105:61099, proto: 17, domain: 0"); EXPECT_STREQ(buffer, "121.14.154.93:53-192.168.38.105:61099-17-0");
EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_S2C); EXPECT_TRUE(session_get_tuple6_direction(sess) == FLOW_DIRECTION_S2C);
EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING); EXPECT_TRUE(session_get_current_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_UDP); EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_UDP);

View File

@@ -192,14 +192,14 @@ static inline void calc_tcp_seq_ack(const struct session *sess, enum flow_direct
if (inject_dir == curr_dir) if (inject_dir == curr_dir)
{ {
*seq = uint32_add(tcp_curr_half->seq, tcp_curr_half->inject_inc_seq_offset); *seq = uint32_add(tcp_curr_half->seq, tcp_curr_half->inject_inc_seq_offset);
*ack = uint32_add(tcp_curr_half->ack, tcp_curr_half->inject_inc_ack_offset); *ack = tcp_curr_half->ack;
tcp_curr_half->inject_inc_seq_offset += len; tcp_curr_half->inject_inc_seq_offset += len;
} }
else else
{ {
*seq = uint32_add(tcp_curr_half->ack, tcp_curr_half->inject_inc_ack_offset); *seq = uint32_add(tcp_curr_half->ack, tcp_curr_half->inject_inc_ack_offset);
*ack = uint32_add(tcp_curr_half->seq, tcp_curr_half->inject_inc_seq_offset + tcp_curr_half->len + (tcp_curr_half->flags & TH_SYN ? 1 : 0)); *ack = uint32_add(tcp_curr_half->seq, tcp_curr_half->len + (tcp_curr_half->flags & TH_SYN ? 1 : 0));
tcp_curr_half->inject_inc_ack_offset += len; tcp_curr_half->inject_inc_ack_offset += len;
} }
@@ -392,8 +392,9 @@ int inject_tcp_packet(const struct session *sess, enum flow_direction inject_dir
if (session_get_type(sess) != SESSION_TYPE_TCP) if (session_get_type(sess) != SESSION_TYPE_TCP)
{ {
session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1); session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1);
INJECT_PACKET_LOG_ERROR("session %ld is not a TCP session, cannot inject TCP packet (" TCP_FLAGS_LOG_FORMAT ", payload len:%d)", INJECT_PACKET_LOG_ERROR("session %ld %s is not a TCP session, cannot inject TCP packet (" TCP_FLAGS_LOG_FORMAT ", payload len:%d)",
session_get_id(sess), TCP_FLAGS_LOG_VALUE(tcp_flags), len); session_get_id(sess), session_get0_readable_addr(sess),
TCP_FLAGS_LOG_VALUE(tcp_flags), len);
return 0; return 0;
} }
@@ -401,8 +402,9 @@ int inject_tcp_packet(const struct session *sess, enum flow_direction inject_dir
if (pkt == NULL) if (pkt == NULL)
{ {
session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1); session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1);
INJECT_PACKET_LOG_ERROR("session %ld has no %s first packet, cannot inject TCP packet (" TCP_FLAGS_LOG_FORMAT ", payload len:%d)", INJECT_PACKET_LOG_ERROR("session %ld %s has no %s first packet, cannot inject TCP packet (" TCP_FLAGS_LOG_FORMAT ", payload len:%d)",
session_get_id(sess), flow_direction_to_str(inject_dir), TCP_FLAGS_LOG_VALUE(tcp_flags), len); session_get_id(sess), session_get0_readable_addr(sess),
flow_direction_to_str(inject_dir), TCP_FLAGS_LOG_VALUE(tcp_flags), len);
return 0; return 0;
} }
@@ -416,8 +418,9 @@ int inject_tcp_packet(const struct session *sess, enum flow_direction inject_dir
int pkt_len = build_tcp_packet(pkt, finger.ipid, finger.ttl, tcp_seq, tcp_ack, tcp_flags, finger.win, payload, len, buff, sizeof(buff)); int pkt_len = build_tcp_packet(pkt, finger.ipid, finger.ttl, tcp_seq, tcp_ack, tcp_flags, finger.win, payload, len, buff, sizeof(buff));
if (pkt_len <= 0) if (pkt_len <= 0)
{ {
INJECT_PACKET_LOG_ERROR("session %ld build TCP %s packet (" TCP_FLAGS_LOG_FORMAT ", payload len:%d) failed, %s", INJECT_PACKET_LOG_ERROR("session %ld %s build TCP %s packet (" TCP_FLAGS_LOG_FORMAT ", payload len:%d) failed, %s",
session_get_id(sess), flow_direction_to_str(inject_dir), TCP_FLAGS_LOG_VALUE(tcp_flags), len, strerror(len)); session_get_id(sess), session_get0_readable_addr(sess),
flow_direction_to_str(inject_dir), TCP_FLAGS_LOG_VALUE(tcp_flags), len, strerror(len));
session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1); session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1);
return 0; return 0;
} }
@@ -436,14 +439,16 @@ int inject_tcp_packet(const struct session *sess, enum flow_direction inject_dir
{ {
session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_SUCCESS, 1); session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_SUCCESS, 1);
session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_BYTES_SUCCESS, pkt_len); session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_BYTES_SUCCESS, pkt_len);
INJECT_PACKE_LOG_DEBUG("session %ld inject TCP %s packet (" TCP_FLAGS_LOG_FORMAT ", payload len:%d) success", INJECT_PACKE_LOG_DEBUG("session %ld %s inject TCP %s packet (" TCP_FLAGS_LOG_FORMAT ", payload len:%d) success",
session_get_id(sess), flow_direction_to_str(inject_dir), TCP_FLAGS_LOG_VALUE(tcp_flags), len); session_get_id(sess), session_get0_readable_addr(sess),
flow_direction_to_str(inject_dir), TCP_FLAGS_LOG_VALUE(tcp_flags), len);
return pkt_len; return pkt_len;
} }
else else
{ {
INJECT_PACKET_LOG_ERROR("session %ld inject TCP %s packet (" TCP_FLAGS_LOG_FORMAT ", payload len:%d) failed, packet I/O nospace", INJECT_PACKET_LOG_ERROR("session %ld %s inject TCP %s packet (" TCP_FLAGS_LOG_FORMAT ", payload len:%d) failed, packet I/O nospace",
session_get_id(sess), flow_direction_to_str(inject_dir), TCP_FLAGS_LOG_VALUE(tcp_flags), len); session_get_id(sess), session_get0_readable_addr(sess),
flow_direction_to_str(inject_dir), TCP_FLAGS_LOG_VALUE(tcp_flags), len);
session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1); session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1);
return 0; return 0;
} }
@@ -457,8 +462,8 @@ int inject_udp_packet(const struct session *sess, enum flow_direction inject_dir
if (session_get_type(sess) != SESSION_TYPE_UDP) if (session_get_type(sess) != SESSION_TYPE_UDP)
{ {
session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1); session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1);
INJECT_PACKET_LOG_ERROR("session %ld is not a UDP session, cannot inject UDP packet (payload len:%d)", INJECT_PACKET_LOG_ERROR("session %ld %s is not a UDP session, cannot inject UDP packet (payload len:%d)",
session_get_id(sess), len); session_get_id(sess), session_get0_readable_addr(sess), len);
return 0; return 0;
} }
@@ -466,8 +471,9 @@ int inject_udp_packet(const struct session *sess, enum flow_direction inject_dir
if (pkt == NULL) if (pkt == NULL)
{ {
session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1); session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1);
INJECT_PACKET_LOG_ERROR("session %ld has no %s first packet, cannot inject UDP packet (payload len:%d)", INJECT_PACKET_LOG_ERROR("session %ld %s has no %s first packet, cannot inject UDP packet (payload len:%d)",
session_get_id(sess), flow_direction_to_str(inject_dir), len); session_get_id(sess), session_get0_readable_addr(sess),
flow_direction_to_str(inject_dir), len);
return 0; return 0;
} }
@@ -475,8 +481,9 @@ int inject_udp_packet(const struct session *sess, enum flow_direction inject_dir
int pkt_len = build_udp_packet(pkt, payload, len, buff, sizeof(buff)); int pkt_len = build_udp_packet(pkt, payload, len, buff, sizeof(buff));
if (pkt_len <= 0) if (pkt_len <= 0)
{ {
INJECT_PACKET_LOG_ERROR("session %ld build UDP %s packet (payload len:%d) failed, %s", INJECT_PACKET_LOG_ERROR("session %ld %s build UDP %s packet (payload len:%d) failed, %s",
session_get_id(sess), flow_direction_to_str(inject_dir), len, strerror(len)); session_get_id(sess), session_get0_readable_addr(sess),
flow_direction_to_str(inject_dir), len, strerror(len));
session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1); session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1);
return 0; return 0;
} }
@@ -495,14 +502,16 @@ int inject_udp_packet(const struct session *sess, enum flow_direction inject_dir
{ {
session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_SUCCESS, 1); session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_SUCCESS, 1);
session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_BYTES_SUCCESS, pkt_len); session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_BYTES_SUCCESS, pkt_len);
INJECT_PACKE_LOG_DEBUG("session %ld inject UDP %s packet (payload len:%d) success", INJECT_PACKE_LOG_DEBUG("session %ld %s inject UDP %s packet (payload len:%d) success",
session_get_id(sess), flow_direction_to_str(inject_dir), len); session_get_id(sess), session_get0_readable_addr(sess),
flow_direction_to_str(inject_dir), len);
return pkt_len; return pkt_len;
} }
else else
{ {
INJECT_PACKET_LOG_ERROR("session %ld inject UDP %s packet (payload len:%d) failed, packet I/O nospace", INJECT_PACKET_LOG_ERROR("session %ld %s inject UDP %s packet (payload len:%d) failed, packet I/O nospace",
session_get_id(sess), flow_direction_to_str(inject_dir), len); session_get_id(sess), session_get0_readable_addr(sess),
flow_direction_to_str(inject_dir), len);
session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1); session_inc_stat((struct session *)sess, inject_dir, STAT_INJECTED_PACKETS_FAILED, 1);
return 0; return 0;
} }

View File

@@ -28,20 +28,20 @@ TEST(TUPLE, TUPLE2)
// to_str // to_str
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple2_to_str(&tuple_a, buf, sizeof(buf)); tuple2_to_str(&tuple_a, buf, sizeof(buf));
EXPECT_STREQ(buf, "192.168.1.2 -> 192.168.1.3"); EXPECT_STREQ(buf, "192.168.1.2-192.168.1.3");
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple2_to_str(&tuple_b, buf, sizeof(buf)); tuple2_to_str(&tuple_b, buf, sizeof(buf));
EXPECT_STREQ(buf, "2001:db8::ff00:42:8329 -> 2001:db8::ff00:42:832a"); EXPECT_STREQ(buf, "2001:db8::ff00:42:8329-2001:db8::ff00:42:832a");
// reverse // reverse
tuple2_reverse(&tuple_a, &reversed_tuple_a); tuple2_reverse(&tuple_a, &reversed_tuple_a);
tuple2_reverse(&tuple_b, &reversed_tuple_b); tuple2_reverse(&tuple_b, &reversed_tuple_b);
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple2_to_str(&reversed_tuple_a, buf, sizeof(buf)); tuple2_to_str(&reversed_tuple_a, buf, sizeof(buf));
EXPECT_STREQ(buf, "192.168.1.3 -> 192.168.1.2"); EXPECT_STREQ(buf, "192.168.1.3-192.168.1.2");
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple2_to_str(&reversed_tuple_b, buf, sizeof(buf)); tuple2_to_str(&reversed_tuple_b, buf, sizeof(buf));
EXPECT_STREQ(buf, "2001:db8::ff00:42:832a -> 2001:db8::ff00:42:8329"); EXPECT_STREQ(buf, "2001:db8::ff00:42:832a-2001:db8::ff00:42:8329");
// hash // hash
EXPECT_TRUE(tuple2_hash(&tuple_a) == tuple2_hash(&reversed_tuple_a)); EXPECT_TRUE(tuple2_hash(&tuple_a) == tuple2_hash(&reversed_tuple_a));
@@ -91,20 +91,20 @@ TEST(TUPLE, TUPLE4)
// to_str // to_str
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple4_to_str(&tuple_a, buf, sizeof(buf)); tuple4_to_str(&tuple_a, buf, sizeof(buf));
EXPECT_STREQ(buf, "192.168.1.2:1234 -> 192.168.1.3:5678"); EXPECT_STREQ(buf, "192.168.1.2:1234-192.168.1.3:5678");
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple4_to_str(&tuple_b, buf, sizeof(buf)); tuple4_to_str(&tuple_b, buf, sizeof(buf));
EXPECT_STREQ(buf, "2001:db8::ff00:42:8329:1234 -> 2001:db8::ff00:42:832a:5678"); EXPECT_STREQ(buf, "2001:db8::ff00:42:8329:1234-2001:db8::ff00:42:832a:5678");
// reverse // reverse
tuple4_reverse(&tuple_a, &reversed_tuple_a); tuple4_reverse(&tuple_a, &reversed_tuple_a);
tuple4_reverse(&tuple_b, &reversed_tuple_b); tuple4_reverse(&tuple_b, &reversed_tuple_b);
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple4_to_str(&reversed_tuple_a, buf, sizeof(buf)); tuple4_to_str(&reversed_tuple_a, buf, sizeof(buf));
EXPECT_STREQ(buf, "192.168.1.3:5678 -> 192.168.1.2:1234"); EXPECT_STREQ(buf, "192.168.1.3:5678-192.168.1.2:1234");
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple4_to_str(&reversed_tuple_b, buf, sizeof(buf)); tuple4_to_str(&reversed_tuple_b, buf, sizeof(buf));
EXPECT_STREQ(buf, "2001:db8::ff00:42:832a:5678 -> 2001:db8::ff00:42:8329:1234"); EXPECT_STREQ(buf, "2001:db8::ff00:42:832a:5678-2001:db8::ff00:42:8329:1234");
// hash // hash
EXPECT_TRUE(tuple4_hash(&tuple_a) == tuple4_hash(&reversed_tuple_a)); EXPECT_TRUE(tuple4_hash(&tuple_a) == tuple4_hash(&reversed_tuple_a));
@@ -156,20 +156,20 @@ TEST(TUPLE, TUPLE5)
// to_str // to_str
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple5_to_str(&tuple_a, buf, sizeof(buf)); tuple5_to_str(&tuple_a, buf, sizeof(buf));
EXPECT_STREQ(buf, "192.168.1.2:1234 -> 192.168.1.3:5678, proto: 6"); EXPECT_STREQ(buf, "192.168.1.2:1234-192.168.1.3:5678-6");
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple5_to_str(&tuple_b, buf, sizeof(buf)); tuple5_to_str(&tuple_b, buf, sizeof(buf));
EXPECT_STREQ(buf, "2001:db8::ff00:42:8329:1234 -> 2001:db8::ff00:42:832a:5678, proto: 17"); EXPECT_STREQ(buf, "2001:db8::ff00:42:8329:1234-2001:db8::ff00:42:832a:5678-17");
// reverse // reverse
tuple5_reverse(&tuple_a, &reversed_tuple_a); tuple5_reverse(&tuple_a, &reversed_tuple_a);
tuple5_reverse(&tuple_b, &reversed_tuple_b); tuple5_reverse(&tuple_b, &reversed_tuple_b);
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple5_to_str(&reversed_tuple_a, buf, sizeof(buf)); tuple5_to_str(&reversed_tuple_a, buf, sizeof(buf));
EXPECT_STREQ(buf, "192.168.1.3:5678 -> 192.168.1.2:1234, proto: 6"); EXPECT_STREQ(buf, "192.168.1.3:5678-192.168.1.2:1234-6");
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple5_to_str(&reversed_tuple_b, buf, sizeof(buf)); tuple5_to_str(&reversed_tuple_b, buf, sizeof(buf));
EXPECT_STREQ(buf, "2001:db8::ff00:42:832a:5678 -> 2001:db8::ff00:42:8329:1234, proto: 17"); EXPECT_STREQ(buf, "2001:db8::ff00:42:832a:5678-2001:db8::ff00:42:8329:1234-17");
// hash // hash
EXPECT_TRUE(tuple5_hash(&tuple_a) == tuple5_hash(&reversed_tuple_a)); EXPECT_TRUE(tuple5_hash(&tuple_a) == tuple5_hash(&reversed_tuple_a));
@@ -223,20 +223,20 @@ TEST(TUPLE, TUPLE6)
// to_str // to_str
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple6_to_str(&tuple_a, buf, sizeof(buf)); tuple6_to_str(&tuple_a, buf, sizeof(buf));
EXPECT_STREQ(buf, "192.168.1.2:1234 -> 192.168.1.3:5678, proto: 6, domain: 0"); EXPECT_STREQ(buf, "192.168.1.2:1234-192.168.1.3:5678-6-0");
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple6_to_str(&tuple_b, buf, sizeof(buf)); tuple6_to_str(&tuple_b, buf, sizeof(buf));
EXPECT_STREQ(buf, "2001:db8::ff00:42:8329:1234 -> 2001:db8::ff00:42:832a:5678, proto: 17, domain: 0"); EXPECT_STREQ(buf, "2001:db8::ff00:42:8329:1234-2001:db8::ff00:42:832a:5678-17-0");
// reverse // reverse
tuple6_reverse(&tuple_a, &reversed_tuple_a); tuple6_reverse(&tuple_a, &reversed_tuple_a);
tuple6_reverse(&tuple_b, &reversed_tuple_b); tuple6_reverse(&tuple_b, &reversed_tuple_b);
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple6_to_str(&reversed_tuple_a, buf, sizeof(buf)); tuple6_to_str(&reversed_tuple_a, buf, sizeof(buf));
EXPECT_STREQ(buf, "192.168.1.3:5678 -> 192.168.1.2:1234, proto: 6, domain: 0"); EXPECT_STREQ(buf, "192.168.1.3:5678-192.168.1.2:1234-6-0");
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
tuple6_to_str(&reversed_tuple_b, buf, sizeof(buf)); tuple6_to_str(&reversed_tuple_b, buf, sizeof(buf));
EXPECT_STREQ(buf, "2001:db8::ff00:42:832a:5678 -> 2001:db8::ff00:42:8329:1234, proto: 17, domain: 0"); EXPECT_STREQ(buf, "2001:db8::ff00:42:832a:5678-2001:db8::ff00:42:8329:1234-17-0");
// hash // hash
EXPECT_TRUE(tuple6_hash(&tuple_a) == tuple6_hash(&reversed_tuple_a)); EXPECT_TRUE(tuple6_hash(&tuple_a) == tuple6_hash(&reversed_tuple_a));

View File

@@ -355,7 +355,7 @@ void tuple2_to_str(const struct tuple2 *tuple, char *buf, uint32_t size)
inet_ntop(AF_INET6, &tuple->dst_addr.v6, dst_addr, INET6_ADDRSTRLEN); inet_ntop(AF_INET6, &tuple->dst_addr.v6, dst_addr, INET6_ADDRSTRLEN);
} }
snprintf(buf, size, "%s -> %s", src_addr, dst_addr); snprintf(buf, size, "%s-%s", src_addr, dst_addr);
} }
void tuple4_to_str(const struct tuple4 *tuple, char *buf, uint32_t size) void tuple4_to_str(const struct tuple4 *tuple, char *buf, uint32_t size)
@@ -374,7 +374,7 @@ void tuple4_to_str(const struct tuple4 *tuple, char *buf, uint32_t size)
inet_ntop(AF_INET6, &tuple->dst_addr.v6, dst_addr, INET6_ADDRSTRLEN); inet_ntop(AF_INET6, &tuple->dst_addr.v6, dst_addr, INET6_ADDRSTRLEN);
} }
snprintf(buf, size, "%s:%u -> %s:%u", snprintf(buf, size, "%s:%u-%s:%u",
src_addr, ntohs(tuple->src_port), src_addr, ntohs(tuple->src_port),
dst_addr, ntohs(tuple->dst_port)); dst_addr, ntohs(tuple->dst_port));
} }
@@ -395,7 +395,7 @@ void tuple5_to_str(const struct tuple5 *tuple, char *buf, uint32_t size)
inet_ntop(AF_INET6, &tuple->dst_addr.v6, dst_addr, INET6_ADDRSTRLEN); inet_ntop(AF_INET6, &tuple->dst_addr.v6, dst_addr, INET6_ADDRSTRLEN);
} }
snprintf(buf, size, "%s:%u -> %s:%u, proto: %u", snprintf(buf, size, "%s:%u-%s:%u-%u",
src_addr, ntohs(tuple->src_port), src_addr, ntohs(tuple->src_port),
dst_addr, ntohs(tuple->dst_port), dst_addr, ntohs(tuple->dst_port),
tuple->ip_proto); tuple->ip_proto);
@@ -417,7 +417,7 @@ void tuple6_to_str(const struct tuple6 *tuple, char *buf, uint32_t size)
inet_ntop(AF_INET6, &tuple->dst_addr.v6, dst_addr, INET6_ADDRSTRLEN); inet_ntop(AF_INET6, &tuple->dst_addr.v6, dst_addr, INET6_ADDRSTRLEN);
} }
snprintf(buf, size, "%s:%u -> %s:%u, proto: %u, domain: %lu", snprintf(buf, size, "%s:%u-%s:%u-%u-%lu",
src_addr, ntohs(tuple->src_port), src_addr, ntohs(tuple->src_port),
dst_addr, ntohs(tuple->dst_port), dst_addr, ntohs(tuple->dst_port),
tuple->ip_proto, tuple->domain); tuple->ip_proto, tuple->domain);

View File

@@ -72,6 +72,13 @@ static void inject_packet_plugin(struct session *sess, int topic_id, const void
{ {
return; return;
} }
if (session_get_stat(sess, FLOW_DIRECTION_C2S, STAT_INJECTED_PACKETS_SUCCESS) > 0 ||
session_get_stat(sess, FLOW_DIRECTION_S2C, STAT_INJECTED_PACKETS_SUCCESS) > 0)
{
// later packets need drop
packet_set_action(pkt, PACKET_ACTION_DROP);
return;
}
if (p_rule->count_dir == AFTER_RECV_C2S_N_PACKET && session_get_stat(sess, FLOW_DIRECTION_C2S, STAT_RAW_PACKETS_RECEIVED) != p_rule->count_num) if (p_rule->count_dir == AFTER_RECV_C2S_N_PACKET && session_get_stat(sess, FLOW_DIRECTION_C2S, STAT_RAW_PACKETS_RECEIVED) != p_rule->count_num)
{ {
return; return;
@@ -80,24 +87,22 @@ static void inject_packet_plugin(struct session *sess, int topic_id, const void
{ {
return; return;
} }
if (session_get_stat(sess, FLOW_DIRECTION_C2S, STAT_INJECTED_PACKETS_SUCCESS) > 0 ||
session_get_stat(sess, FLOW_DIRECTION_S2C, STAT_INJECTED_PACKETS_SUCCESS) > 0)
{
return;
}
switch (p_rule->inject_type) switch (p_rule->inject_type)
{ {
case INJECT_TYPE_TCP_RST: case INJECT_TYPE_TCP_RST:
// current packet need drop
packet_set_action(pkt, PACKET_ACTION_DROP); packet_set_action(pkt, PACKET_ACTION_DROP);
EXPECT_TRUE(stellar_inject_tcp_rst(sess, FLOW_DIRECTION_C2S) > 0); EXPECT_TRUE(stellar_inject_tcp_rst(sess, FLOW_DIRECTION_C2S) > 0);
EXPECT_TRUE(stellar_inject_tcp_rst(sess, FLOW_DIRECTION_S2C) > 0); EXPECT_TRUE(stellar_inject_tcp_rst(sess, FLOW_DIRECTION_S2C) > 0);
break; break;
case INJECT_TYPE_TCP_FIN: case INJECT_TYPE_TCP_FIN:
// current packet need drop
packet_set_action(pkt, PACKET_ACTION_DROP); packet_set_action(pkt, PACKET_ACTION_DROP);
EXPECT_TRUE(stellar_inject_tcp_fin(sess, FLOW_DIRECTION_C2S) > 0); EXPECT_TRUE(stellar_inject_tcp_fin(sess, FLOW_DIRECTION_C2S) > 0);
EXPECT_TRUE(stellar_inject_tcp_fin(sess, FLOW_DIRECTION_S2C) > 0); EXPECT_TRUE(stellar_inject_tcp_fin(sess, FLOW_DIRECTION_S2C) > 0);
break; break;
case INJECT_TYPE_TCP_PAYLOAD: case INJECT_TYPE_TCP_PAYLOAD:
// current packet need drop
packet_set_action(pkt, PACKET_ACTION_DROP); packet_set_action(pkt, PACKET_ACTION_DROP);
snprintf(buffer, sizeof(buffer), "HTTP/1.1 200 OK\r\nContent-Length: %d\r\n\r\n%s", 5 + 5 + 2, "Hello"); snprintf(buffer, sizeof(buffer), "HTTP/1.1 200 OK\r\nContent-Length: %d\r\n\r\n%s", 5 + 5 + 2, "Hello");
EXPECT_TRUE(stellar_inject_payload(sess, FLOW_DIRECTION_S2C, buffer, strlen(buffer)) > 0); // inject payload to client EXPECT_TRUE(stellar_inject_payload(sess, FLOW_DIRECTION_S2C, buffer, strlen(buffer)) > 0); // inject payload to client
@@ -106,6 +111,7 @@ static void inject_packet_plugin(struct session *sess, int topic_id, const void
EXPECT_TRUE(stellar_inject_tcp_rst(sess, FLOW_DIRECTION_C2S) > 0); // inject RST to server EXPECT_TRUE(stellar_inject_tcp_rst(sess, FLOW_DIRECTION_C2S) > 0); // inject RST to server
break; break;
case INJECT_TYPE_UDP_PAYLOAD: case INJECT_TYPE_UDP_PAYLOAD:
// current packet need drop
packet_set_action(pkt, PACKET_ACTION_DROP); packet_set_action(pkt, PACKET_ACTION_DROP);
EXPECT_TRUE(stellar_inject_payload(sess, FLOW_DIRECTION_C2S, "Hello Server", 12) > 0); EXPECT_TRUE(stellar_inject_payload(sess, FLOW_DIRECTION_C2S, "Hello Server", 12) > 0);
EXPECT_TRUE(stellar_inject_payload(sess, FLOW_DIRECTION_S2C, "Hello Client", 12) > 0); EXPECT_TRUE(stellar_inject_payload(sess, FLOW_DIRECTION_S2C, "Hello Client", 12) > 0);