mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-13 14:43:46 +01:00
fixups from code review
This commit is contained in:
parent
510a91af53
commit
d0184963f9
@ -54,10 +54,10 @@
|
|||||||
|
|
||||||
/** Defining compile-time constants for Tor log levels (used by the Rust
|
/** Defining compile-time constants for Tor log levels (used by the Rust
|
||||||
* log wrapper at src/rust/tor_log) */
|
* log wrapper at src/rust/tor_log) */
|
||||||
const int _LOG_WARN = LOG_WARN;
|
const int LOG_WARN_ = LOG_WARN;
|
||||||
const int _LOG_NOTICE = LOG_NOTICE;
|
const int LOG_NOTICE_ = LOG_NOTICE;
|
||||||
const log_domain_mask_t _LD_GENERAL = LD_GENERAL;
|
const log_domain_mask_t LD_GENERAL_ = LD_GENERAL;
|
||||||
const log_domain_mask_t _LD_NET = LD_NET;
|
const log_domain_mask_t LD_NET_ = LD_NET;
|
||||||
|
|
||||||
/** Information for a single logfile; only used in log.c */
|
/** Information for a single logfile; only used in log.c */
|
||||||
typedef struct logfile_t {
|
typedef struct logfile_t {
|
||||||
|
@ -36,10 +36,10 @@
|
|||||||
*
|
*
|
||||||
* C_RUST_COUPLED src/rust/tor_log LogSeverity, LogDomain
|
* C_RUST_COUPLED src/rust/tor_log LogSeverity, LogDomain
|
||||||
*/
|
*/
|
||||||
extern const int _LOG_WARN;
|
extern const int LOG_WARN_;
|
||||||
extern const int _LOG_NOTICE;
|
extern const int LOG_NOTICE_;
|
||||||
extern const log_domain_mask_t _LD_NET;
|
extern const log_domain_mask_t LD_NET_;
|
||||||
extern const log_domain_mask_t _LD_GENERAL;
|
extern const log_domain_mask_t LD_GENERAL_;
|
||||||
|
|
||||||
/** Debug-level severity: for hyper-verbose messages of no interest to
|
/** Debug-level severity: for hyper-verbose messages of no interest to
|
||||||
* anybody but developers. */
|
* anybody but developers. */
|
||||||
|
@ -132,7 +132,7 @@ void evdns_shutdown(int);
|
|||||||
#ifdef HAVE_RUST
|
#ifdef HAVE_RUST
|
||||||
// helper function defined in Rust to output a log message indicating if tor is
|
// helper function defined in Rust to output a log message indicating if tor is
|
||||||
// running with Rust enabled. See src/rust/tor_util
|
// running with Rust enabled. See src/rust/tor_util
|
||||||
void rust_welcome_string(void);
|
void rust_log_welcome_string(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/********* PROTOTYPES **********/
|
/********* PROTOTYPES **********/
|
||||||
@ -3283,7 +3283,7 @@ tor_init(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_RUST
|
#ifdef HAVE_RUST
|
||||||
rust_welcome_string();
|
rust_log_welcome_string();
|
||||||
#endif /* defined(HAVE_RUST) */
|
#endif /* defined(HAVE_RUST) */
|
||||||
|
|
||||||
if (network_init()<0) {
|
if (network_init()<0) {
|
||||||
|
@ -243,11 +243,11 @@ fn contains_only_supported_protocols(proto_entry: &str) -> bool {
|
|||||||
Err("Too many versions to expand") => {
|
Err("Too many versions to expand") => {
|
||||||
tor_log_msg!(
|
tor_log_msg!(
|
||||||
LogSeverity::Warn,
|
LogSeverity::Warn,
|
||||||
LogDomain::LdNet,
|
LogDomain::Net,
|
||||||
"get_versions",
|
"get_versions",
|
||||||
"When expanding a protocol list from an authority, I
|
"When expanding a protocol list from an authority, I \
|
||||||
got too many protocols. This is possibly an attack or a bug,
|
got too many protocols. This is possibly an attack or a bug, \
|
||||||
unless the Tor network truly has expanded to support over {}
|
unless the Tor network truly has expanded to support over {} \
|
||||||
different subprotocol versions. The offending string was: {}",
|
different subprotocol versions. The offending string was: {}",
|
||||||
MAX_PROTOCOLS_TO_EXPAND,
|
MAX_PROTOCOLS_TO_EXPAND,
|
||||||
proto_entry
|
proto_entry
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
/// general messages can use LdGeneral.
|
/// general messages can use LdGeneral.
|
||||||
#[derive(Eq, PartialEq)]
|
#[derive(Eq, PartialEq)]
|
||||||
pub enum LogDomain {
|
pub enum LogDomain {
|
||||||
LdNet,
|
Net,
|
||||||
LdGeneral,
|
General,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The severity level at which to log messages.
|
/// The severity level at which to log messages.
|
||||||
@ -98,33 +98,35 @@ pub mod log {
|
|||||||
/// C_RUST_COUPLED: src/common/log.c, log domain types
|
/// C_RUST_COUPLED: src/common/log.c, log domain types
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
static _LOG_WARN: c_int;
|
static LOG_WARN_: c_int;
|
||||||
static _LOG_NOTICE: c_int;
|
static LOG_NOTICE_: c_int;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Domain log types. These mirror definitions in /src/common/torlog.h
|
/// Domain log types. These mirror definitions in /src/common/torlog.h
|
||||||
/// C_RUST_COUPLED: src/common/log.c, log severity types
|
/// C_RUST_COUPLED: src/common/log.c, log severity types
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
static _LD_NET: u32;
|
static LD_NET_: u32;
|
||||||
static _LD_GENERAL: u32;
|
static LD_GENERAL_: u32;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Translate Rust defintions of log domain levels to C. This exposes a 1:1
|
/// Translate Rust defintions of log domain levels to C. This exposes a 1:1
|
||||||
/// mapping between types.
|
/// mapping between types.
|
||||||
|
#[inline]
|
||||||
pub unsafe fn translate_domain(domain: LogDomain) -> u32 {
|
pub unsafe fn translate_domain(domain: LogDomain) -> u32 {
|
||||||
match domain {
|
match domain {
|
||||||
LogDomain::LdNet => _LD_NET,
|
LogDomain::Net => LD_NET_,
|
||||||
LogDomain::LdGeneral => _LD_GENERAL,
|
LogDomain::General => LD_GENERAL_,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Translate Rust defintions of log severity levels to C. This exposes a
|
/// Translate Rust defintions of log severity levels to C. This exposes a
|
||||||
/// 1:1 mapping between types.
|
/// 1:1 mapping between types.
|
||||||
|
#[inline]
|
||||||
pub unsafe fn translate_severity(severity: LogSeverity) -> c_int {
|
pub unsafe fn translate_severity(severity: LogSeverity) -> c_int {
|
||||||
match severity {
|
match severity {
|
||||||
LogSeverity::Warn => _LOG_WARN,
|
LogSeverity::Warn => LOG_WARN_,
|
||||||
LogSeverity::Notice => _LOG_NOTICE,
|
LogSeverity::Notice => LOG_NOTICE_,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,7 +196,7 @@ mod test {
|
|||||||
fn test_macro() {
|
fn test_macro() {
|
||||||
tor_log_msg!(
|
tor_log_msg!(
|
||||||
LogSeverity::Warn,
|
LogSeverity::Warn,
|
||||||
LogDomain::LdNet,
|
LogDomain::Net,
|
||||||
"test_macro",
|
"test_macro",
|
||||||
"test log message {}",
|
"test log message {}",
|
||||||
"a",
|
"a",
|
||||||
@ -210,11 +212,12 @@ mod test {
|
|||||||
assert_eq!("test log message a", *message);
|
assert_eq!("test log message a", *message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// test multiple inputs into the log message
|
||||||
{
|
{
|
||||||
fn test_macro() {
|
fn test_macro() {
|
||||||
tor_log_msg!(
|
tor_log_msg!(
|
||||||
LogSeverity::Warn,
|
LogSeverity::Warn,
|
||||||
LogDomain::LdNet,
|
LogDomain::Net,
|
||||||
"next_test_macro",
|
"next_test_macro",
|
||||||
"test log message {} {} {} {} {}",
|
"test log message {} {} {} {} {}",
|
||||||
1,
|
1,
|
||||||
@ -233,5 +236,37 @@ mod test {
|
|||||||
let message = unsafe { Box::from_raw(LAST_LOGGED_MESSAGE) };
|
let message = unsafe { Box::from_raw(LAST_LOGGED_MESSAGE) };
|
||||||
assert_eq!("test log message 1 2 3 4 5", *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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,10 +16,10 @@ use tor_log::{LogSeverity, LogDomain};
|
|||||||
/// tor_free(rust_str);
|
/// tor_free(rust_str);
|
||||||
/// ```
|
/// ```
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn rust_welcome_string() {
|
pub extern "C" fn rust_log_welcome_string() {
|
||||||
tor_log_msg!(
|
tor_log_msg!(
|
||||||
LogSeverity::Notice,
|
LogSeverity::Notice,
|
||||||
LogDomain::LdGeneral,
|
LogDomain::General,
|
||||||
"rust_welcome_string",
|
"rust_welcome_string",
|
||||||
"Tor is running with Rust integration. Please report \
|
"Tor is running with Rust integration. Please report \
|
||||||
any bugs you encounter."
|
any bugs you encounter."
|
||||||
|
Loading…
Reference in New Issue
Block a user