Skip to content

Commit

Permalink
Merge pull request #474 from tox-rs/fmt
Browse files Browse the repository at this point in the history
Apply rustfmt
  • Loading branch information
kurnevsky committed May 19, 2023
2 parents fb897e5 + 769ebae commit 5ab95a6
Show file tree
Hide file tree
Showing 146 changed files with 7,255 additions and 4,586 deletions.
20 changes: 20 additions & 0 deletions .github/workflows/rust.yml
Expand Up @@ -49,6 +49,26 @@ jobs:
command: clippy
args: -- -D warnings

rustfmt:
name: Rustfmt
runs-on: ubuntu-latest
strategy:
matrix:
rust:
- stable
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
- run: rustup component add rustfmt
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --check

coverage:
name: Code coverage
runs-on: ubuntu-latest
Expand Down
53 changes: 39 additions & 14 deletions examples/common/mod.rs
Expand Up @@ -4,37 +4,62 @@ use tokio::net::UdpSocket;

pub const BOOTSTRAP_NODES: [(&str, &str); 9] = [
// Impyy
("1D5A5F2F5D6233058BF0259B09622FB40B482E4FA0931EB8FD3AB8E7BF7DAF6F", "198.98.51.198:33445"),
(
"1D5A5F2F5D6233058BF0259B09622FB40B482E4FA0931EB8FD3AB8E7BF7DAF6F",
"198.98.51.198:33445",
),
// nurupo
("F404ABAA1C99A9D37D61AB54898F56793E1DEF8BD46B1038B9D822E8460FAB67", "67.215.253.85:33445"),
(
"F404ABAA1C99A9D37D61AB54898F56793E1DEF8BD46B1038B9D822E8460FAB67",
"67.215.253.85:33445",
),
// Manolis
("461FA3776EF0FA655F1A05477DF1B3B614F7D6B124F7DB1DD4FE3C08B03B640F", "130.133.110.14:33445"),
(
"461FA3776EF0FA655F1A05477DF1B3B614F7D6B124F7DB1DD4FE3C08B03B640F",
"130.133.110.14:33445",
),
// Busindre
("A179B09749AC826FF01F37A9613F6B57118AE014D4196A0E1105A98F93A54702", "205.185.116.116:33445"),
(
"A179B09749AC826FF01F37A9613F6B57118AE014D4196A0E1105A98F93A54702",
"205.185.116.116:33445",
),
// ray65536
("8E7D0B859922EF569298B4D261A8CCB5FEA14FB91ED412A7603A585A25698832", "85.172.30.117:33445"),
(
"8E7D0B859922EF569298B4D261A8CCB5FEA14FB91ED412A7603A585A25698832",
"85.172.30.117:33445",
),
// fluke571
("3CEE1F054081E7A011234883BC4FC39F661A55B73637A5AC293DDF1251D9432B", "194.249.212.109:33445"),
(
"3CEE1F054081E7A011234883BC4FC39F661A55B73637A5AC293DDF1251D9432B",
"194.249.212.109:33445",
),
// MAH69K
("DA4E4ED4B697F2E9B000EEFE3A34B554ACD3F45F5C96EAEA2516DD7FF9AF7B43", "185.25.116.107:33445"),
(
"DA4E4ED4B697F2E9B000EEFE3A34B554ACD3F45F5C96EAEA2516DD7FF9AF7B43",
"185.25.116.107:33445",
),
// clearmartin
("CD133B521159541FB1D326DE9850F5E56A6C724B5B8E5EB5CD8D950408E95707", "46.101.197.175:443"),
(
"CD133B521159541FB1D326DE9850F5E56A6C724B5B8E5EB5CD8D950408E95707",
"46.101.197.175:443",
),
// tastytea
("2B2137E094F743AC8BD44652C55F41DFACC502F125E99E4FE24D40537489E32F", "5.189.176.217:5190"),
(
"2B2137E094F743AC8BD44652C55F41DFACC502F125E99E4FE24D40537489E32F",
"5.189.176.217:5190",
),
];

