From 19eaee2c7825fdfc1b1b967496916942624e9d29 Mon Sep 17 00:00:00 2001 From: Yang Yubo Date: Mon, 8 May 2023 14:16:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=A0=E4=BF=AE=E6=94=B9up?= =?UTF-8?q?date=5Fpolicy=5Ftype=E9=A1=BA=E5=BA=8F=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B=E8=B7=91=E4=B8=8D=E9=80=9A?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tsg_sync_state.cpp | 16 +++++++++++++-- src/tsg_sync_state.h | 4 ++-- test/src/gtest_sync_state.cpp | 38 ++++++++++++++++++----------------- 3 files changed, 36 insertions(+), 22 deletions(-) diff --git a/src/tsg_sync_state.cpp b/src/tsg_sync_state.cpp index 9b2c331..ae7b1a7 100644 --- a/src/tsg_sync_state.cpp +++ b/src/tsg_sync_state.cpp @@ -9,7 +9,6 @@ #include "tsg_send_log.h" #include "mpack.h" -const char *policy_key[POLICY_UPDATE_MAX] = {"sce", "shaper", "proxy"}; char *mpack_data = NULL; size_t mpack_size = 0; static int tsg_mpack_init_map(const struct streaminfo *a_stream, mpack_writer_t *writer, const char *state) @@ -232,7 +231,20 @@ static void tsg_mpack_append_cmsg_value(mpack_writer_t *writer, struct proxy_cms static void tsg_mpack_append_update_policy(mpack_writer_t *writer, struct update_policy *policy_update, enum policy_type type) { - mpack_write_cstr(writer, policy_key[type]); + switch (type) + { + case POLICY_UPDATE_INTERCEPT: + mpack_write_cstr(writer, "proxy"); + break; + case POLICY_UPDATE_SERVICE_CHAINING: + mpack_write_cstr(writer, "sce"); + break; + case POLICY_UPDATE_SHAPING: + mpack_write_cstr(writer, "shaper"); + break; + default: + return; + } mpack_build_map(writer); // update_policy_type mpack_write_cstr(writer, "rule_ids"); diff --git a/src/tsg_sync_state.h b/src/tsg_sync_state.h index 2a4a521..801ebc1 100644 --- a/src/tsg_sync_state.h +++ b/src/tsg_sync_state.h @@ -5,9 +5,9 @@ enum policy_type { - POLICY_UPDATE_SERVICE_CHAINING = 0, + POLICY_UPDATE_INTERCEPT = 0, + POLICY_UPDATE_SERVICE_CHAINING, POLICY_UPDATE_SHAPING, - POLICY_UPDATE_INTERCEPT, POLICY_UPDATE_MAX }; diff --git a/test/src/gtest_sync_state.cpp b/test/src/gtest_sync_state.cpp index 2309c02..5dd8629 100644 --- a/test/src/gtest_sync_state.cpp +++ b/test/src/gtest_sync_state.cpp @@ -48,7 +48,7 @@ TEST(SESSION_STATE, OpeningState) a_stream.opstate = OP_STATE_PENDING; EXPECT_EQ(0, tsg_send_session_state(&a_stream, OP_STATE_PENDING)); - ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, 1024); + ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, sizeof(ctrl_pkt_buf)); mpack_tree_t tree; mpack_tree_init_data(&tree, ctrl_pkt_buf, ctrl_pkt_len); @@ -59,7 +59,7 @@ TEST(SESSION_STATE, OpeningState) EXPECT_EQ(mpack_type_str, mpack_node_type(mpack_node_map_cstr(root, "tsync"))); memcpy(test_str, mpack_node_str(mpack_node_map_cstr(root, "tsync")), mpack_node_strlen(mpack_node_map_cstr(root, "tsync"))); EXPECT_STREQ("2.0", test_str); - memset(test_str, 0, 256); + memset(test_str, 0, sizeof(test_str)); // session_id EXPECT_EQ(10, mpack_node_u64(mpack_node_map_cstr(root, "session_id"))); @@ -67,7 +67,7 @@ TEST(SESSION_STATE, OpeningState) // state:opening memcpy(test_str, mpack_node_str(mpack_node_map_cstr(root, "state")), mpack_node_strlen(mpack_node_map_cstr(root, "state"))); EXPECT_STREQ("opening", test_str); - memset(test_str, 0, 256); + memset(test_str, 0, sizeof(test_str)); EXPECT_EQ(mpack_tree_destroy(&tree), mpack_ok); } @@ -81,7 +81,7 @@ TEST(SESSION_STATE, CloseState) a_stream.opstate = OP_STATE_CLOSE; EXPECT_EQ(0, tsg_send_session_state(&a_stream, OP_STATE_CLOSE)); - ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, 1024); + ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, sizeof(ctrl_pkt_buf)); mpack_tree_t tree; mpack_tree_init_data(&tree, ctrl_pkt_buf, ctrl_pkt_len); @@ -92,7 +92,7 @@ TEST(SESSION_STATE, CloseState) EXPECT_EQ(mpack_type_str, mpack_node_type(mpack_node_map_cstr(root, "tsync"))); memcpy(test_str, mpack_node_str(mpack_node_map_cstr(root, "tsync")), mpack_node_strlen(mpack_node_map_cstr(root, "tsync"))); EXPECT_STREQ("2.0", test_str); - memset(test_str, 0, 256); + memset(test_str, 0, sizeof(test_str)); // session_id EXPECT_EQ(10, mpack_node_u64(mpack_node_map_cstr(root, "session_id"))); @@ -100,7 +100,7 @@ TEST(SESSION_STATE, CloseState) // state:colse memcpy(test_str, mpack_node_str(mpack_node_map_cstr(root, "state")), mpack_node_strlen(mpack_node_map_cstr(root, "state"))); EXPECT_STREQ("closing", test_str); - memset(test_str, 0, 256); + memset(test_str, 0, sizeof(test_str)); EXPECT_EQ(mpack_tree_destroy(&tree), mpack_ok); } @@ -113,7 +113,7 @@ TEST(SESSION_STATE, ResetAllState) int ctrl_pkt_len = 0; EXPECT_EQ(0, tsg_sync_resetall_state(&a_stream)); - ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, 1024); + ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, sizeof(ctrl_pkt_buf)); mpack_tree_t tree; mpack_tree_init_data(&tree, ctrl_pkt_buf, ctrl_pkt_len); mpack_tree_parse(&tree); @@ -122,7 +122,7 @@ TEST(SESSION_STATE, ResetAllState) // state:resetall memcpy(test_str, mpack_node_str(mpack_node_map_cstr(root, "state")), mpack_node_strlen(mpack_node_map_cstr(root, "state"))); EXPECT_STREQ("resetall", test_str); - memset(test_str, 0, 256); + memset(test_str, 0, sizeof(test_str)); EXPECT_EQ(mpack_tree_destroy(&tree), mpack_ok); } @@ -142,7 +142,7 @@ TEST(POLICY_UPDATE, Sce) tsg_sync_policy_update(&a_stream, &test, 1); - ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, 1024); + ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, sizeof(ctrl_pkt_buf)); mpack_tree_t tree; mpack_tree_init_data(&tree, ctrl_pkt_buf, ctrl_pkt_len); mpack_tree_parse(&tree); @@ -172,7 +172,7 @@ TEST(POLICY_UPDATE, Shaper) tsg_sync_policy_update(&a_stream, &test, 1); - ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, 1024); + ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, sizeof(ctrl_pkt_buf)); mpack_tree_t tree; mpack_tree_init_data(&tree, ctrl_pkt_buf, ctrl_pkt_len); mpack_tree_parse(&tree); @@ -195,10 +195,11 @@ TEST(SESSION_STATE, ActiveStateServiceChainingAndShaping0) char ctrl_pkt_buf[1024]; int ctrl_pkt_len = 0; memset(&policy_array, 0, sizeof(struct update_policy) * 2); - policy_array[0].type = POLICY_UPDATE_SHAPING; + policy_array[0].type = POLICY_UPDATE_SERVICE_CHAINING; + policy_array[1].type = POLICY_UPDATE_SHAPING; EXPECT_EQ(0, tsg_sync_policy_update(&a_stream, policy_array, 2)); - ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, 1024); + ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, sizeof(ctrl_pkt_buf)); mpack_tree_t tree; mpack_tree_init_data(&tree, ctrl_pkt_buf, ctrl_pkt_len); mpack_tree_parse(&tree); @@ -208,7 +209,7 @@ TEST(SESSION_STATE, ActiveStateServiceChainingAndShaping0) EXPECT_EQ(mpack_type_str, mpack_node_type(mpack_node_map_cstr(root, "tsync"))); memcpy(test_str, mpack_node_str(mpack_node_map_cstr(root, "tsync")), mpack_node_strlen(mpack_node_map_cstr(root, "tsync"))); EXPECT_STREQ("2.0", test_str); - memset(test_str, 0, 256); + memset(test_str, 0, sizeof(test_str)); // session_id EXPECT_EQ(10, mpack_node_u64(mpack_node_map_cstr(root, "session_id"))); @@ -217,7 +218,7 @@ TEST(SESSION_STATE, ActiveStateServiceChainingAndShaping0) EXPECT_EQ(mpack_type_str, mpack_node_type(mpack_node_map_cstr(root, "state"))); memcpy(test_str, mpack_node_str(mpack_node_map_cstr(root, "state")), mpack_node_strlen(mpack_node_map_cstr(root, "state"))); EXPECT_STREQ("active", test_str); - memset(test_str, 0, 256); + memset(test_str, 0, sizeof(test_str)); // sce mpack_node_t policy_sce = mpack_node_map_cstr(mpack_node_map_cstr(root, "params"), "sce"); @@ -249,13 +250,14 @@ TEST(SESSION_STATE, ActiveStateServiceChainingAndShaping1) policy_array[0].ids[0] = 1; policy_array[0].ids[1] = 2; policy_array[0].ids[2] = 3; + policy_array[1].type = POLICY_UPDATE_SERVICE_CHAINING; policy_array[1].n_ids = 3; policy_array[1].ids[0] = 4; policy_array[1].ids[1] = 5; policy_array[1].ids[2] = 6; EXPECT_EQ(0, tsg_sync_policy_update(&a_stream, policy_array, 2)); - ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, 1024); + ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, sizeof(ctrl_pkt_buf)); mpack_tree_t tree; mpack_tree_init_data(&tree, ctrl_pkt_buf, ctrl_pkt_len); mpack_tree_parse(&tree); @@ -418,7 +420,7 @@ TEST(POLICY_UPDATE, Proxy) memcpy(&test.cmsg, &cmsg, sizeof(struct proxy_cmsg)); tsg_sync_policy_update(&a_stream, &test, 1); - ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, 1024); + ctrl_pkt_len = get_ctrl_pkt(ctrl_pkt_buf, sizeof(ctrl_pkt_buf)); mpack_tree_t tree; mpack_tree_init_data(&tree, ctrl_pkt_buf, ctrl_pkt_len); mpack_tree_parse(&tree); @@ -442,11 +444,11 @@ TEST(POLICY_UPDATE, Proxy) memcpy(test_str, mpack_node_str(mpack_node_array_at(tcp_handshake, 17)), mpack_node_strlen(mpack_node_array_at(tcp_handshake, 17))); EXPECT_STREQ("thisistest=2", test_str); - memset(test_str, 0, 256); + memset(test_str, 0, sizeof(test_str)); memcpy(test_str, mpack_node_str(mpack_node_array_at(tcp_handshake, 30)), mpack_node_strlen(mpack_node_array_at(tcp_handshake, 30))); EXPECT_STREQ("thisistest=15", test_str); - memset(test_str, 0, 256); + memset(test_str, 0, sizeof(test_str)); mpack_node_t fqdn_cat_id_vals = mpack_node_array_at(tcp_handshake, 31); EXPECT_EQ(4, mpack_node_array_length(fqdn_cat_id_vals));