Loading src/common/log.c +4 −4 Original line number Diff line number Diff line Loading @@ -54,10 +54,10 @@ /** Defining compile-time constants for Tor log levels (used by the Rust * log wrapper at src/rust/tor_log) */ const int _LOG_WARN = LOG_WARN; const int _LOG_NOTICE = LOG_NOTICE; const log_domain_mask_t _LD_GENERAL = LD_GENERAL; const log_domain_mask_t _LD_NET = LD_NET; const int LOG_WARN_ = LOG_WARN; const int LOG_NOTICE_ = LOG_NOTICE; const log_domain_mask_t LD_GENERAL_ = LD_GENERAL; const log_domain_mask_t LD_NET_ = LD_NET; /** Information for a single logfile; only used in log.c */ typedef struct logfile_t { Loading src/common/torlog.h +4 −4 Original line number Diff line number Diff line Loading @@ -36,10 +36,10 @@ * * C_RUST_COUPLED src/rust/tor_log LogSeverity, LogDomain */ extern const int _LOG_WARN; extern const int _LOG_NOTICE; extern const log_domain_mask_t _LD_NET; extern const log_domain_mask_t _LD_GENERAL; extern const int LOG_WARN_; extern const int LOG_NOTICE_; extern const log_domain_mask_t LD_NET_; extern const log_domain_mask_t LD_GENERAL_; /** Debug-level severity: for hyper-verbose messages of no interest to * anybody but developers. */ Loading src/or/main.c +2 −2 Original line number Diff line number Diff line Loading @@ -132,7 +132,7 @@ void evdns_shutdown(int); #ifdef HAVE_RUST // helper function defined in Rust to output a log message indicating if tor is // running with Rust enabled. See src/rust/tor_util void rust_welcome_string(void); void rust_log_welcome_string(void); #endif /********* PROTOTYPES **********/ Loading Loading @@ -3283,7 +3283,7 @@ tor_init(int argc, char *argv[]) } #ifdef HAVE_RUST rust_welcome_string(); rust_log_welcome_string(); #endif /* defined(HAVE_RUST) */ if (network_init()<0) { Loading src/rust/protover/protover.rs +4 −4 Original line number Diff line number Diff line Loading @@ -243,11 +243,11 @@ fn contains_only_supported_protocols(proto_entry: &str) -> bool { Err("Too many versions to expand") => { tor_log_msg!( LogSeverity::Warn, LogDomain::LdNet, LogDomain::Net, "get_versions", "When expanding a protocol list from an authority, I got too many protocols. This is possibly an attack or a bug, unless the Tor network truly has expanded to support over {} "When expanding a protocol list from an authority, I \ got too many protocols. This is possibly an attack or a bug, \ unless the Tor network truly has expanded to support over {} \ different subprotocol versions. The offending string was: {}", MAX_PROTOCOLS_TO_EXPAND, proto_entry Loading src/rust/tor_log/tor_log.rs +47 −12 Original line number Diff line number Diff line Loading @@ -9,8 +9,8 @@ /// general messages can use LdGeneral. #[derive(Eq, PartialEq)] pub enum LogDomain { LdNet, LdGeneral, Net, General, } /// The severity level at which to log messages. Loading Loading @@ -98,33 +98,35 @@ pub mod log { /// C_RUST_COUPLED: src/common/log.c, log domain types extern "C" { #[no_mangle] static _LOG_WARN: c_int; static _LOG_NOTICE: c_int; static LOG_WARN_: c_int; static LOG_NOTICE_: c_int; } /// Domain log types. These mirror definitions in /src/common/torlog.h /// C_RUST_COUPLED: src/common/log.c, log severity types extern "C" { #[no_mangle] static _LD_NET: u32; static _LD_GENERAL: u32; static LD_NET_: u32; static LD_GENERAL_: u32; } /// Translate Rust defintions of log domain levels to C. This exposes a 1:1 /// mapping between types. #[inline] pub unsafe fn translate_domain(domain: LogDomain) -> u32 { match domain { LogDomain::LdNet => _LD_NET, LogDomain::LdGeneral => _LD_GENERAL, LogDomain::Net => LD_NET_, LogDomain::General => LD_GENERAL_, } } /// Translate Rust defintions of log severity levels to C. This exposes a /// 1:1 mapping between types. #[inline] pub unsafe fn translate_severity(severity: LogSeverity) -> c_int { match severity { LogSeverity::Warn => _LOG_WARN, LogSeverity::Notice => _LOG_NOTICE, LogSeverity::Warn => LOG_WARN_, LogSeverity::Notice => LOG_NOTICE_, } } Loading Loading @@ -194,7 +196,7 @@ mod test { fn test_macro() { tor_log_msg!( LogSeverity::Warn, LogDomain::LdNet, LogDomain::Net, "test_macro", "test log message {}", "a", Loading @@ -210,11 +212,12 @@ mod test { assert_eq!("test log message a", *message); } // test multiple inputs into the log message { fn test_macro() { tor_log_msg!( LogSeverity::Warn, LogDomain::LdNet, LogDomain::Net, "next_test_macro", "test log message {} {} {} {} {}", 1, Loading @@ -233,5 +236,37 @@ mod test { let message = unsafe { Box::from_raw(LAST_LOGGED_MESSAGE) }; assert_eq!("test log message 1 2 3 4 5", *message); } // test how a long log message will be formatted { fn test_macro() { tor_log_msg!( LogSeverity::Warn, LogDomain::Net, "test_macro", "{}", "All the world's a stage, and all the men and women \ merely players: they have their exits and their \ entrances; and one man in his time plays many parts, his \ acts being seven ages." ); } test_macro(); let expected_string = "All the world's a \ stage, and all the men \ and women merely players: \ they have their exits and \ their entrances; and one man \ in his time plays many parts, \ his acts being seven ages."; let function = unsafe { Box::from_raw(LAST_LOGGED_FUNCTION) }; assert_eq!("test_macro", *function); let message = unsafe { Box::from_raw(LAST_LOGGED_MESSAGE) }; assert_eq!(expected_string, *message); } } } Loading
src/common/log.c +4 −4 Original line number Diff line number Diff line Loading @@ -54,10 +54,10 @@ /** Defining compile-time constants for Tor log levels (used by the Rust * log wrapper at src/rust/tor_log) */ const int _LOG_WARN = LOG_WARN; const int _LOG_NOTICE = LOG_NOTICE; const log_domain_mask_t _LD_GENERAL = LD_GENERAL; const log_domain_mask_t _LD_NET = LD_NET; const int LOG_WARN_ = LOG_WARN; const int LOG_NOTICE_ = LOG_NOTICE; const log_domain_mask_t LD_GENERAL_ = LD_GENERAL; const log_domain_mask_t LD_NET_ = LD_NET; /** Information for a single logfile; only used in log.c */ typedef struct logfile_t { Loading
src/common/torlog.h +4 −4 Original line number Diff line number Diff line Loading @@ -36,10 +36,10 @@ * * C_RUST_COUPLED src/rust/tor_log LogSeverity, LogDomain */ extern const int _LOG_WARN; extern const int _LOG_NOTICE; extern const log_domain_mask_t _LD_NET; extern const log_domain_mask_t _LD_GENERAL; extern const int LOG_WARN_; extern const int LOG_NOTICE_; extern const log_domain_mask_t LD_NET_; extern const log_domain_mask_t LD_GENERAL_; /** Debug-level severity: for hyper-verbose messages of no interest to * anybody but developers. */ Loading
src/or/main.c +2 −2 Original line number Diff line number Diff line Loading @@ -132,7 +132,7 @@ void evdns_shutdown(int); #ifdef HAVE_RUST // helper function defined in Rust to output a log message indicating if tor is // running with Rust enabled. See src/rust/tor_util void rust_welcome_string(void); void rust_log_welcome_string(void); #endif /********* PROTOTYPES **********/ Loading Loading @@ -3283,7 +3283,7 @@ tor_init(int argc, char *argv[]) } #ifdef HAVE_RUST rust_welcome_string(); rust_log_welcome_string(); #endif /* defined(HAVE_RUST) */ if (network_init()<0) { Loading
src/rust/protover/protover.rs +4 −4 Original line number Diff line number Diff line Loading @@ -243,11 +243,11 @@ fn contains_only_supported_protocols(proto_entry: &str) -> bool { Err("Too many versions to expand") => { tor_log_msg!( LogSeverity::Warn, LogDomain::LdNet, LogDomain::Net, "get_versions", "When expanding a protocol list from an authority, I got too many protocols. This is possibly an attack or a bug, unless the Tor network truly has expanded to support over {} "When expanding a protocol list from an authority, I \ got too many protocols. This is possibly an attack or a bug, \ unless the Tor network truly has expanded to support over {} \ different subprotocol versions. The offending string was: {}", MAX_PROTOCOLS_TO_EXPAND, proto_entry Loading
src/rust/tor_log/tor_log.rs +47 −12 Original line number Diff line number Diff line Loading @@ -9,8 +9,8 @@ /// general messages can use LdGeneral. #[derive(Eq, PartialEq)] pub enum LogDomain { LdNet, LdGeneral, Net, General, } /// The severity level at which to log messages. Loading Loading @@ -98,33 +98,35 @@ pub mod log { /// C_RUST_COUPLED: src/common/log.c, log domain types extern "C" { #[no_mangle] static _LOG_WARN: c_int; static _LOG_NOTICE: c_int; static LOG_WARN_: c_int; static LOG_NOTICE_: c_int; } /// Domain log types. These mirror definitions in /src/common/torlog.h /// C_RUST_COUPLED: src/common/log.c, log severity types extern "C" { #[no_mangle] static _LD_NET: u32; static _LD_GENERAL: u32; static LD_NET_: u32; static LD_GENERAL_: u32; } /// Translate Rust defintions of log domain levels to C. This exposes a 1:1 /// mapping between types. #[inline] pub unsafe fn translate_domain(domain: LogDomain) -> u32 { match domain { LogDomain::LdNet => _LD_NET, LogDomain::LdGeneral => _LD_GENERAL, LogDomain::Net => LD_NET_, LogDomain::General => LD_GENERAL_, } } /// Translate Rust defintions of log severity levels to C. This exposes a /// 1:1 mapping between types. #[inline] pub unsafe fn translate_severity(severity: LogSeverity) -> c_int { match severity { LogSeverity::Warn => _LOG_WARN, LogSeverity::Notice => _LOG_NOTICE, LogSeverity::Warn => LOG_WARN_, LogSeverity::Notice => LOG_NOTICE_, } } Loading Loading @@ -194,7 +196,7 @@ mod test { fn test_macro() { tor_log_msg!( LogSeverity::Warn, LogDomain::LdNet, LogDomain::Net, "test_macro", "test log message {}", "a", Loading @@ -210,11 +212,12 @@ mod test { assert_eq!("test log message a", *message); } // test multiple inputs into the log message { fn test_macro() { tor_log_msg!( LogSeverity::Warn, LogDomain::LdNet, LogDomain::Net, "next_test_macro", "test log message {} {} {} {} {}", 1, Loading @@ -233,5 +236,37 @@ mod test { let message = unsafe { Box::from_raw(LAST_LOGGED_MESSAGE) }; assert_eq!("test log message 1 2 3 4 5", *message); } // test how a long log message will be formatted { fn test_macro() { tor_log_msg!( LogSeverity::Warn, LogDomain::Net, "test_macro", "{}", "All the world's a stage, and all the men and women \ merely players: they have their exits and their \ entrances; and one man in his time plays many parts, his \ acts being seven ages." ); } test_macro(); let expected_string = "All the world's a \ stage, and all the men \ and women merely players: \ they have their exits and \ their entrances; and one man \ in his time plays many parts, \ his acts being seven ages."; let function = unsafe { Box::from_raw(LAST_LOGGED_FUNCTION) }; assert_eq!("test_macro", *function); let message = unsafe { Box::from_raw(LAST_LOGGED_MESSAGE) }; assert_eq!(expected_string, *message); } } }