From: Jason Ish Date: Mon, 17 Aug 2020 16:36:19 +0000 (-0600) Subject: rust/logging: allow log macros to be used by plugins X-Git-Tag: suricata-6.0.0-rc1~80 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ac93ab281d38d0b28c81349a971dce57782cefa1;p=thirdparty%2Fsuricata.git rust/logging: allow log macros to be used by plugins Fix plugin macros so they can be used by external Rust crates such as plugins. --- diff --git a/rust/src/applayertemplate/template.rs b/rust/src/applayertemplate/template.rs index a9b9f0ecb5..c1c1d656b7 100644 --- a/rust/src/applayertemplate/template.rs +++ b/rust/src/applayertemplate/template.rs @@ -17,7 +17,6 @@ use std; use crate::core::{self, ALPROTO_UNKNOWN, AppProto, Flow, IPPROTO_TCP}; -use crate::log::*; use std::mem::transmute; use crate::applayer::{self, *}; use std::ffi::CString; diff --git a/rust/src/asn1/parse_rules.rs b/rust/src/asn1/parse_rules.rs index 1d7c739dc8..49547b9f45 100644 --- a/rust/src/asn1/parse_rules.rs +++ b/rust/src/asn1/parse_rules.rs @@ -15,7 +15,6 @@ * 02110-1301, USA. */ -use crate::log::*; use nom::branch::alt; use nom::bytes::complete::tag; use nom::character::complete::{digit1, multispace0, multispace1}; diff --git a/rust/src/conf.rs b/rust/src/conf.rs index e5b40f8447..b85eb54a43 100644 --- a/rust/src/conf.rs +++ b/rust/src/conf.rs @@ -22,8 +22,6 @@ use std::ffi::{CString, CStr}; use std::ptr; use std::str; -use crate::log::*; - extern { fn ConfGet(key: *const c_char, res: *mut *const c_char) -> i8; fn ConfGetChildValue(conf: *const c_void, key: *const c_char, diff --git a/rust/src/dcerpc/dcerpc.rs b/rust/src/dcerpc/dcerpc.rs index edb2d7e6ae..54f2302477 100644 --- a/rust/src/dcerpc/dcerpc.rs +++ b/rust/src/dcerpc/dcerpc.rs @@ -19,7 +19,6 @@ use std::mem::transmute; use crate::applayer::{AppLayerResult, AppLayerTxData}; use crate::core; use crate::dcerpc::parser; -use crate::log::*; use nom::error::ErrorKind; use nom::number::Endianness; use nom; diff --git a/rust/src/dcerpc/dcerpc_udp.rs b/rust/src/dcerpc/dcerpc_udp.rs index cd168408c8..798eb80991 100644 --- a/rust/src/dcerpc/dcerpc_udp.rs +++ b/rust/src/dcerpc/dcerpc_udp.rs @@ -23,7 +23,6 @@ use crate::dcerpc::dcerpc::{ DCERPCTransaction, DCERPCUuidEntry, DCERPC_TYPE_REQUEST, DCERPC_TYPE_RESPONSE, PFC_FIRST_FRAG, }; use crate::dcerpc::parser; -use crate::log::*; use std::cmp; // Constant DCERPC UDP Header length diff --git a/rust/src/dcerpc/detect.rs b/rust/src/dcerpc/detect.rs index a7edeaccbb..7e1296c3ae 100644 --- a/rust/src/dcerpc/detect.rs +++ b/rust/src/dcerpc/detect.rs @@ -19,7 +19,6 @@ use super::dcerpc::{ DCERPCState, DCERPCTransaction, DCERPC_TYPE_REQUEST, DCERPC_TYPE_RESPONSE, DCERPC_UUID_ENTRY_FLAG_FF, }; -use crate::log::*; use std::ffi::CStr; use std::os::raw::{c_char, c_void}; use uuid::Uuid; diff --git a/rust/src/dcerpc/parser.rs b/rust/src/dcerpc/parser.rs index a7552a40cf..e3f40ff3d9 100644 --- a/rust/src/dcerpc/parser.rs +++ b/rust/src/dcerpc/parser.rs @@ -18,7 +18,6 @@ use crate::dcerpc::dcerpc::{ BindCtxItem, DCERPCBind, DCERPCBindAck, DCERPCBindAckResult, DCERPCHdr, DCERPCRequest, Uuid, }; use crate::dcerpc::dcerpc_udp::DCERPCHdrUdp; -use crate::log::*; use nom::number::complete::{le_u16, le_u32, le_u8}; use nom::number::Endianness; diff --git a/rust/src/dhcp/dhcp.rs b/rust/src/dhcp/dhcp.rs index 32e72e8de7..75ee8a9ed5 100644 --- a/rust/src/dhcp/dhcp.rs +++ b/rust/src/dhcp/dhcp.rs @@ -20,7 +20,6 @@ use crate::core; use crate::core::{ALPROTO_UNKNOWN, AppProto, Flow, IPPROTO_UDP}; use crate::core::{sc_detect_engine_state_free, sc_app_layer_decoder_events_free_events}; use crate::dhcp::parser::*; -use crate::log::*; use std; use std::ffi::{CStr,CString}; use std::mem::transmute; diff --git a/rust/src/dns/dns.rs b/rust/src/dns/dns.rs index ff2284c760..0dd8baa772 100644 --- a/rust/src/dns/dns.rs +++ b/rust/src/dns/dns.rs @@ -23,7 +23,6 @@ use std::mem::transmute; use std::collections::HashMap; use std::collections::VecDeque; -use crate::log::*; use crate::applayer::*; use crate::core::{self, AppProto, ALPROTO_UNKNOWN, IPPROTO_UDP, IPPROTO_TCP}; use crate::dns::parser; diff --git a/rust/src/filecontainer.rs b/rust/src/filecontainer.rs index 6f67d88b94..7b870e5162 100644 --- a/rust/src/filecontainer.rs +++ b/rust/src/filecontainer.rs @@ -18,7 +18,6 @@ use std::ptr; use std::os::raw::{c_void}; -use crate::log::*; use crate::core::*; // Defined in util-file.h diff --git a/rust/src/filetracker.rs b/rust/src/filetracker.rs index 1f6534196f..667f8c4931 100644 --- a/rust/src/filetracker.rs +++ b/rust/src/filetracker.rs @@ -28,7 +28,6 @@ * The tracker does continue to follow the file. */ -use crate::log::*; use crate::core::*; use std::collections::HashMap; use std::collections::hash_map::Entry::{Occupied, Vacant}; diff --git a/rust/src/ftp/mod.rs b/rust/src/ftp/mod.rs index 76b4910e1c..2a40d7f594 100644 --- a/rust/src/ftp/mod.rs +++ b/rust/src/ftp/mod.rs @@ -22,8 +22,6 @@ use std::str; use std; use std::str::FromStr; -use crate::log::*; - // We transform an integer string into a i64, ignoring surrounding whitespaces // We look for a digit suite, and try to convert it. // If either str::from_utf8 or FromStr::from_str fail, diff --git a/rust/src/http2/http2.rs b/rust/src/http2/http2.rs index f85a9fda3d..2c9d28e5c9 100644 --- a/rust/src/http2/http2.rs +++ b/rust/src/http2/http2.rs @@ -24,7 +24,6 @@ use crate::core::{ }; use crate::filecontainer::*; use crate::filetracker::*; -use crate::log::*; use nom; use std; use std::ffi::{CStr, CString}; diff --git a/rust/src/ikev2/ikev2.rs b/rust/src/ikev2/ikev2.rs index e1fbac57eb..82717b0a19 100644 --- a/rust/src/ikev2/ikev2.rs +++ b/rust/src/ikev2/ikev2.rs @@ -25,8 +25,6 @@ use crate::applayer::{self, *}; use std; use std::ffi::{CStr,CString}; -use crate::log::*; - use nom; #[repr(u32)] diff --git a/rust/src/kerberos.rs b/rust/src/kerberos.rs index c5730bd3bb..6fb7e0d173 100644 --- a/rust/src/kerberos.rs +++ b/rust/src/kerberos.rs @@ -25,8 +25,6 @@ use der_parser; use der_parser::error::BerError; use der_parser::der::parse_der_oid; -use crate::log::*; - #[derive(Debug)] pub enum SecBlobError { NotSpNego, diff --git a/rust/src/krb/krb5.rs b/rust/src/krb/krb5.rs index 5e45505775..ef2a928e83 100644 --- a/rust/src/krb/krb5.rs +++ b/rust/src/krb/krb5.rs @@ -30,8 +30,6 @@ use crate::applayer::{self, *}; use crate::core; use crate::core::{AppProto,Flow,ALPROTO_FAILED,ALPROTO_UNKNOWN,STREAM_TOCLIENT,STREAM_TOSERVER,sc_detect_engine_state_free}; -use crate::log::*; - #[repr(u32)] pub enum KRB5Event { MalformedData = 0, diff --git a/rust/src/log.rs b/rust/src/log.rs index 16f9aeab22..a7dcc73683 100644 --- a/rust/src/log.rs +++ b/rust/src/log.rs @@ -70,6 +70,7 @@ pub fn sclog(level: Level, file: &str, line: u32, function: &str, /// Return the function name, but for now just return as Rust /// has no macro to return the function name, but may in the future, /// see: https://github.com/rust-lang/rfcs/pull/1719 +#[macro_export(local_inner_macros)] macro_rules!function { () => {{ "" }} } @@ -78,8 +79,8 @@ macro_rules!function { macro_rules!do_log { ($level:expr, $file:expr, $line:expr, $function:expr, $code:expr, $($arg:tt)*) => { - if get_log_level() >= $level as i32 { - sclog($level, $file, $line, $function, $code, + if $crate::log::get_log_level() >= $level as i32 { + $crate::log::sclog($level, $file, $line, $function, $code, &(format!($($arg)*))); } } @@ -88,35 +89,35 @@ macro_rules!do_log { #[macro_export] macro_rules!SCLogNotice { ($($arg:tt)*) => { - do_log!(Level::Notice, file!(), line!(), function!(), 0, $($arg)*); + $crate::do_log!($crate::log::Level::Notice, file!(), line!(), $crate::function!(), 0, $($arg)*); } } #[macro_export] macro_rules!SCLogInfo { ($($arg:tt)*) => { - do_log!(Level::Info, file!(), line!(), function!(), 0, $($arg)*); + $crate::do_log!($crate::log::Level::Info, file!(), line!(), $crate::function!(), 0, $($arg)*); } } #[macro_export] macro_rules!SCLogPerf { ($($arg:tt)*) => { - do_log!(Level::Perf, file!(), line!(), function!(), 0, $($arg)*); + $crate::do_log!($crate::log::Level::Perf, file!(), line!(), $crate::function!(), 0, $($arg)*); } } #[macro_export] macro_rules!SCLogConfig { ($($arg:tt)*) => { - do_log!(Level::Config, file!(), line!(), function!(), 0, $($arg)*); + $crate::do_log!($crate::log::Level::Config, file!(), line!(), $crate::function!(), 0, $($arg)*); } } #[macro_export] macro_rules!SCLogError { ($($arg:tt)*) => { - do_log!(Level::Error, file!(), line!(), function!(), 0, $($arg)*); + $crate::do_log!($crate::log::Level::Error, file!(), line!(), $crate::function!(), 0, $($arg)*); } } @@ -125,7 +126,7 @@ macro_rules!SCLogError { #[macro_export] macro_rules!SCLogDebug { ($($arg:tt)*) => { - do_log!(Level::Debug, file!(), line!(), function!(), 0, $($arg)*); + do_log!($crate::log::Level::Debug, file!(), line!(), $crate::function!(), 0, $($arg)*); } } @@ -134,7 +135,7 @@ macro_rules!SCLogDebug { #[cfg(not(feature = "debug"))] #[macro_export] macro_rules!SCLogDebug { - ($last:expr) => { let _ = &$last; let _ = Level::Debug; }; + ($last:expr) => { let _ = &$last; let _ = $crate::log::Level::Debug; }; ($one:expr, $($arg:tt)*) => { let _ = &$one; SCLogDebug!($($arg)*); }; } diff --git a/rust/src/mqtt/mqtt.rs b/rust/src/mqtt/mqtt.rs index bb60970c80..7c5643fc35 100644 --- a/rust/src/mqtt/mqtt.rs +++ b/rust/src/mqtt/mqtt.rs @@ -22,7 +22,6 @@ use super::parser::*; use crate::applayer::{self, LoggerFlags}; use crate::applayer::*; use crate::core::{self, AppProto, Flow, ALPROTO_FAILED, ALPROTO_UNKNOWN, IPPROTO_TCP}; -use crate::log::*; use num_traits::FromPrimitive; use nom; use std; diff --git a/rust/src/nfs/nfs.rs b/rust/src/nfs/nfs.rs index ccbf45e287..8b65c792c2 100644 --- a/rust/src/nfs/nfs.rs +++ b/rust/src/nfs/nfs.rs @@ -25,7 +25,6 @@ use std::ffi::CStr; use nom; -use crate::log::*; use crate::applayer; use crate::applayer::{AppLayerResult, AppLayerTxData}; use crate::core::*; diff --git a/rust/src/nfs/nfs2.rs b/rust/src/nfs/nfs2.rs index ba7defd524..44a49ead4b 100644 --- a/rust/src/nfs/nfs2.rs +++ b/rust/src/nfs/nfs2.rs @@ -17,8 +17,6 @@ // written by Victor Julien -use crate::log::*; - use crate::nfs::nfs::*; use crate::nfs::types::*; use crate::nfs::rpc_records::*; diff --git a/rust/src/nfs/nfs3.rs b/rust/src/nfs/nfs3.rs index bd3461b1d2..f910b8a919 100644 --- a/rust/src/nfs/nfs3.rs +++ b/rust/src/nfs/nfs3.rs @@ -17,7 +17,6 @@ // written by Victor Julien -use crate::log::*; use crate::core::*; use crate::nfs::nfs::*; diff --git a/rust/src/nfs/nfs4.rs b/rust/src/nfs/nfs4.rs index be12b2ca6a..eb6620b3d5 100644 --- a/rust/src/nfs/nfs4.rs +++ b/rust/src/nfs/nfs4.rs @@ -21,8 +21,6 @@ use nom; use nom::number::streaming::be_u32; use crate::core::*; -use crate::log::*; - use crate::nfs::nfs::*; use crate::nfs::types::*; use crate::nfs::rpc_records::*; diff --git a/rust/src/ntp/ntp.rs b/rust/src/ntp/ntp.rs index 27bf3a6296..8d7d7d609c 100644 --- a/rust/src/ntp/ntp.rs +++ b/rust/src/ntp/ntp.rs @@ -25,8 +25,6 @@ use crate::applayer::{self, *}; use std; use std::ffi::{CStr,CString}; -use crate::log::*; - use nom; #[repr(u32)] diff --git a/rust/src/rfb/rfb.rs b/rust/src/rfb/rfb.rs index 8cb251c724..9cb596790c 100644 --- a/rust/src/rfb/rfb.rs +++ b/rust/src/rfb/rfb.rs @@ -21,7 +21,6 @@ use std; use std::ffi::CString; use std::mem::transmute; use crate::core::{self, ALPROTO_UNKNOWN, AppProto, Flow, IPPROTO_TCP}; -use crate::log::*; use crate::applayer; use crate::applayer::*; use nom; diff --git a/rust/src/sip/sip.rs b/rust/src/sip/sip.rs index eb642d700e..b20735ce85 100755 --- a/rust/src/sip/sip.rs +++ b/rust/src/sip/sip.rs @@ -22,7 +22,6 @@ extern crate nom; use crate::applayer::{self, *}; use crate::core; use crate::core::{sc_detect_engine_state_free, AppProto, Flow, ALPROTO_UNKNOWN}; -use crate::log::*; use crate::sip::parser::*; use std; use std::ffi::{CStr, CString}; diff --git a/rust/src/smb/auth.rs b/rust/src/smb/auth.rs index 5b245d9332..fd7bc27421 100644 --- a/rust/src/smb/auth.rs +++ b/rust/src/smb/auth.rs @@ -17,7 +17,6 @@ use crate::kerberos::*; -use crate::log::*; use crate::smb::ntlmssp_records::*; use crate::smb::smb::*; diff --git a/rust/src/smb/dcerpc.rs b/rust/src/smb/dcerpc.rs index c90a10b64c..d4265834d8 100644 --- a/rust/src/smb/dcerpc.rs +++ b/rust/src/smb/dcerpc.rs @@ -17,7 +17,6 @@ // written by Victor Julien -use crate::log::*; use uuid; use crate::smb::smb::*; use crate::smb::smb2::*; diff --git a/rust/src/smb/debug.rs b/rust/src/smb/debug.rs index 8c2178c255..15d8748c0a 100644 --- a/rust/src/smb/debug.rs +++ b/rust/src/smb/debug.rs @@ -17,9 +17,6 @@ use crate::smb::smb::*; -#[cfg(feature = "debug")] -use crate::log::*; - impl SMBState { #[cfg(not(feature = "debug"))] pub fn _debug_tx_stats(&self) { } diff --git a/rust/src/smb/detect.rs b/rust/src/smb/detect.rs index 96a6a7386c..102b852a10 100644 --- a/rust/src/smb/detect.rs +++ b/rust/src/smb/detect.rs @@ -17,7 +17,6 @@ use std::ptr; use crate::core::*; -use crate::log::*; use crate::smb::smb::*; use crate::dcerpc::detect::{DCEIfaceData, DCEOpnumData, DETECT_DCE_OPNUM_RANGE_UNINITIALIZED}; diff --git a/rust/src/smb/events.rs b/rust/src/smb/events.rs index 3d3ec6adca..31256d3912 100644 --- a/rust/src/smb/events.rs +++ b/rust/src/smb/events.rs @@ -16,7 +16,6 @@ */ use crate::core::*; -use crate::log::*; use crate::smb::smb::*; #[repr(u32)] diff --git a/rust/src/smb/files.rs b/rust/src/smb/files.rs index b8667e3fb8..f1c455fbdb 100644 --- a/rust/src/smb/files.rs +++ b/rust/src/smb/files.rs @@ -16,7 +16,6 @@ */ use crate::core::*; -use crate::log::*; use crate::filetracker::*; use crate::filecontainer::*; diff --git a/rust/src/smb/session.rs b/rust/src/smb/session.rs index 941b9eb300..43883a77d5 100644 --- a/rust/src/smb/session.rs +++ b/rust/src/smb/session.rs @@ -15,7 +15,6 @@ * 02110-1301, USA. */ -use crate::log::*; use crate::kerberos::*; use crate::smb::smb::*; use crate::smb::smb1_session::*; diff --git a/rust/src/smb/smb.rs b/rust/src/smb/smb.rs index 881c356a00..c8874e0d01 100644 --- a/rust/src/smb/smb.rs +++ b/rust/src/smb/smb.rs @@ -35,7 +35,6 @@ use std::collections::HashMap; use nom; use crate::core::*; -use crate::log::*; use crate::applayer; use crate::applayer::{AppLayerResult, AppLayerTxData}; diff --git a/rust/src/smb/smb1.rs b/rust/src/smb/smb1.rs index b4262cf0cc..1c80912a0d 100644 --- a/rust/src/smb/smb1.rs +++ b/rust/src/smb/smb1.rs @@ -22,7 +22,6 @@ use nom; use crate::core::*; -use crate::log::*; use crate::smb::smb::*; use crate::smb::dcerpc::*; diff --git a/rust/src/smb/smb1_records.rs b/rust/src/smb/smb1_records.rs index 7a0cc1e22b..20a4a22e69 100644 --- a/rust/src/smb/smb1_records.rs +++ b/rust/src/smb/smb1_records.rs @@ -16,7 +16,6 @@ */ use crate::smb::error::SmbError; -use crate::log::*; use nom::IResult; use nom::combinator::rest; use nom::number::streaming::{le_u8, le_u16, le_u32, le_u64}; diff --git a/rust/src/smb/smb1_session.rs b/rust/src/smb/smb1_session.rs index 35d6495839..8c9b123974 100644 --- a/rust/src/smb/smb1_session.rs +++ b/rust/src/smb/smb1_session.rs @@ -15,8 +15,6 @@ * 02110-1301, USA. */ -use crate::log::*; - use crate::smb::smb_records::*; use crate::smb::smb1_records::*; use crate::smb::smb::*; diff --git a/rust/src/smb/smb2.rs b/rust/src/smb/smb2.rs index 2fd611482e..b75f2e1131 100644 --- a/rust/src/smb/smb2.rs +++ b/rust/src/smb/smb2.rs @@ -18,7 +18,6 @@ use nom; use crate::core::*; -use crate::log::*; use crate::smb::smb::*; use crate::smb::smb2_records::*; diff --git a/rust/src/smb/smb2_ioctl.rs b/rust/src/smb/smb2_ioctl.rs index 480e8696bd..93e5f381d2 100644 --- a/rust/src/smb/smb2_ioctl.rs +++ b/rust/src/smb/smb2_ioctl.rs @@ -15,7 +15,6 @@ * 02110-1301, USA. */ -use crate::log::*; use crate::smb::smb::*; use crate::smb::smb2::*; use crate::smb::smb2_records::*; diff --git a/rust/src/smb/smb2_session.rs b/rust/src/smb/smb2_session.rs index 91399a5dbc..356c89e4b5 100644 --- a/rust/src/smb/smb2_session.rs +++ b/rust/src/smb/smb2_session.rs @@ -15,8 +15,6 @@ * 02110-1301, USA. */ -use crate::log::*; - use crate::smb::smb2_records::*; use crate::smb::smb::*; //use smb::events::*; diff --git a/rust/src/smb/smb_records.rs b/rust/src/smb/smb_records.rs index 04c971bd69..6080075d36 100644 --- a/rust/src/smb/smb_records.rs +++ b/rust/src/smb/smb_records.rs @@ -18,7 +18,6 @@ use crate::smb::error::SmbError; use nom; use nom::IResult; -use crate::log::*; /// parse a UTF16 string that is null terminated. Normally by 2 null /// bytes, but at the end of the data it can also be a single null. diff --git a/rust/src/snmp/snmp.rs b/rust/src/snmp/snmp.rs index f71da30ab1..cbdf6d2c21 100644 --- a/rust/src/snmp/snmp.rs +++ b/rust/src/snmp/snmp.rs @@ -25,8 +25,6 @@ use std; use std::ffi::{CStr,CString}; use std::mem::transmute; -use crate::log::*; - use der_parser::ber::BerObjectContent; use der_parser::der::parse_der_sequence; use der_parser::oid::Oid; diff --git a/rust/src/ssh/ssh.rs b/rust/src/ssh/ssh.rs index cf0229360e..b4e93e8009 100644 --- a/rust/src/ssh/ssh.rs +++ b/rust/src/ssh/ssh.rs @@ -19,7 +19,6 @@ use super::parser; use crate::applayer::*; use crate::core::STREAM_TOSERVER; use crate::core::{self, AppProto, Flow, ALPROTO_UNKNOWN, IPPROTO_TCP}; -use crate::log::*; use std::ffi::{CStr, CString}; use std::mem::transmute; use std::sync::atomic::{AtomicBool, Ordering};