114d92f93f
* changed NymConfigTemplate trait to call 'template' by reference * network requester lib * introduced generic parameter to 'MixTrafficController' to allow non-remote gateways * allowing for custom gateway sender * types cleanup * minor gateway cmds refactor + initial NR work * wip * running a NR inside gateway note: this NR isnt tied to the gateway yet * rebase fixes * propagating same shutdown handle * wip * starting NR with appropriate local transceiver * fixed premature shutdown * wiring up PacketRouter * both ends wired together * actually working so much cleanup to do now * started removing dead code * wip * temp: hardcode gateway * further cleanup * fixed build of other binaries * setup-network-requester subcmd * overriding NR config in gateway init/run * wip making it wasm-compatible [again] * refactored 'GatewaySetup' * clippy and friends * removed debug code * rust 1.72 lints * ensuring local gateway is available + some comments * correctly putting network requester data in the same underlying details struct * improved gateway errors * changed 'network_requester_config' deserialization * missing clap annotation for 'enabled' flag in 'setup-network-requester' command * saving config file after 'setup-network-requester' * removed dead code * review comments * make embedded NR wait for gateway to come online (for at most 70min) * fixed shutdown on successful gateway wait * updated NR config override
41 lines
1.4 KiB
Rust
41 lines
1.4 KiB
Rust
use nym_sdk::mixnet;
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
nym_bin_common::logging::setup_logging();
|
|
|
|
println!("Connecting receiver");
|
|
let mut receiving_client = mixnet::MixnetClient::connect_new().await.unwrap();
|
|
|
|
let socks5_config = mixnet::Socks5::new(receiving_client.nym_address().to_string());
|
|
let sending_client = mixnet::MixnetClientBuilder::new_ephemeral()
|
|
.socks5_config(socks5_config)
|
|
.build()
|
|
.unwrap();
|
|
|
|
println!("Connecting sender");
|
|
let sending_client = sending_client.connect_to_mixnet_via_socks5().await.unwrap();
|
|
|
|
let proxy = reqwest::Proxy::all(sending_client.socks5_url()).unwrap();
|
|
let reqwest_client = reqwest::Client::builder().proxy(proxy).build().unwrap();
|
|
tokio::spawn(async move {
|
|
println!("Sending socks5-wrapped http request");
|
|
// Message should be sent through the mixnet, via socks5
|
|
// We don't expect to get anything, as there is no network requester on the other end
|
|
reqwest_client.get("https://nymtech.net").send().await.ok()
|
|
});
|
|
|
|
println!("Waiting for message");
|
|
if let Some(received) = receiving_client.wait_for_messages().await {
|
|
for r in received {
|
|
println!(
|
|
"Received socks5 message requesting for endpoint: {}",
|
|
String::from_utf8_lossy(&r.message[10..27])
|
|
);
|
|
}
|
|
}
|
|
|
|
receiving_client.disconnect().await;
|
|
sending_client.disconnect().await;
|
|
}
|