rust: add C callback for FatalErrorOnInit

pull/12584/head
Shivani Bhardwaj 11 months ago committed by Victor Julien
parent 0ce8b15ca8
commit 015da2c7ed

@ -20,12 +20,19 @@
use std::{ffi::CString, path::Path};
use crate::core::SC;
use std::os::raw::c_char;
/// cbindgen:ignore
extern {
extern "C" {
pub fn SCLogGetLogLevel() -> i32;
}
// Defined in util-debug.c
/// cbindgen:ignore
extern "C" {
pub fn SCFatalErrorOnInitStatic(arg: *const c_char);
}
#[derive(Debug)]
#[repr(C)]
pub enum Level {
@ -62,6 +69,12 @@ fn basename(filename: &str) -> &str {
return filename;
}
pub fn fatalerror(message: &str) {
unsafe {
SCFatalErrorOnInitStatic(to_safe_cstring(message).as_ptr());
}
}
pub fn sclog(level: Level, file: &str, line: u32, function: &str, message: &str) {
let filename = basename(file);
let noext = &filename[0..filename.len() - 3];
@ -203,13 +216,19 @@ macro_rules! SCLogDebug {
($($arg:tt)*) => {};
}
#[macro_export]
macro_rules!SCFatalErrorOnInit {
($($arg:tt)*) => {
$crate::debug::fatalerror(&format!($($arg)*));
}
}
#[cfg(not(feature = "debug-validate"))]
#[macro_export]
macro_rules! debug_validate_bug_on (
($item:expr) => {};
);
#[cfg(feature = "debug-validate")]
#[macro_export]
macro_rules! debug_validate_bug_on (

@ -1614,6 +1614,11 @@ void SCLogDeInitLogModule(void)
#endif /* OS_WIN32 */
}
void SCFatalErrorOnInitStatic(const char *arg)
{
FatalErrorOnInit("%s", arg);
}
//------------------------------------Unit_Tests--------------------------------
/* The logging engine should be tested to the maximum extent possible, since

@ -530,6 +530,8 @@ SCLogInitData *SCLogAllocLogInitData(void);
void SCLogAppendOPIfaceCtx(SCLogOPIfaceCtx *, SCLogInitData *);
void SCFatalErrorOnInitStatic(const char *);
void SCLogInitLogModule(SCLogInitData *);
void SCLogDeInitLogModule(void);

Loading…
Cancel
Save