doc work
This commit is contained in:
parent
8c366387eb
commit
3125c19f02
3
build_docs.sh
Executable file
3
build_docs.sh
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
cargo doc --no-deps -p veilid-core
|
||||||
|
cargo doc --no-deps -p veilid-tools
|
@ -12,10 +12,11 @@ crate-type = ["cdylib", "staticlib", "rlib"]
|
|||||||
[features]
|
[features]
|
||||||
|
|
||||||
# Common features
|
# Common features
|
||||||
default = ["enable-crypto-vld0"]
|
default = ["enable-crypto-vld0", "rt-tokio"]
|
||||||
rt-async-std = [
|
rt-async-std = [
|
||||||
"async-std",
|
"async-std",
|
||||||
"async-std-resolver",
|
"async-std-resolver",
|
||||||
|
"trust-dns-resolver",
|
||||||
"async_executors/async_std",
|
"async_executors/async_std",
|
||||||
"rtnetlink/smol_socket",
|
"rtnetlink/smol_socket",
|
||||||
"veilid-tools/rt-async-std",
|
"veilid-tools/rt-async-std",
|
||||||
@ -52,7 +53,9 @@ network-result-extra = ["veilid-tools/network-result-extra"]
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
||||||
# Tools
|
# Tools
|
||||||
veilid-tools = { path = "../veilid-tools", features = ["tracing"] }
|
veilid-tools = { path = "../veilid-tools", features = [
|
||||||
|
"tracing",
|
||||||
|
], default-features = false }
|
||||||
paste = "1.0.14"
|
paste = "1.0.14"
|
||||||
once_cell = "1.18.0"
|
once_cell = "1.18.0"
|
||||||
owning_ref = "0.4.1"
|
owning_ref = "0.4.1"
|
||||||
|
@ -18,6 +18,7 @@ cfg_if! {
|
|||||||
cfg_if! {
|
cfg_if! {
|
||||||
if #[cfg(feature="rt-async-std")] {
|
if #[cfg(feature="rt-async-std")] {
|
||||||
use async_std_resolver::{config, resolver, resolver_from_system_conf, AsyncStdResolver as AsyncResolver};
|
use async_std_resolver::{config, resolver, resolver_from_system_conf, AsyncStdResolver as AsyncResolver};
|
||||||
|
use trust_dns_resolver::error::ResolveErrorKind;
|
||||||
} else if #[cfg(feature="rt-tokio")] {
|
} else if #[cfg(feature="rt-tokio")] {
|
||||||
use trust_dns_resolver::{config, TokioAsyncResolver as AsyncResolver, error::ResolveError, error::ResolveErrorKind};
|
use trust_dns_resolver::{config, TokioAsyncResolver as AsyncResolver, error::ResolveError, error::ResolveErrorKind};
|
||||||
|
|
||||||
|
@ -132,6 +132,30 @@ impl Network {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#[cfg(all(feature = "rt-async-std", unix))]
|
||||||
|
{
|
||||||
|
// async-std does not directly support linger on tcpsocket yet
|
||||||
|
use std::os::fd::AsRawFd;
|
||||||
|
use std::os::fd::FromRawFd;
|
||||||
|
if let Err(e) = unsafe { socket2::Socket::from_raw_fd(tcp_stream.as_raw_fd()) }
|
||||||
|
.set_linger(Some(core::time::Duration::from_secs(0)))
|
||||||
|
{
|
||||||
|
log_net!(debug "Couldn't set TCP linger: {}", e);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#[cfg(all(feature = "rt-async-std", windows))]
|
||||||
|
{
|
||||||
|
// async-std does not directly support linger on tcpsocket yet
|
||||||
|
use std::os::windows::io::AsRawSocket;
|
||||||
|
if let Err(e) = unsafe { socket2::socket_from_raw(tcp_stream.as_raw_socket()) }
|
||||||
|
.set_linger(Some(core::time::Duration::from_secs(0)))
|
||||||
|
{
|
||||||
|
log_net!(debug "Couldn't set TCP linger: {}", e);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#[cfg(not(feature = "rt-async-std"))]
|
||||||
if let Err(e) = tcp_stream.set_linger(Some(core::time::Duration::from_secs(0))) {
|
if let Err(e) = tcp_stream.set_linger(Some(core::time::Duration::from_secs(0))) {
|
||||||
log_net!(debug "Couldn't set TCP linger: {}", e);
|
log_net!(debug "Couldn't set TCP linger: {}", e);
|
||||||
return;
|
return;
|
||||||
|
@ -19,7 +19,7 @@ use clap::{Args, Parser};
|
|||||||
use server::*;
|
use server::*;
|
||||||
use settings::LogLevel;
|
use settings::LogLevel;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::ffi::{OsString, OsStr};
|
use std::ffi::{OsStr, OsString};
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use tools::*;
|
use tools::*;
|
||||||
@ -40,7 +40,6 @@ pub struct Logging {
|
|||||||
#[derive(Parser, Debug, Clone)]
|
#[derive(Parser, Debug, Clone)]
|
||||||
#[command(author, version, about)]
|
#[command(author, version, about)]
|
||||||
pub struct CmdlineArgs {
|
pub struct CmdlineArgs {
|
||||||
|
|
||||||
/// Run in daemon mode in the background
|
/// Run in daemon mode in the background
|
||||||
#[arg(short, long)]
|
#[arg(short, long)]
|
||||||
daemon: bool,
|
daemon: bool,
|
||||||
@ -92,7 +91,7 @@ pub struct CmdlineArgs {
|
|||||||
|
|
||||||
/// Set the node ids and secret keys
|
/// Set the node ids and secret keys
|
||||||
///
|
///
|
||||||
/// Specify node ids in typed key set format ('[VLD0:xxxx,VLD1:xxxx]') on the command line, a prompt appears to enter the secret key set interactively.
|
/// Specify node ids in typed key set format ('\[VLD0:xxxx,VLD1:xxxx\]') on the command line, a prompt appears to enter the secret key set interactively.
|
||||||
#[arg(long, value_name = "key_set")]
|
#[arg(long, value_name = "key_set")]
|
||||||
set_node_id: Option<String>,
|
set_node_id: Option<String>,
|
||||||
|
|
||||||
@ -204,7 +203,9 @@ fn main() -> EyreResult<()> {
|
|||||||
println!("Enabling OTLP tracing");
|
println!("Enabling OTLP tracing");
|
||||||
settingsrw.logging.otlp.enabled = true;
|
settingsrw.logging.otlp.enabled = true;
|
||||||
settingsrw.logging.otlp.grpc_endpoint = NamedSocketAddrs::from_str(
|
settingsrw.logging.otlp.grpc_endpoint = NamedSocketAddrs::from_str(
|
||||||
args.otlp.expect("should not be null because of default missing value").as_str(),
|
args.otlp
|
||||||
|
.expect("should not be null because of default missing value")
|
||||||
|
.as_str(),
|
||||||
)
|
)
|
||||||
.wrap_err("failed to parse OTLP address")?;
|
.wrap_err("failed to parse OTLP address")?;
|
||||||
settingsrw.logging.otlp.level = LogLevel::Trace;
|
settingsrw.logging.otlp.level = LogLevel::Trace;
|
||||||
@ -222,10 +223,16 @@ fn main() -> EyreResult<()> {
|
|||||||
settingsrw.core.table_store.delete = true;
|
settingsrw.core.table_store.delete = true;
|
||||||
}
|
}
|
||||||
if let Some(password) = args.password {
|
if let Some(password) = args.password {
|
||||||
settingsrw.core.protected_store.device_encryption_key_password = password;
|
settingsrw
|
||||||
|
.core
|
||||||
|
.protected_store
|
||||||
|
.device_encryption_key_password = password;
|
||||||
}
|
}
|
||||||
if let Some(new_password) = args.new_password {
|
if let Some(new_password) = args.new_password {
|
||||||
settingsrw.core.protected_store.new_device_encryption_key_password = Some(new_password);
|
settingsrw
|
||||||
|
.core
|
||||||
|
.protected_store
|
||||||
|
.new_device_encryption_key_password = Some(new_password);
|
||||||
}
|
}
|
||||||
if let Some(network_key) = args.network_key {
|
if let Some(network_key) = args.network_key {
|
||||||
settingsrw.core.network.network_key_password = Some(network_key);
|
settingsrw.core.network.network_key_password = Some(network_key);
|
||||||
@ -241,8 +248,8 @@ fn main() -> EyreResult<()> {
|
|||||||
settingsrw.logging.terminal.enabled = false;
|
settingsrw.logging.terminal.enabled = false;
|
||||||
|
|
||||||
// Split or get secret
|
// Split or get secret
|
||||||
let tks =
|
let tks = TypedKeyGroup::from_str(&key_set)
|
||||||
TypedKeyGroup::from_str(&key_set).wrap_err("failed to decode node id set from command line")?;
|
.wrap_err("failed to decode node id set from command line")?;
|
||||||
|
|
||||||
let buffer = rpassword::prompt_password("Enter secret key set (will not echo): ")
|
let buffer = rpassword::prompt_password("Enter secret key set (will not echo): ")
|
||||||
.wrap_err("invalid secret key")?;
|
.wrap_err("invalid secret key")?;
|
||||||
@ -299,8 +306,8 @@ fn main() -> EyreResult<()> {
|
|||||||
let mut tks = veilid_core::TypedKeyGroup::new();
|
let mut tks = veilid_core::TypedKeyGroup::new();
|
||||||
let mut tss = veilid_core::TypedSecretGroup::new();
|
let mut tss = veilid_core::TypedSecretGroup::new();
|
||||||
for ck in veilid_core::VALID_CRYPTO_KINDS {
|
for ck in veilid_core::VALID_CRYPTO_KINDS {
|
||||||
let tkp = veilid_core::Crypto::generate_keypair(ck)
|
let tkp =
|
||||||
.wrap_err("invalid crypto kind")?;
|
veilid_core::Crypto::generate_keypair(ck).wrap_err("invalid crypto kind")?;
|
||||||
tks.add(veilid_core::TypedKey::new(tkp.kind, tkp.value.key));
|
tks.add(veilid_core::TypedKey::new(tkp.kind, tkp.value.key));
|
||||||
tss.add(veilid_core::TypedSecret::new(tkp.kind, tkp.value.secret));
|
tss.add(veilid_core::TypedSecret::new(tkp.kind, tkp.value.secret));
|
||||||
}
|
}
|
||||||
@ -312,8 +319,7 @@ fn main() -> EyreResult<()> {
|
|||||||
} else {
|
} else {
|
||||||
let ck: veilid_core::CryptoKind =
|
let ck: veilid_core::CryptoKind =
|
||||||
veilid_core::FourCC::from_str(&ckstr).wrap_err("couldn't parse crypto kind")?;
|
veilid_core::FourCC::from_str(&ckstr).wrap_err("couldn't parse crypto kind")?;
|
||||||
let tkp =
|
let tkp = veilid_core::Crypto::generate_keypair(ck).wrap_err("invalid crypto kind")?;
|
||||||
veilid_core::Crypto::generate_keypair(ck).wrap_err("invalid crypto kind")?;
|
|
||||||
println!("{}", tkp.to_string());
|
println!("{}", tkp.to_string());
|
||||||
}
|
}
|
||||||
return Ok(());
|
return Ok(());
|
||||||
|
@ -10,9 +10,15 @@ edition = "2021"
|
|||||||
crate-type = ["cdylib", "staticlib", "rlib"]
|
crate-type = ["cdylib", "staticlib", "rlib"]
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = ["rt-tokio"]
|
||||||
rt-async-std = ["async-std", "async_executors/async_std"]
|
rt-async-std = ["async-std", "async_executors/async_std"]
|
||||||
rt-tokio = [ "tokio", "tokio-util", "async_executors/tokio_tp", "async_executors/tokio_io", "async_executors/tokio_timer" ]
|
rt-tokio = [
|
||||||
|
"tokio",
|
||||||
|
"tokio-util",
|
||||||
|
"async_executors/tokio_tp",
|
||||||
|
"async_executors/tokio_io",
|
||||||
|
"async_executors/tokio_timer",
|
||||||
|
]
|
||||||
rt-wasm-bindgen = ["async_executors/bindgen", "async_executors/timer"]
|
rt-wasm-bindgen = ["async_executors/bindgen", "async_executors/timer"]
|
||||||
|
|
||||||
veilid_tools_android_tests = ["dep:paranoid-android"]
|
veilid_tools_android_tests = ["dep:paranoid-android"]
|
||||||
@ -22,14 +28,19 @@ network-result-extra = []
|
|||||||
network-result-info = []
|
network-result-info = []
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
tracing = { version = "0.1.37", features = ["log", "attributes"], optional = true }
|
tracing = { version = "0.1.37", features = [
|
||||||
|
"log",
|
||||||
|
"attributes",
|
||||||
|
], optional = true }
|
||||||
tracing-subscriber = { version = "0.3.17", optional = true }
|
tracing-subscriber = { version = "0.3.17", optional = true }
|
||||||
log = { version = "0.4.20" }
|
log = { version = "0.4.20" }
|
||||||
eyre = "0.6.8"
|
eyre = "0.6.8"
|
||||||
static_assertions = "1.1.0"
|
static_assertions = "1.1.0"
|
||||||
cfg-if = "1.0.0"
|
cfg-if = "1.0.0"
|
||||||
thiserror = "1.0.47"
|
thiserror = "1.0.47"
|
||||||
futures-util = { version = "0.3.28", default_features = false, features = ["alloc"] }
|
futures-util = { version = "0.3.28", default_features = false, features = [
|
||||||
|
"alloc",
|
||||||
|
] }
|
||||||
parking_lot = "0.12.1"
|
parking_lot = "0.12.1"
|
||||||
once_cell = "1.18.0"
|
once_cell = "1.18.0"
|
||||||
stop-token = { version = "0.7.0", default-features = false }
|
stop-token = { version = "0.7.0", default-features = false }
|
||||||
@ -46,7 +57,12 @@ flume = { version = "0.11.0", features = ["async"] }
|
|||||||
async-std = { version = "1.12.0", features = ["unstable"], optional = true }
|
async-std = { version = "1.12.0", features = ["unstable"], optional = true }
|
||||||
tokio = { version = "1.32.0", features = ["full"], optional = true }
|
tokio = { version = "1.32.0", features = ["full"], optional = true }
|
||||||
tokio-util = { version = "0.7.8", features = ["compat"], optional = true }
|
tokio-util = { version = "0.7.8", features = ["compat"], optional = true }
|
||||||
futures-util = { version = "0.3.28", default-features = false, features = ["async-await", "sink", "std", "io"] }
|
futures-util = { version = "0.3.28", default-features = false, features = [
|
||||||
|
"async-await",
|
||||||
|
"sink",
|
||||||
|
"std",
|
||||||
|
"io",
|
||||||
|
] }
|
||||||
chrono = "0.4.26"
|
chrono = "0.4.26"
|
||||||
|
|
||||||
libc = "0.2.147"
|
libc = "0.2.147"
|
||||||
@ -100,6 +116,10 @@ tracing-wasm = { version = "0.2.1" }
|
|||||||
wasm-opt = ["-O", "--enable-mutable-globals"]
|
wasm-opt = ["-O", "--enable-mutable-globals"]
|
||||||
|
|
||||||
[package.metadata.ios]
|
[package.metadata.ios]
|
||||||
build_targets = ["aarch64-apple-ios", "aarch64-apple-ios-sim", "x86_64-apple-ios"]
|
build_targets = [
|
||||||
|
"aarch64-apple-ios",
|
||||||
|
"aarch64-apple-ios-sim",
|
||||||
|
"x86_64-apple-ios",
|
||||||
|
]
|
||||||
deployment_target = "12.0"
|
deployment_target = "12.0"
|
||||||
build_id_prefix = "com.veilid.veilidtools"
|
build_id_prefix = "com.veilid.veilidtools"
|
||||||
|
Loading…
Reference in New Issue
Block a user