unfinished work
This commit is contained in:
@@ -4,8 +4,6 @@
|
||||
#include "maat/maat.h"
|
||||
#include "maat_rule.h"
|
||||
#include "maat_utils.h"
|
||||
#include "maat_table_schema.h"
|
||||
#include "maat_table_runtime.h"
|
||||
#include "maat_command.h"
|
||||
#include "IPMatcher.h"
|
||||
#include "json2iris.h"
|
||||
@@ -17,250 +15,238 @@ const char *json_path="./maat_json.json";
|
||||
const char *json_filename = "maat_json.json";
|
||||
|
||||
TEST(maat_scan_string, hit_one_expr) {
|
||||
struct table_schema_manager *table_schema_mgr = g_maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "HTTP_URL");
|
||||
int table_id = maat_table_get_id(g_maat_instance, "HTTP_URL");
|
||||
|
||||
char data[128] = "i.ytimg.com";
|
||||
char scan_data[128] = "hello";
|
||||
int results[5] = {0};
|
||||
size_t n_result = 0;
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
int ret = maat_scan_string(g_maat_instance, table_id, 0, data, strlen(data), results, &n_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 1);
|
||||
EXPECT_EQ(results[0], 30);
|
||||
int ret = maat_scan_string(g_maat_instance, table_id, 0, scan_data, strlen(scan_data), results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, MAAT_HIT);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 191);
|
||||
|
||||
struct maat_hit_path hit_path[128] = {0};
|
||||
int n_read = 0;
|
||||
n_read = maat_state_get_hit_paths(g_maat_instance, &state, hit_path, sizeof(hit_path));
|
||||
maat_state_free(&state);
|
||||
}
|
||||
|
||||
TEST(maat_scan_string, hit_two_expr) {
|
||||
struct table_schema_manager *table_schema_mgr = g_maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "HTTP_URL");
|
||||
int table_id = maat_table_get_id(g_maat_instance, "HTTP_URL");
|
||||
|
||||
char data[128] = "should hit aaa bbb";
|
||||
int results[5] = {0};
|
||||
size_t n_result = 0;
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
int ret = maat_scan_string(g_maat_instance, table_id, 0, data, strlen(data), results, &n_result, &state);
|
||||
int ret = maat_scan_string(g_maat_instance, table_id, 0, data, strlen(data), results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 2);
|
||||
EXPECT_EQ(n_hit_result, 2);
|
||||
EXPECT_EQ(results[0], 28);
|
||||
EXPECT_EQ(results[1], 27);
|
||||
|
||||
maat_state_free(&state);
|
||||
}
|
||||
|
||||
TEST(maat_scan_string, hit_three_expr) {
|
||||
struct table_schema_manager *table_schema_mgr = g_maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "HTTP_URL");
|
||||
int table_id = maat_table_get_id(g_maat_instance, "HTTP_URL");
|
||||
|
||||
char data[128] = "should hit aaa bbb C#中国";
|
||||
int results[5] = {0};
|
||||
size_t n_result = 0;
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
int ret = maat_scan_string(g_maat_instance, table_id, 0, data, strlen(data), results, &n_result, &state);
|
||||
int ret = maat_scan_string(g_maat_instance, table_id, 0, data, strlen(data), results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 3);
|
||||
EXPECT_EQ(n_hit_result, 3);
|
||||
EXPECT_EQ(results[0], 28);
|
||||
EXPECT_EQ(results[1], 27);
|
||||
EXPECT_EQ(results[2], 18);
|
||||
|
||||
maat_state_free(&state);
|
||||
}
|
||||
|
||||
TEST(maat_scan_ipv4, hit_ip_and_port) {
|
||||
struct table_schema_manager *table_schema_mgr = g_maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "IP_PLUS_CONFIG");
|
||||
int table_id = maat_table_get_id(g_maat_instance, "IP_PLUS_CONFIG");
|
||||
char ip_str[32] = "192.168.58.19";
|
||||
uint16_t port = 20000;
|
||||
struct addr_4tuple addr;
|
||||
addr.type = IP_TYPE_V4;
|
||||
int ret = inet_pton(AF_INET, ip_str, &addr.ipv4.sip);
|
||||
uint32_t sip;
|
||||
int ret = inet_pton(AF_INET, ip_str, &sip);
|
||||
EXPECT_EQ(ret, 1);
|
||||
addr.ipv4.sport = htons(port);
|
||||
|
||||
int results[3] = {-1};
|
||||
size_t n_result = 0;
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 1);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 7);
|
||||
maat_state_free(&state);
|
||||
|
||||
port = 20001;
|
||||
addr.ipv4.sport = htons(port);
|
||||
state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 0);
|
||||
EXPECT_EQ(n_hit_result, 0);
|
||||
|
||||
maat_state_free(&state);
|
||||
}
|
||||
|
||||
TEST(maat_scan_ipv4, hit_ip_and_port_range) {
|
||||
struct table_schema_manager *table_schema_mgr = g_maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "IP_PLUS_CONFIG");
|
||||
int table_id = table_manager_get_table_id(g_maat_instance->tbl_mgr, "IP_PLUS_CONFIG");
|
||||
char ip_str[32] = "192.168.50.24";
|
||||
uint16_t port = 1;
|
||||
struct addr_4tuple addr;
|
||||
struct addr_2tuple addr;
|
||||
addr.type = IP_TYPE_V4;
|
||||
int ret = inet_pton(AF_INET, ip_str, &addr.ipv4.sip);
|
||||
EXPECT_EQ(ret, 1);
|
||||
addr.ipv4.sport = htons(port);
|
||||
|
||||
int results[3] = {-1};
|
||||
size_t n_result = 0;
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 1);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 4);
|
||||
maat_state_free(&state);
|
||||
|
||||
port = 40000;
|
||||
addr.ipv4.sport = htons(port);
|
||||
memset(results, 0, sizeof(results));
|
||||
n_result = 0;
|
||||
n_hit_result = 0;
|
||||
state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 1);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 4);
|
||||
maat_state_free(&state);
|
||||
|
||||
port = 40001;
|
||||
addr.ipv4.sport = htons(port);
|
||||
memset(results, 0, sizeof(results));
|
||||
n_result = 0;
|
||||
n_hit_result = 0;
|
||||
state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 0);
|
||||
EXPECT_EQ(n_hit_result, 0);
|
||||
}
|
||||
|
||||
TEST(maat_scan_ipv4, hit_ip_range_and_port_range) {
|
||||
struct table_schema_manager *table_schema_mgr = g_maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "IP_PLUS_CONFIG");
|
||||
int table_id = table_manager_get_table_id(g_maat_instance->tbl_mgr, "IP_PLUS_CONFIG");
|
||||
char ip_str1[32] = "10.0.1.20";
|
||||
char ip_str2[32] = "10.0.1.25";
|
||||
char ip_str3[32] = "10.0.1.26";
|
||||
uint16_t port1 = 1;
|
||||
uint16_t port2 = 443;
|
||||
struct addr_4tuple addr;
|
||||
struct addr_2tuple addr;
|
||||
addr.type = IP_TYPE_V4;
|
||||
int ret = inet_pton(AF_INET, ip_str1, &addr.ipv4.sip);
|
||||
EXPECT_EQ(ret, 1);
|
||||
addr.ipv4.sport = htons(port1);
|
||||
|
||||
int results[3] = {-1};
|
||||
size_t n_result = 0;
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 1);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 8);
|
||||
maat_state_free(&state);
|
||||
|
||||
ret = inet_pton(AF_INET, ip_str2, &addr.ipv4.sip);
|
||||
EXPECT_EQ(ret, 1);
|
||||
addr.ipv4.sport = htons(port2);
|
||||
state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 1);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 8);
|
||||
maat_state_free(&state);
|
||||
|
||||
ret = inet_pton(AF_INET, ip_str3, &addr.ipv4.sip);
|
||||
EXPECT_EQ(ret, 1);
|
||||
addr.ipv4.sport = htons(port2);
|
||||
state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 0);
|
||||
EXPECT_EQ(n_hit_result, 0);
|
||||
maat_state_free(&state);
|
||||
}
|
||||
|
||||
TEST(maat_scan_ipv4, hit_ip_cidr_and_port_range) {
|
||||
struct table_schema_manager *table_schema_mgr = g_maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "IP_PLUS_CONFIG");
|
||||
int table_id = table_manager_get_table_id(g_maat_instance->tbl_mgr, "IP_PLUS_CONFIG");
|
||||
char ip_str1[32] = "192.168.0.1";
|
||||
char ip_str2[32] = "192.168.0.0";
|
||||
uint16_t port = 5210;
|
||||
struct addr_4tuple addr;
|
||||
struct addr_2tuple addr;
|
||||
addr.type = IP_TYPE_V4;
|
||||
int ret = inet_pton(AF_INET, ip_str1, &addr.ipv4.sip);
|
||||
EXPECT_EQ(ret, 1);
|
||||
addr.ipv4.sport = htons(port);
|
||||
|
||||
int results[3] = {-1};
|
||||
size_t n_result = 0;
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 1);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 50);
|
||||
maat_state_free(&state);
|
||||
|
||||
ret = inet_pton(AF_INET, ip_str2, &addr.ipv4.sip);
|
||||
EXPECT_EQ(ret, 1);
|
||||
state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 0);
|
||||
EXPECT_EQ(n_hit_result, 0);
|
||||
maat_state_free(&state);
|
||||
}
|
||||
|
||||
TEST(maat_scan_ipv4, hit_ip_cidr_and_port_mask) {
|
||||
struct table_schema_manager *table_schema_mgr = g_maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "IP_PLUS_CONFIG");
|
||||
int table_id = table_manager_get_table_id(g_maat_instance->tbl_mgr, "IP_PLUS_CONFIG");
|
||||
char ip_str[32] = "192.168.40.10";
|
||||
uint16_t port = 443;
|
||||
struct addr_4tuple addr;
|
||||
struct addr_2tuple addr;
|
||||
addr.type = IP_TYPE_V4;
|
||||
int ret = inet_pton(AF_INET, ip_str, &addr.ipv4.sip);
|
||||
EXPECT_EQ(ret, 1);
|
||||
addr.ipv4.sport = htons(port);
|
||||
|
||||
int results[3] = {-1};
|
||||
size_t n_result = 0;
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 2);
|
||||
EXPECT_EQ(n_hit_result, 2);
|
||||
EXPECT_EQ(results[0], 63);
|
||||
EXPECT_EQ(results[1], 67);
|
||||
maat_state_free(&state);
|
||||
|
||||
port = 442;
|
||||
addr.ipv4.sport = htons(port);
|
||||
state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 0);
|
||||
EXPECT_EQ(n_hit_result, 0);
|
||||
maat_state_free(&state);
|
||||
}
|
||||
|
||||
TEST(maat_scan_ipv6, hit_ip_range_and_port_mask) {
|
||||
struct table_schema_manager *table_schema_mgr = g_maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "IP_PLUS_CONFIG");
|
||||
int table_id = table_manager_get_table_id(g_maat_instance->tbl_mgr, "IP_PLUS_CONFIG");
|
||||
char ip_str[32] = "1001:da8:205:1::101";
|
||||
uint16_t port = 5210;
|
||||
struct addr_4tuple addr;
|
||||
struct addr_2tuple addr;
|
||||
addr.type = IP_TYPE_V6;
|
||||
int ret = inet_pton(AF_INET6, ip_str, &addr.ipv6.sip);
|
||||
EXPECT_EQ(ret, 1);
|
||||
addr.ipv6.sport = htons(port);
|
||||
|
||||
int results[3] = {-1};
|
||||
size_t n_result = 0;
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 1);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 47);
|
||||
maat_state_free(&state);
|
||||
|
||||
port = 442;
|
||||
addr.ipv6.sport = htons(port);
|
||||
state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 0);
|
||||
EXPECT_EQ(n_hit_result, 0);
|
||||
maat_state_free(&state);
|
||||
}
|
||||
|
||||
TEST(maat_scan_string, dynamic_config) {
|
||||
struct table_schema_manager *table_schema_mgr = g_maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "HTTP_URL");
|
||||
int table_id = table_manager_get_table_id(g_maat_instance->tbl_mgr, "HTTP_URL");
|
||||
|
||||
char data[128] = "hello world";
|
||||
int results[5] = {0};
|
||||
size_t n_result = 0;
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
int ret = maat_scan_string(g_maat_instance, table_id, 0, data, strlen(data), results, &n_result, &state);
|
||||
int ret = maat_scan_string(g_maat_instance, table_id, 0, data, strlen(data), results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 0);
|
||||
EXPECT_EQ(n_hit_result, 0);
|
||||
maat_state_free(&state);
|
||||
|
||||
const char *table_name = "HTTP_URL";
|
||||
const char *table_line = "9999\t8888\thello world\t0\t0\t0\t1\t";
|
||||
@@ -273,30 +259,29 @@ TEST(maat_scan_string, dynamic_config) {
|
||||
|
||||
sleep(2);
|
||||
state = NULL;
|
||||
ret = maat_scan_string(g_maat_instance, table_id, 0, data, strlen(data), results, &n_result, &state);
|
||||
ret = maat_scan_string(g_maat_instance, table_id, 0, data, strlen(data), results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 1);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 9999);
|
||||
maat_state_free(&state);
|
||||
}
|
||||
|
||||
TEST(maat_scan_ip, dynamic_config) {
|
||||
struct table_schema_manager *table_schema_mgr = g_maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "IP_PLUS_CONFIG");
|
||||
int table_id = table_manager_get_table_id(g_maat_instance->tbl_mgr, "IP_PLUS_CONFIG");
|
||||
|
||||
char ip_str[32] = "10.0.6.201";
|
||||
uint16_t port = 443;
|
||||
struct addr_4tuple addr;
|
||||
struct addr_2tuple addr;
|
||||
addr.type = IP_TYPE_V4;
|
||||
int ret = inet_pton(AF_INET, ip_str, &addr.ipv4.sip);
|
||||
EXPECT_EQ(ret, 1);
|
||||
addr.ipv4.sport = htons(port);
|
||||
|
||||
int results[3] = {-1};
|
||||
size_t n_result = 0;
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 0);
|
||||
EXPECT_EQ(n_hit_result, 0);
|
||||
maat_state_free(&state);
|
||||
|
||||
const char *table_name = "IP_PLUS_CONFIG";
|
||||
const char *table_line = "9998\t8887\t4\trange\t10.0.6.201\t255.255.0.0\trange\t0\t65535\t6\t0\t1";
|
||||
@@ -309,10 +294,11 @@ TEST(maat_scan_ip, dynamic_config) {
|
||||
|
||||
sleep(2);
|
||||
state = NULL;
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, &n_result, &state);
|
||||
ret = maat_scan_ip(g_maat_instance, table_id, 0, &addr, results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result, 1);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 9998);
|
||||
maat_state_free(&state);
|
||||
}
|
||||
|
||||
int count_line_num_cb(const char *table_name, const char *line, void *u_para)
|
||||
@@ -424,7 +410,8 @@ int main(int argc, char ** argv)
|
||||
maat_options_set_logger(opts, logger);
|
||||
|
||||
g_maat_instance = maat_new(opts, table_info_path);
|
||||
|
||||
maat_options_free(opts);
|
||||
|
||||
ret=RUN_ALL_TESTS();
|
||||
|
||||
log_handle_destroy(g_maat_instance->logger);
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
#include "maat/maat.h"
|
||||
#include "maat_utils.h"
|
||||
#include "maat_rule.h"
|
||||
#include "maat_table_schema.h"
|
||||
#include "json2iris.h"
|
||||
#include "maat_config_monitor.h"
|
||||
|
||||
@@ -31,17 +30,19 @@ TEST(json_mode, maat_scan_string) {
|
||||
struct maat *maat_instance = maat_new(opts, table_info_path);
|
||||
EXPECT_NE(maat_instance, nullptr);
|
||||
|
||||
struct table_schema_manager *table_schema_mgr = maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "HTTP_URL");
|
||||
int table_id = table_manager_get_table_id(maat_instance->tbl_mgr, "HTTP_URL");
|
||||
|
||||
char data[128] = "i.ytimg.com";
|
||||
int result_array[5] = {0};
|
||||
size_t n_result_array = 0;
|
||||
int ret = maat_scan_string(maat_instance, table_id, 0, data, strlen(data), result_array, &n_result_array, NULL);
|
||||
char scan_data[128] = "hello";
|
||||
int results[5] = {0};
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
int ret = maat_scan_string(maat_instance, table_id, 0, scan_data, strlen(scan_data), results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result_array, 1);
|
||||
EXPECT_EQ(result_array[0], 30);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 191);
|
||||
|
||||
maat_options_free(opts);
|
||||
maat_state_free(&state);
|
||||
maat_free(maat_instance);
|
||||
}
|
||||
|
||||
@@ -72,17 +73,19 @@ TEST(iris_mode, maat_scan_string) {
|
||||
struct maat *maat_instance = maat_new(opts, table_info_path);
|
||||
EXPECT_NE(maat_instance, nullptr);
|
||||
|
||||
struct table_schema_manager *table_schema_mgr = maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "HTTP_URL");
|
||||
int table_id = table_manager_get_table_id(maat_instance->tbl_mgr, "HTTP_URL");
|
||||
|
||||
char data[128] = "i.ytimg.com";
|
||||
int result_array[5] = {0};
|
||||
size_t n_result_array = 0;
|
||||
int ret = maat_scan_string(maat_instance, table_id, 0, data, strlen(data), result_array, &n_result_array, NULL);
|
||||
char scan_data[128] = "hello";
|
||||
int results[5] = {0};
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
int ret = maat_scan_string(maat_instance, table_id, 0, scan_data, strlen(scan_data), results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result_array, 1);
|
||||
EXPECT_EQ(result_array[0], 30);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 191);
|
||||
|
||||
maat_options_free(opts);
|
||||
maat_state_free(&state);
|
||||
maat_free(maat_instance);
|
||||
}
|
||||
|
||||
@@ -190,17 +193,19 @@ TEST(redis_mode, maat_scan_string) {
|
||||
maat_options_set_logger(opts, logger);
|
||||
|
||||
struct maat *maat_instance = maat_new(opts, table_info_path);
|
||||
struct table_schema_manager *table_schema_mgr = maat_instance->table_schema_mgr;
|
||||
int table_id = table_schema_manager_get_table_id(table_schema_mgr, "HTTP_URL");
|
||||
int table_id = table_manager_get_table_id(maat_instance->tbl_mgr "HTTP_URL");
|
||||
|
||||
char data[128] = "i.ytimg.com";
|
||||
int result_array[5] = {0};
|
||||
size_t n_result_array = 0;
|
||||
int ret = maat_scan_string(maat_instance, table_id, 0, data, strlen(data), result_array, &n_result_array, NULL);
|
||||
char scan_data[128] = "hello";
|
||||
int results[5] = {0};
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
int ret = maat_scan_string(maat_instance, table_id, 0, scan_data, strlen(scan_data), results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, 0);
|
||||
EXPECT_EQ(n_result_array, 1);
|
||||
EXPECT_EQ(result_array[0], 30);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 191);
|
||||
|
||||
maat_options_free(opts);
|
||||
maat_state_free(&state);
|
||||
log_handle_destroy(maat_instance->logger);
|
||||
maat_free(maat_instance);
|
||||
}
|
||||
|
||||
@@ -2283,6 +2283,32 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"compile_id": 191,
|
||||
"service": 1,
|
||||
"action": 1,
|
||||
"do_blacklist": 1,
|
||||
"do_log": 1,
|
||||
"user_region": "anything",
|
||||
"is_valid": "yes",
|
||||
"groups": [
|
||||
{
|
||||
"group_name": "Untitled",
|
||||
"regions": [
|
||||
{
|
||||
"table_name": "HTTP_URL",
|
||||
"table_type": "expr",
|
||||
"table_content": {
|
||||
"keywords": "hello",
|
||||
"expr_type": "none",
|
||||
"match_method": "sub",
|
||||
"format": "uncase plain"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"plugin_table": [
|
||||
|
||||
@@ -1,50 +1,123 @@
|
||||
[
|
||||
{
|
||||
"table_id":1,
|
||||
"table_name":"HTTP_URL",
|
||||
"table_type":"expr",
|
||||
"scan_mode":"block",
|
||||
"item_id":1,
|
||||
"group_id":2,
|
||||
"table_name":"COMPILE",
|
||||
"table_type":"compile",
|
||||
"valid_column":8,
|
||||
"custom": {
|
||||
"keywords":3,
|
||||
"expr_type":4,
|
||||
"match_method":5,
|
||||
"is_hexbin":6,
|
||||
"is_valid":7
|
||||
"compile_id":1,
|
||||
"service_id":2,
|
||||
"action":3,
|
||||
"do_blacklist":4,
|
||||
"do_log":5,
|
||||
"tags":6,
|
||||
"user_region":7,
|
||||
"clause_num":9,
|
||||
"evaluation_order":10
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
"table_id":2,
|
||||
"table_name":"IP_PLUGIN_TABLE",
|
||||
"table_type":"ip_plugin",
|
||||
"item_id":1,
|
||||
"table_name":"GROUP2COMPILE",
|
||||
"table_type":"group2compile",
|
||||
"valid_column":3,
|
||||
"custom": {
|
||||
"ip_type":2,
|
||||
"start_ip":3,
|
||||
"end_ip":4,
|
||||
"is_valid":5
|
||||
"associated_compile_table_id":1,
|
||||
"group_id":1,
|
||||
"compile_id":2,
|
||||
"not_flag":4,
|
||||
"virtual_table_name":5,
|
||||
"clause_index":6
|
||||
}
|
||||
},
|
||||
{
|
||||
"table_id":3,
|
||||
"table_name":"PLUGIN_TABLE",
|
||||
"table_type":"plugin",
|
||||
"item_id":1,
|
||||
"table_name":"COMPILE_2",
|
||||
"table_type":"compile",
|
||||
"valid_column":8,
|
||||
"custom": {
|
||||
"key":2,
|
||||
"tag":3,
|
||||
"is_valid":4,
|
||||
"foreign":[6,8,10]
|
||||
"compile_id":1,
|
||||
"service_id":2,
|
||||
"action":3,
|
||||
"do_blacklist":4,
|
||||
"do_log":5,
|
||||
"tags":6,
|
||||
"user_region":7,
|
||||
"clause_num":9,
|
||||
"evaluation_order":10
|
||||
}
|
||||
},
|
||||
{
|
||||
"table_id":4,
|
||||
"table_name":"GROUP2COMPILE_2",
|
||||
"table_type":"group2compile",
|
||||
"associated_compile_table_id":3,
|
||||
"valid_column":3,
|
||||
"custom": {
|
||||
"group_id":1,
|
||||
"compile_id":2,
|
||||
"not_flag":4,
|
||||
"virtual_table_name":5,
|
||||
"clause_index":6
|
||||
}
|
||||
},
|
||||
{
|
||||
"table_id":5,
|
||||
"table_name":"GROUP2GROUP",
|
||||
"table_type":"group2group",
|
||||
"valid_column":3,
|
||||
"custom": {
|
||||
"group_id":1,
|
||||
"superior_group_id":2
|
||||
}
|
||||
},
|
||||
{
|
||||
"table_id":6,
|
||||
"table_name":"HTTP_URL",
|
||||
"table_type":"expr",
|
||||
"valid_column":7,
|
||||
"custom": {
|
||||
"scan_mode":"block",
|
||||
"item_id":1,
|
||||
"group_id":2,
|
||||
"keywords":3,
|
||||
"expr_type":4,
|
||||
"match_method":5,
|
||||
"is_hexbin":6
|
||||
}
|
||||
},
|
||||
{
|
||||
"table_id":7,
|
||||
"table_name":"IP_PLUGIN_TABLE",
|
||||
"table_type":"ip_plugin",
|
||||
"valid_column":5,
|
||||
"custom": {
|
||||
"item_id":1,
|
||||
"ip_type":2,
|
||||
"start_ip":3,
|
||||
"end_ip":4
|
||||
}
|
||||
},
|
||||
{
|
||||
"table_id":8,
|
||||
"table_name":"PLUGIN_TABLE",
|
||||
"table_type":"plugin",
|
||||
"valid_column":4,
|
||||
"custom": {
|
||||
"item_id":1,
|
||||
"key":2,
|
||||
"tag":3,
|
||||
"foreign":[6,8,10]
|
||||
}
|
||||
},
|
||||
{
|
||||
"table_id":9,
|
||||
"table_name":"IP_PLUS_CONFIG",
|
||||
"table_type":"ip_plus",
|
||||
"item_id":1,
|
||||
"group_id":2,
|
||||
"valid_column":18,
|
||||
"custom": {
|
||||
"item_id":1,
|
||||
"group_id":2,
|
||||
"addr_type":3,
|
||||
"saddr_format":4,
|
||||
"sip1":5,
|
||||
@@ -59,108 +132,13 @@
|
||||
"dport1":14,
|
||||
"dport2":15,
|
||||
"proto":16,
|
||||
"direction":17,
|
||||
"is_valid":18
|
||||
}
|
||||
},
|
||||
{
|
||||
"table_id":5,
|
||||
"table_name":"COMPOSITION_IP_SOURCE",
|
||||
"table_type":"virtual",
|
||||
"physical_table":["IP_PLUS_CONFIG"]
|
||||
},
|
||||
{
|
||||
"table_id":6,
|
||||
"table_name":"COMPOSITION_IP_DEST",
|
||||
"table_type":"virtual",
|
||||
"physical_table":["IP_PLUS_CONFIG"]
|
||||
},
|
||||
{
|
||||
"table_id":7,
|
||||
"table_name":"COMPOSITION_IP_SESSION",
|
||||
"table_type":"virtual",
|
||||
"physical_table":["IP_PLUS_CONFIG"]
|
||||
},
|
||||
{
|
||||
"table_id":8,
|
||||
"table_name":"COMPOSITION_IP",
|
||||
"table_type":"composition",
|
||||
"composition_table": {
|
||||
"source": "COMPOSITION_IP_SOURCE",
|
||||
"dest": "COMPOSITION_IP_DEST",
|
||||
"session": "COMPOSITION_IP_SESSION"
|
||||
}
|
||||
},
|
||||
{
|
||||
"table_id":9,
|
||||
"table_name":"COMPILE_1",
|
||||
"table_type":"compile",
|
||||
"custom": {
|
||||
"compile_id":1,
|
||||
"service_id":2,
|
||||
"action":3,
|
||||
"do_blacklist":4,
|
||||
"do_log":5,
|
||||
"tags":6,
|
||||
"user_region":7,
|
||||
"is_valid":8,
|
||||
"clause_num":9,
|
||||
"evaluation_order":10
|
||||
"direction":17
|
||||
}
|
||||
},
|
||||
{
|
||||
"table_id":10,
|
||||
"table_name":"GROUP2COMPILE_1",
|
||||
"table_type":"group2compile",
|
||||
"associated_compile_table_id":9,
|
||||
"custom": {
|
||||
"group_id":1,
|
||||
"compile_id":2,
|
||||
"is_valid":3,
|
||||
"not_flag":4,
|
||||
"virtual_table_name":5,
|
||||
"clause_index":6
|
||||
}
|
||||
},
|
||||
{
|
||||
"table_id":11,
|
||||
"table_name":"COMPILE_2",
|
||||
"table_type":"compile",
|
||||
"custom": {
|
||||
"compile_id":1,
|
||||
"service_id":2,
|
||||
"action":3,
|
||||
"do_blacklist":4,
|
||||
"do_log":5,
|
||||
"tags":6,
|
||||
"user_region":7,
|
||||
"is_valid":8,
|
||||
"clause_num":9,
|
||||
"evaluation_order":10
|
||||
}
|
||||
},
|
||||
{
|
||||
"table_id":12,
|
||||
"table_name":"GROUP2COMPILE_2",
|
||||
"table_type":"group2compile",
|
||||
"associated_compile_table_id":11,
|
||||
"custom": {
|
||||
"group_id":1,
|
||||
"compile_id":2,
|
||||
"is_valid":3,
|
||||
"not_flag":4,
|
||||
"virtual_table_name":5,
|
||||
"clause_index":6
|
||||
}
|
||||
},
|
||||
{
|
||||
"table_id":13,
|
||||
"table_name":"GROUP2GROUP",
|
||||
"table_type":"group2group",
|
||||
"custom": {
|
||||
"group_id":1,
|
||||
"superior_group_id":2,
|
||||
"is_valid":3
|
||||
}
|
||||
"table_name":"VIRTUAL_IP_PLUS_TABLE",
|
||||
"table_type":"virtual",
|
||||
"physical_table": ["IP_PLUS_CONFIG"]
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user