Compare commits

...
Sign in to create a new pull request.

3 commits

5 changed files with 59 additions and 3 deletions

32
Cargo.lock generated
View file

@ -227,6 +227,12 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
[[package]]
name = "cfg_aliases"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
[[package]]
name = "cipher"
version = "0.4.4"
@ -768,6 +774,15 @@ version = "2.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
[[package]]
name = "memoffset"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
dependencies = [
"autocfg",
]
[[package]]
name = "mime"
version = "0.3.17"
@ -791,6 +806,19 @@ version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084"
[[package]]
name = "nix"
version = "0.30.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
dependencies = [
"bitflags",
"cfg-if",
"cfg_aliases",
"libc",
"memoffset",
]
[[package]]
name = "num-traits"
version = "0.2.19"
@ -1035,8 +1063,7 @@ checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
[[package]]
name = "reticulum"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d838809ab28f9bfa5354b3397bcfc2b4a7a7258e98d9ed2b18a6e39437b00202"
source = "git+http://github.com/SebKuzminsky/Reticulum-rs?branch=multicast#4db323aebd2cb4d11c24f7270b5cfd46a7b483d6"
dependencies = [
"aes",
"cbc",
@ -1046,6 +1073,7 @@ dependencies = [
"hkdf",
"hmac",
"log",
"nix",
"prost",
"rand_core",
"rmp",

View file

@ -15,7 +15,11 @@ tokio-util = "0.7.15"
# Logging
log = "0.4.27"
env_logger = "0.10"
reticulum = "0.1.0"
reticulum = { git="http://github.com/SebKuzminsky/Reticulum-rs", branch="multicast" }
#reticulum = { path = "../Reticulum-rs" }
#reticulum = { version="0.1.0" }
clap = { version = "4.5.53", features = ["derive"] }
serde = { version = "1.0.228", features = ["derive"] }
bincode = { version = "2.0.1", features = ["serde"] }

View file

@ -6,6 +6,7 @@ use serde::{Deserialize, Serialize};
// RETICULUM INCLUDES
use reticulum::iface::tcp_client::TcpClient;
use reticulum::iface::tcp_server::TcpServer;
use reticulum::iface::udp::UdpInterface;
use reticulum::transport::{Transport, TransportConfig};
#[derive(Serialize, Deserialize, Debug, Clone)]
@ -18,10 +19,17 @@ struct TcpClientConfig {
bind_addr: String,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
struct UdpConfig {
bind_addr: String,
forward_addr: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
enum InterfaceConfig {
TcpServer(TcpServerConfig),
TcpClient(TcpClientConfig),
Udp(UdpConfig),
}
#[derive(Serialize, Deserialize, Debug, Clone)]
@ -70,6 +78,12 @@ async fn main() {
.await
.spawn(TcpClient::new(cfg.bind_addr), TcpClient::spawn);
}
InterfaceConfig::Udp(cfg) => {
let _ = transport.iface_manager().lock().await.spawn(
UdpInterface::new(cfg.bind_addr, cfg.forward_addr),
UdpInterface::spawn,
);
}
}
}

5
udp-other.toml Normal file
View file

@ -0,0 +1,5 @@
[[interfaces]]
TcpServer = { bind_addr="0.0.0.0:4243" }
[[interfaces]]
Udp = { bind_addr="0.0.0.0:4242", forward_addr="239.0.0.69:4242" }

5
udp.toml Normal file
View file

@ -0,0 +1,5 @@
[[interfaces]]
TcpServer = { bind_addr="0.0.0.0:4242" }
[[interfaces]]
Udp = { bind_addr="0.0.0.0:4242", forward_addr="239.0.0.69:4242" }