/// Bind a UDP listener to the socket address.
pub async fn bind_socket(addr: SocketAddr) -> UdpSocket {
let socket = UdpSocket::bind(&addr)
.await
.expect("Failed to bind UDP socket");
let socket = UdpSocket::bind(&addr).await.expect("Failed to bind UDP socket");

socket.set_broadcast(true).expect("set_broadcast call failed");
if addr.is_ipv6() {
socket.set_multicast_loop_v6(true)
socket
.set_multicast_loop_v6(true)
.expect("set_multicast_loop_v6 call failed");
}

socket
}

18 changes: 9 additions & 9 deletions examples/dht_server.rs
@@ -1,24 +1,24 @@
// an example of DHT node with current code
//
#![type_length_limit="4194304"]
#![type_length_limit = "4194304"]

#[macro_use]
extern crate log;

use futures::future::FutureExt;
use futures::channel::mpsc;
use anyhow::Error;
use futures::channel::mpsc;
use futures::future::FutureExt;
use rand::thread_rng;

use std::net::SocketAddr;

use tox_crypto::*;
use tox_packet::dht::packed_node::PackedNode;
use tox_core::dht::lan_discovery::*;
use tox_core::dht::server::Server as DhtServer;
use tox_core::dht::server_ext::dht_run_socket;
use tox_core::dht::lan_discovery::*;
use tox_core::udp::Server as UdpServer;
use tox_core::stats::Stats;
use tox_core::udp::Server as UdpServer;
use tox_crypto::*;
use tox_packet::dht::packed_node::PackedNode;

mod common;

