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));