summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs55
1 files changed, 52 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs
index ed9ff0a..5cba62d 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,7 +1,56 @@
-use maat_rust_binding::bindings;
+pub mod bindings;
+
+use crate::bindings::MAAT_SCAN_HIT;
+use std::ffi::CString;
+
+const ARRAY_SIZE: usize = 10;
+
+pub fn maat_hs_string_scan() {
+ let redis_ip = CString::new("127.0.0.1").unwrap();
+ let redis_port = 6379;
+ let redis_db = 0;
+ let log_path = CString::new("./maat_framework_gtest.log").unwrap();
+ let log_level = bindings::LOG_LEVEL_INFO;
+ let table_info_path = CString::new("./table_info.conf").unwrap();
-fn main() {
unsafe {
- let _opts = bindings::maat_options_new();
+ let opts = bindings::maat_options_new();
+ bindings::maat_options_set_redis(opts, redis_ip.as_ptr(), redis_port, redis_db);
+ bindings::maat_options_set_logger(opts, log_path.as_ptr(), log_level);
+
+ let maat_inst = bindings::maat_new(opts, table_info_path.as_ptr());
+ bindings::maat_options_free(opts);
+
+ let table_name = CString::new("HTTP_URL").unwrap();
+ let table_id = bindings::maat_get_table_id(maat_inst, table_name.as_ptr());
+ assert_ne!(table_id, 0);
+
+ let mut results: [bindings::CLongLong; ARRAY_SIZE] = [-1; ARRAY_SIZE];
+ let mut n_hit_result: usize = 0;
+ let thread_id = 0;
+ let state = bindings::maat_state_new(maat_inst, thread_id);
+ let scan_data = CString::new("http://www.cyberessays.com/search_results.php?action=search&query=username,abckkk,1234567").unwrap();
+
+ let n_hit_result_ptr = &mut n_hit_result as *mut usize;
+
+ let ret = bindings::maat_scan_string(
+ maat_inst,
+ table_id,
+ scan_data.as_ptr(),
+ scan_data.as_bytes().len(),
+ results.as_mut_ptr(),
+ ARRAY_SIZE,
+ n_hit_result_ptr,
+ state,
+ );
+
+ assert_eq!(ret, MAAT_SCAN_HIT);
+ assert_eq!(n_hit_result, 1);
+ assert_eq!(results[0], 125);
+ bindings::maat_state_free(state);
+ println!("hit compile_id:{}", results[0]);
}
}
+fn main() {
+ crate::maat_hs_string_scan();
+}