Expand All @@ -42,12 +42,12 @@ async fn main() -> Result<(), Error> {
let (tx, rx) = mpsc::channel(32);

let local_addr: SocketAddr = "0.0.0.0:33445".parse()?; // 0.0.0.0 for IPv4

// let local_addr: SocketAddr = "[::]:33445".parse()?; // [::] for IPv6

let stats = Stats::new();

let mut lan_discovery_sender =
LanDiscoverySender::new(tx.clone(), server_pk.clone(), local_addr.is_ipv6());
let mut lan_discovery_sender = LanDiscoverySender::new(tx.clone(), server_pk.clone(), local_addr.is_ipv6());

let mut dht_server = DhtServer::new(tx, server_pk, server_sk);
dht_server.set_bootstrap_info(3_000_000_000, Box::new(|_| b"This is tox-rs".to_vec()));
Expand Down
148 changes: 106 additions & 42 deletions examples/echo.rs
@@ -1,49 +1,64 @@
// an example of echo server with current code
//
#![recursion_limit="256"]
#![type_length_limit="4194304"]
#![recursion_limit = "256"]
#![type_length_limit = "4194304"]

#[macro_use]
extern crate log;

use futures::{*, future::TryFutureExt};
use anyhow::Error;
use futures::channel::mpsc;
use futures::{future::TryFutureExt, *};
use hex::FromHex;
use anyhow::Error;
use rand::thread_rng;

use std::net::SocketAddr;

use tox_binary_io::*;
use tox_crypto::*;
use tox_packet::dht::packed_node::PackedNode;
use tox_packet::friend_connection::*;
use tox_packet::onion::InnerOnionResponse;
use tox_packet::relay::DataPayload;
use tox_packet::toxid::ToxId;
use tox_core::dht::lan_discovery::LanDiscoverySender;
use tox_core::dht::server::Server as DhtServer;
use tox_core::dht::server_ext::dht_run_socket;
use tox_core::dht::lan_discovery::LanDiscoverySender;
use tox_core::udp::Server as UdpServer;
use tox_core::friend_connection::FriendConnections;
use tox_core::net_crypto::{NetCrypto, NetCryptoNewArgs};
use tox_core::onion::client::OnionClient;
use tox_core::relay::client::{Connections, IncomingPacket};
use tox_core::stats::Stats;
use tox_core::udp::Server as UdpServer;
use tox_crypto::*;
use tox_packet::dht::packed_node::PackedNode;
use tox_packet::friend_connection::*;
use tox_packet::onion::InnerOnionResponse;
use tox_packet::relay::DataPayload;
use tox_packet::toxid::ToxId;

mod common;

const TCP_RELAYS: [(&str, &str); 5] = [
// ray65536
("8E7D0B859922EF569298B4D261A8CCB5FEA14FB91ED412A7603A585A25698832", "85.172.30.117:33445"),
(
"8E7D0B859922EF569298B4D261A8CCB5FEA14FB91ED412A7603A585A25698832",
"85.172.30.117:33445",
),
// MAH69K
("DA4E4ED4B697F2E9B000EEFE3A34B554ACD3F45F5C96EAEA2516DD7FF9AF7B43", "185.25.116.107:33445"),
(
"DA4E4ED4B697F2E9B000EEFE3A34B554ACD3F45F5C96EAEA2516DD7FF9AF7B43",
"185.25.116.107:33445",
),
// Deliran
("1C5293AEF2114717547B39DA8EA6F1E331E5E358B35F9B6B5F19317911C5F976", "84.22.115.205:33445"),
(
"1C5293AEF2114717547B39DA8EA6F1E331E5E358B35F9B6B5F19317911C5F976",
"84.22.115.205:33445",
),
// kpp
("A04F5FE1D006871588C8EC163676458C1EC75B20B4A147433D271E1E85DAF839", "52.53.185.100:33445"),
(
"A04F5FE1D006871588C8EC163676458C1EC75B20B4A147433D271E1E85DAF839",
"52.53.185.100:33445",
),
// kurnevsky
("82EF82BA33445A1F91A7DB27189ECFC0C013E06E3DA71F588ED692BED625EC23", "37.139.29.40:33445"),
(
"82EF82BA33445A1F91A7DB27189ECFC0C013E06E3DA71F588ED692BED625EC23",
"37.139.29.40:33445",
),
];

#[tokio::main]
Expand All @@ -59,12 +74,13 @@ async fn main() -> Result<(), Error> {
let real_sk = SecretKey::generate(&mut rng);
let real_pk = real_sk.public_key();
let id = ToxId::new(&mut rng, real_pk.clone());
println!("your tox id is: {:X}",id);
println!("your tox id is: {:X}", id);

// Create a channel for server to communicate with network
let (tx, rx) = mpsc::channel(32);

let local_addr: SocketAddr = "0.0.0.0:33447".parse()?; // 0.0.0.0 for IPv4

// let local_addr: SocketAddr = "[::]:33445".parse()?; // [::] for IPv6

info!("Running echo server on {}", local_addr);
Expand All @@ -81,7 +97,12 @@ async fn main() -> Result<(), Error> {
dht_server.enable_ipv6_mode(local_addr.is_ipv6());

let tcp_connections = Connections::new(dht_pk.clone(), dht_sk.clone(), tcp_incoming_tx);
let onion_client = OnionClient::new(dht_server.clone(), tcp_connections.clone(), real_sk.clone(), real_pk.clone());
let onion_client = OnionClient::new(
dht_server.clone(),
tcp_connections.clone(),
real_sk.clone(),
real_pk.clone(),
);

let (lossless_tx, mut lossless_rx) = mpsc::unbounded();
let (lossy_tx, mut lossy_rx) = mpsc::unbounded();
Expand Down Expand Up @@ -137,18 +158,46 @@ async fn main() -> Result<(), Error> {
let onion_client_c = onion_client.clone();
let net_crypto_c = net_crypto.clone();
let tcp_incoming_future = async {
while let Some((_relay_pk, packet)) = tcp_incoming_rx.next().await { // TODO: do we need relay_pk at all?
while let Some((_relay_pk, packet)) = tcp_incoming_rx.next().await {
// TODO: do we need relay_pk at all?
match packet {
IncomingPacket::Data(sender_pk, packet) => match packet {
DataPayload::CookieRequest(packet) => net_crypto_c.handle_tcp_cookie_request(&packet, sender_pk).map_err(Error::from).await,
DataPayload::CookieResponse(packet) => net_crypto_c.handle_tcp_cookie_response(&packet, sender_pk).map_err(Error::from).await,
DataPayload::CryptoHandshake(packet) => net_crypto_c.handle_tcp_crypto_handshake(&packet, sender_pk).map_err(Error::from).await,
DataPayload::CryptoData(packet) => net_crypto_c.handle_tcp_crypto_data(&packet, sender_pk).map_err(Error::from).await,
DataPayload::CookieRequest(packet) => {
net_crypto_c
.handle_tcp_cookie_request(&packet, sender_pk)
.map_err(Error::from)
.await
}
DataPayload::CookieResponse(packet) => {
net_crypto_c
.handle_tcp_cookie_response(&packet, sender_pk)
.map_err(Error::from)
.await
}
DataPayload::CryptoHandshake(packet) => {
net_crypto_c
.handle_tcp_crypto_handshake(&packet, sender_pk)
.map_err(Error::from)
.await
}
DataPayload::CryptoData(packet) => {
net_crypto_c
.handle_tcp_crypto_data(&packet, sender_pk)
.map_err(Error::from)
.await
}
},
IncomingPacket::Oob(_sender_pk, _packet) => Ok(()),
IncomingPacket::Onion(packet) => match packet {
InnerOnionResponse::OnionAnnounceResponse(packet) => onion_client_c.handle_announce_response(&packet, true).map_err(Error::from).await,
InnerOnionResponse::OnionDataResponse(packet) => onion_client_c.handle_data_response(&packet).map_err(Error::from).await,
InnerOnionResponse::OnionAnnounceResponse(packet) => {
onion_client_c
.handle_announce_response(&packet, true)
.map_err(Error::from)
.await
}
InnerOnionResponse::OnionDataResponse(packet) => {
onion_client_c.handle_data_response(&packet).map_err(Error::from).await
}
},
}?;
}
Expand All @@ -166,24 +215,36 @@ async fn main() -> Result<(), Error> {
match packet[0] {
PACKET_ID_ALIVE => {
friend_connections_c.handle_ping(pk).await;
},
PACKET_ID_SHARE_RELAYS => {
match ShareRelays::from_bytes(&packet) {
Ok((_, share_relays)) =>
friend_connections_c.handle_share_relays(pk, share_relays)
.map_err(Error::from).await?,
_ => return Err(Error::msg("Failed to parse ShareRelays"))
}
PACKET_ID_SHARE_RELAYS => match ShareRelays::from_bytes(&packet) {
Ok((_, share_relays)) => {
friend_connections_c
.handle_share_relays(pk, share_relays)
.map_err(Error::from)
.await?
}
_ => return Err(Error::msg("Failed to parse ShareRelays")),
},
0x18 => { // PACKET_ID_ONLINE
net_crypto_c.send_lossless(pk.clone(), vec![0x18]).map_err(Error::from).await?;
net_crypto_c.send_lossless(pk.clone(), vec![0x32, 0x00]).map_err(Error::from).await?; // PACKET_ID_USERSTATUS
net_crypto_c.send_lossless(pk, b"\x30tox-rs".to_vec()).map_err(Error::from).await?;
},
0x40 => { // PACKET_ID_CHAT_MESSAGE
0x18 => {
// PACKET_ID_ONLINE
net_crypto_c
.send_lossless(pk.clone(), vec![0x18])
.map_err(Error::from)
.await?;
net_crypto_c
.send_lossless(pk.clone(), vec![0x32, 0x00])
.map_err(Error::from)
.await?; // PACKET_ID_USERSTATUS
net_crypto_c
.send_lossless(pk, b"\x30tox-rs".to_vec())
.map_err(Error::from)
.await?;
}
0x40 => {
// PACKET_ID_CHAT_MESSAGE
net_crypto_c.send_lossless(pk, packet).map_err(Error::from).await?;
},
_ => { },
}
_ => {}
}
}
Result::<(), Error>::Ok(())
Expand Down Expand Up @@ -212,7 +273,10 @@ async fn main() -> Result<(), Error> {
// create PK from bytes
let relay_pk = PublicKey::from(relay_pk_bytes);

tcp_connections.add_relay_global(saddr.parse().unwrap(), relay_pk).await.map_err(Error::from)?;
tcp_connections
.add_relay_global(saddr.parse().unwrap(), relay_pk)
.await
.map_err(Error::from)?;
}

futures::select!(
Expand Down

0 comments on commit 5ab95a6

Please sign in to comment.