diff --git a/.vscode/launch.json b/.vscode/launch.json index da521604..fec4ee08 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -23,11 +23,11 @@ "args": [], "env": { "RUST_BACKTRACE": "1", - "CONDUIT_CONFIG": "", - "CONDUIT_SERVER_NAME": "localhost", - "CONDUIT_DATABASE_PATH": "/tmp", + "CONDUIT_DATABASE_PATH": "/tmp/awawawa", "CONDUIT_ADDRESS": "0.0.0.0", - "CONDUIT_PORT": "6167" + "CONDUIT_PORT": "55551", + "CONDUIT_SERVER_NAME": "your.server.name", + "CONDUIT_LOG": "debug" }, "cwd": "${workspaceFolder}" } diff --git a/Cargo.lock b/Cargo.lock index cb588c51..30fce392 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -474,6 +474,7 @@ dependencies = [ "either", "figment", "futures-util", + "hardened_malloc-rs", "hickory-resolver", "hmac", "http 0.2.12", @@ -966,6 +967,10 @@ dependencies = [ "tracing", ] +[[package]] +name = "hardened_malloc-rs" +version = "0.1.0+12" + [[package]] name = "hashbrown" version = "0.14.3" diff --git a/Cargo.toml b/Cargo.toml index 8cadc6ae..aded2b82 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -308,6 +308,10 @@ hyperlocal = { git = "https://github.com/softprops/hyperlocal", rev = "2ee4d1496 "server", ] } # unix socket support +[target.'cfg(all(not(target_env = "msvc"), not(target_os = "macos"), target_os = "linux"))'.dependencies] +hardened_malloc-rs = { optional = true, features = ["static", "clang", "light"], path = "../hardened_malloc-rs", default-features = false } +#hardened_malloc-rs = { version = "0.1", optional = true, features = ["static", "clang", "light"], default-features = false } + [features] default = [ @@ -343,6 +347,8 @@ perf_measurements = [ "opentelemetry-jaeger", ] +hardened_malloc = ["hardened_malloc-rs"] + # client/server interopability hacks # ## element has various non-spec compliant behaviour diff --git a/src/main.rs b/src/main.rs index 506b3e97..724c8d92 100644 --- a/src/main.rs +++ b/src/main.rs @@ -46,6 +46,13 @@ mod routes; #[global_allocator] static GLOBAL: Jemalloc = Jemalloc; +#[cfg(all(not(target_env = "msvc"), not(target_os = "macos"), feature = "hardened_malloc", target_os = "linux"))] +use hardened_malloc_rs::HardenedMalloc; + +#[cfg(all(not(target_env = "msvc"), not(target_os = "macos"), feature = "hardened_malloc", target_os = "linux"))] +#[global_allocator] +static GLOBAL: HardenedMalloc = HardenedMalloc; + struct Server { config: Config,