summaryrefslogtreecommitdiff
path: root/src/maat_api.c
diff options
context:
space:
mode:
authorliuchang <[email protected]>2024-11-26 06:33:14 +0000
committerliuchang <[email protected]>2024-11-26 06:33:14 +0000
commit1c36e1cb218c67b519170ec23d3ccfcde6b615e7 (patch)
tree5709aaf48d9d8b8c70ae11530b0b58c1ac8b0664 /src/maat_api.c
parent57149b306076b88a914e43cb459142c836c58ef3 (diff)
add api maat_state_sort_rules to sort rule_uuid by order: 1.priority 2.condition_num 3.uuidv5.0.4rename-attribute_name-to-field-v24.12
Diffstat (limited to 'src/maat_api.c')
-rw-r--r--src/maat_api.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/maat_api.c b/src/maat_api.c
index 45fe377..ec78eee 100644
--- a/src/maat_api.c
+++ b/src/maat_api.c
@@ -1964,6 +1964,27 @@ void maat_state_free(struct maat_state *state)
thread_id, sizeof(struct maat_state));
}
+size_t maat_state_sort_rules(struct maat *maat_inst, const char *table_name, uuid_t *rule_uuids, uuid_t *sorted_rule_uuids, size_t n_rule_uuids)
+{
+ if (NULL == table_name || NULL == rule_uuids || 0 == n_rule_uuids) {
+ return 0;
+ }
+
+ int rule_table_id = table_manager_get_table_id(maat_inst->tbl_mgr, table_name);
+
+ if (rule_table_id < 0) {
+ return 0;
+ }
+
+ void *rule_rt = table_manager_get_runtime(maat_inst->tbl_mgr,
+ rule_table_id);
+ if (NULL == rule_rt) {
+ return 0;
+ }
+
+ return rule_compile_state_sort_rules(rule_rt, rule_uuids, sorted_rule_uuids, n_rule_uuids);
+}
+
int maat_state_set_scan_rule_table(struct maat_state *state, const char *rule_table_name)
{
if (NULL == state) {