diff options
| author | liuchang <[email protected]> | 2024-11-26 06:33:14 +0000 |
|---|---|---|
| committer | liuchang <[email protected]> | 2024-11-26 06:33:14 +0000 |
| commit | 1c36e1cb218c67b519170ec23d3ccfcde6b615e7 (patch) | |
| tree | 5709aaf48d9d8b8c70ae11530b0b58c1ac8b0664 /src/maat_api.c | |
| parent | 57149b306076b88a914e43cb459142c836c58ef3 (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.c | 21 |
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) { |
