From 09cb17e6aba8b762c22d805e05f6897c7f0d9d2d Mon Sep 17 00:00:00 2001 From: Dave Hrycyszyn Date: Wed, 22 Jan 2020 16:29:59 +0000 Subject: [PATCH 1/5] all: using pretty_env_logger pretty much everywhere --- Cargo.lock | 21 +++++++++++++++++++++ common/addressing/Cargo.toml | 2 ++ common/clients/directory-client/Cargo.toml | 2 ++ common/clients/mix-client/Cargo.toml | 1 + common/clients/provider-client/Cargo.toml | 1 + common/clients/validator-client/Cargo.toml | 2 ++ common/crypto/Cargo.toml | 2 ++ common/healthcheck/Cargo.toml | 1 + common/pemstore/Cargo.toml | 2 ++ common/topology/Cargo.toml | 3 ++- mixnode/Cargo.toml | 3 ++- nym-client/Cargo.toml | 4 ++-- nym-client/src/main.rs | 2 +- sfw-provider/Cargo.toml | 3 ++- validator/Cargo.toml | 4 ++-- 15 files changed, 45 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 66d9693e547..9930dc746b7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,6 +3,10 @@ [[package]] name = "addressing" version = "0.1.0" +dependencies = [ + "log", + "pretty_env_logger", +] [[package]] name = "adler32" @@ -458,6 +462,8 @@ version = "0.1.0" dependencies = [ "base64 0.11.0", "curve25519-dalek", + "log", + "pretty_env_logger", "rand 0.7.2", "rand_os", ] @@ -514,7 +520,9 @@ dependencies = [ name = "directory-client" version = "0.1.0" dependencies = [ + "log", "mockito", + "pretty_env_logger", "reqwest", "serde", "topology", @@ -856,6 +864,7 @@ dependencies = [ "itertools", "log", "mix-client", + "pretty_env_logger", "provider-client", "serde", "serde_derive", @@ -1258,6 +1267,7 @@ version = "0.1.0" dependencies = [ "addressing", "log", + "pretty_env_logger", "rand 0.7.2", "rand_distr", "sphinx", @@ -1361,6 +1371,7 @@ dependencies = [ "mix-client", "pem", "pemstore", + "pretty_env_logger", "provider-client", "reqwest", "serde", @@ -1385,6 +1396,7 @@ dependencies = [ "directory-client", "futures 0.3.1", "log", + "pretty_env_logger", "sphinx", "tokio 0.2.9", ] @@ -1403,6 +1415,7 @@ dependencies = [ "hex", "hmac", "log", + "pretty_env_logger", "rand 0.7.2", "serde", "serde_json", @@ -1510,7 +1523,9 @@ name = "pemstore" version = "0.1.0" dependencies = [ "crypto", + "log", "pem", + "pretty_env_logger", ] [[package]] @@ -1612,6 +1627,7 @@ version = "0.1.0" dependencies = [ "futures 0.3.1", "log", + "pretty_env_logger", "sfw-provider-requests", "sphinx", "tokio 0.2.9", @@ -2419,6 +2435,7 @@ dependencies = [ "curve25519-dalek", "itertools", "log", + "pretty_env_logger", "rand 0.7.2", "serde", "sphinx", @@ -2544,6 +2561,10 @@ dependencies = [ [[package]] name = "validator-client" version = "0.1.0" +dependencies = [ + "log", + "pretty_env_logger", +] [[package]] name = "vcpkg" diff --git a/common/addressing/Cargo.toml b/common/addressing/Cargo.toml index 3ffea36a3a9..304a25dbc93 100644 --- a/common/addressing/Cargo.toml +++ b/common/addressing/Cargo.toml @@ -7,3 +7,5 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +log = "0.4" +pretty_env_logger = "0.3" \ No newline at end of file diff --git a/common/clients/directory-client/Cargo.toml b/common/clients/directory-client/Cargo.toml index 019fd4700a4..a9e30636e00 100644 --- a/common/clients/directory-client/Cargo.toml +++ b/common/clients/directory-client/Cargo.toml @@ -7,6 +7,8 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +log = "0.4" +pretty_env_logger = "0.3" reqwest = "0.9.22" serde = { version = "1.0.104", features = ["derive"] } diff --git a/common/clients/mix-client/Cargo.toml b/common/clients/mix-client/Cargo.toml index 362fad3f0a5..a7ef6e35c83 100644 --- a/common/clients/mix-client/Cargo.toml +++ b/common/clients/mix-client/Cargo.toml @@ -8,6 +8,7 @@ edition = "2018" [dependencies] log = "0.4.8" +pretty_env_logger = "0.3" rand = "0.7.2" rand_distr = "0.2.2" tokio = { version = "0.2", features = ["full"] } diff --git a/common/clients/provider-client/Cargo.toml b/common/clients/provider-client/Cargo.toml index 602f7d2725f..450a76cb2b7 100644 --- a/common/clients/provider-client/Cargo.toml +++ b/common/clients/provider-client/Cargo.toml @@ -9,6 +9,7 @@ edition = "2018" [dependencies] futures = "0.3.1" log = "0.4.8" +pretty_env_logger = "0.3" tokio = { version = "0.2", features = ["full"] } ## internal diff --git a/common/clients/validator-client/Cargo.toml b/common/clients/validator-client/Cargo.toml index 1d633f29bac..d9e12aefc76 100644 --- a/common/clients/validator-client/Cargo.toml +++ b/common/clients/validator-client/Cargo.toml @@ -7,3 +7,5 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +log = "0.4" +pretty_env_logger = "0.3" \ No newline at end of file diff --git a/common/crypto/Cargo.toml b/common/crypto/Cargo.toml index 48494e850b4..23790a23c81 100644 --- a/common/crypto/Cargo.toml +++ b/common/crypto/Cargo.toml @@ -9,5 +9,7 @@ edition = "2018" [dependencies] base64 = "0.11.0" curve25519-dalek = "1.2.3" +log = "0.4" +pretty_env_logger = "0.3" rand = "0.7.2" rand_os = "0.1" diff --git a/common/healthcheck/Cargo.toml b/common/healthcheck/Cargo.toml index eb82f95fd5c..918efa0df97 100644 --- a/common/healthcheck/Cargo.toml +++ b/common/healthcheck/Cargo.toml @@ -10,6 +10,7 @@ edition = "2018" futures = "0.3.1" itertools = "0.8.2" log = "0.4.8" +pretty_env_logger = "0.3" serde = "1.0.104" serde_derive = "1.0.104" tokio = { version = "0.2", features = ["full"] } diff --git a/common/pemstore/Cargo.toml b/common/pemstore/Cargo.toml index 2774ec2ccda..d66ba1aff54 100644 --- a/common/pemstore/Cargo.toml +++ b/common/pemstore/Cargo.toml @@ -7,7 +7,9 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +log = "0.4" pem = "0.7.0" +pretty_env_logger = "0.3" ## internal crypto = {path = "../crypto"} diff --git a/common/topology/Cargo.toml b/common/topology/Cargo.toml index 628672da6ee..eab611a86a0 100644 --- a/common/topology/Cargo.toml +++ b/common/topology/Cargo.toml @@ -10,7 +10,8 @@ edition = "2018" base64 = "0.11.0" curve25519-dalek = "1.2.3" itertools = "0.8.2" -log = "0.4.8" +log = "0.4" +pretty_env_logger = "0.3" rand = "0.7.2" serde = { version = "1.0.104", features = ["derive"] } diff --git a/mixnode/Cargo.toml b/mixnode/Cargo.toml index 45d800f1d82..602d119bad7 100644 --- a/mixnode/Cargo.toml +++ b/mixnode/Cargo.toml @@ -12,7 +12,8 @@ base64 = "0.11.0" clap = "2.33.0" curve25519-dalek = "1.2.3" futures = "0.3.1" -log = "0.4.8" +log = "0.4" +pretty_env_logger = "0.3" tokio = { version = "0.2", features = ["full"] } ## internal diff --git a/nym-client/Cargo.toml b/nym-client/Cargo.toml index d80d6fcddea..782b68d31e6 100644 --- a/nym-client/Cargo.toml +++ b/nym-client/Cargo.toml @@ -16,11 +16,11 @@ base64 = "0.11.0" clap = "2.33.0" curve25519-dalek = "1.2.3" dirs = "2.0.2" -env_logger = "0.7.1" futures = "0.3.1" hex = "0.4.0" -log = "0.4.8" +log = "0.4" pem = "0.7.0" +pretty_env_logger = "0.3" reqwest = "0.9.22" serde = { version = "1.0.104", features = ["derive"] } serde_json = "1.0.44" diff --git a/nym-client/src/main.rs b/nym-client/src/main.rs index a3f20596b0b..5dd19e9a7cf 100644 --- a/nym-client/src/main.rs +++ b/nym-client/src/main.rs @@ -7,7 +7,7 @@ pub mod config; mod sockets; fn main() { - env_logger::init(); + pretty_env_logger::init(); let arg_matches = App::new("Nym Client") .version(built_info::PKG_VERSION) diff --git a/sfw-provider/Cargo.toml b/sfw-provider/Cargo.toml index d76965a12f7..1fe97babcf2 100644 --- a/sfw-provider/Cargo.toml +++ b/sfw-provider/Cargo.toml @@ -13,7 +13,8 @@ clap = "2.33.0" curve25519-dalek = "1.2.3" hex = "0.4.0" futures = "0.3.1" -log = "0.4.8" +log = "0.4" +pretty_env_logger = "0.3" rand = "0.7.2" tokio = { version = "0.2.4", features = ["full"] } sha2 = "0.8.0" diff --git a/validator/Cargo.toml b/validator/Cargo.toml index 2b97dcb8f59..ead9eade214 100644 --- a/validator/Cargo.toml +++ b/validator/Cargo.toml @@ -12,8 +12,8 @@ clap = "2.33.0" # Read notes https://crates.io/crates/dotenv - tl;dr: don't use in production, set environmental variables properly. dotenv = "0.15.0" futures = "0.3.1" -log = "0.4.8" -pretty_env_logger = "0.3.1" +log = "0.4" +pretty_env_logger = "0.3" serde = "1.0.104" serde_derive = "1.0.104" tokio = { version = "0.2", features = ["full"] } From c592ac66551376e22547e48640e512f5318f7323 Mon Sep 17 00:00:00 2001 From: Dave Hrycyszyn Date: Wed, 22 Jan 2020 16:30:20 +0000 Subject: [PATCH 2/5] project: removing env_logger from the Cargo project file --- Cargo.lock | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9930dc746b7..29518de6926 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -590,19 +590,6 @@ dependencies = [ "termcolor", ] -[[package]] -name = "env_logger" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - [[package]] name = "error-chain" version = "0.12.1" @@ -1363,7 +1350,6 @@ dependencies = [ "curve25519-dalek", "directory-client", "dirs", - "env_logger 0.7.1", "futures 0.3.1", "healthcheck", "hex", @@ -1591,7 +1577,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "717ee476b1690853d222af4634056d830b5197ffd747726a9a1eee6da9f49074" dependencies = [ "chrono", - "env_logger 0.6.2", + "env_logger", "log", ] From ac61196fc65a44736a9c5bfc55e33b693383a375 Mon Sep 17 00:00:00 2001 From: Dave Hrycyszyn Date: Wed, 22 Jan 2020 16:34:42 +0000 Subject: [PATCH 3/5] all: initializing logger at start --- mixnode/src/main.rs | 2 ++ sfw-provider/src/main.rs | 2 ++ validator/src/main.rs | 9 --------- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/mixnode/src/main.rs b/mixnode/src/main.rs index ee053780438..6a466f67f26 100644 --- a/mixnode/src/main.rs +++ b/mixnode/src/main.rs @@ -5,6 +5,8 @@ mod mix_peer; mod node; fn main() { + pretty_env_logger::init(); + let arg_matches = App::new("Nym Mixnode") .version(built_info::PKG_VERSION) .author("Nymtech") diff --git a/sfw-provider/src/main.rs b/sfw-provider/src/main.rs index 9e55332ca1e..e0efaa480c0 100644 --- a/sfw-provider/src/main.rs +++ b/sfw-provider/src/main.rs @@ -8,6 +8,8 @@ use std::process; pub mod provider; fn main() { + pretty_env_logger::init(); + let arg_matches = App::new("Nym Service Provider") .version(built_info::PKG_VERSION) .author("Nymtech") diff --git a/validator/src/main.rs b/validator/src/main.rs index ea7b2679a2c..8b8503cc917 100644 --- a/validator/src/main.rs +++ b/validator/src/main.rs @@ -1,7 +1,6 @@ use crate::validator::config::Config; use crate::validator::Validator; use clap::{App, Arg, ArgMatches, SubCommand}; -use dotenv; use log::{error, trace}; use std::process; use toml; @@ -9,14 +8,6 @@ use toml; mod validator; fn main() { - // load environment variables from .env file - if dotenv::dotenv().is_err() { - eprint!("failed to read .env file - the logging is unlikely to work correctly") - } - - // if we want to log to file or use different logger, we'd need to replace it here. - // a better alternative, but way more complex would be `slog` crate - we should - // perhaps research it at some point. pretty_env_logger::init(); let arg_matches = App::new("Nym Validator") From 1e8423b3395c7f31d327d431271a5ce7b04ba4b6 Mon Sep 17 00:00:00 2001 From: Dave Hrycyszyn Date: Wed, 22 Jan 2020 17:22:03 +0000 Subject: [PATCH 4/5] Started to use logging instead of println --- .../clients/directory-client/src/presence.rs | 3 +- common/clients/provider-client/src/lib.rs | 11 +++---- mixnode/src/main.rs | 3 +- mixnode/src/node/mod.rs | 11 ++++--- nym-client/src/client/mod.rs | 2 +- nym-client/src/sockets/tcp.rs | 33 ++++++++----------- nym-client/src/sockets/ws.rs | 2 +- sfw-provider/src/main.rs | 3 +- .../src/provider/client_handling/mod.rs | 9 +++-- sfw-provider/src/provider/mod.rs | 27 ++++++++------- sfw-provider/src/provider/storage/mod.rs | 11 +++---- 11 files changed, 56 insertions(+), 59 deletions(-) diff --git a/common/clients/directory-client/src/presence.rs b/common/clients/directory-client/src/presence.rs index f20ed9f914a..8be3c73b9e2 100644 --- a/common/clients/directory-client/src/presence.rs +++ b/common/clients/directory-client/src/presence.rs @@ -1,5 +1,6 @@ use crate::requests::presence_topology_get::PresenceTopologyGetRequester; use crate::{Client, Config, DirectoryClient}; +use log::*; use serde::{Deserialize, Serialize}; use std::convert::TryInto; use std::io; @@ -159,7 +160,7 @@ pub struct Topology { impl NymTopology for Topology { fn new(directory_server: String) -> Self { - println!("Using directory server: {:?}", directory_server); + debug!("Using directory server: {:?}", directory_server); let directory_config = Config { base_url: directory_server, }; diff --git a/common/clients/provider-client/src/lib.rs b/common/clients/provider-client/src/lib.rs index 9b4ca131e49..befac332c91 100644 --- a/common/clients/provider-client/src/lib.rs +++ b/common/clients/provider-client/src/lib.rs @@ -1,4 +1,5 @@ use futures::io::Error; +use log::*; use sfw_provider_requests::requests::{ProviderRequest, PullRequest, RegisterRequest}; use sfw_provider_requests::responses::{ ProviderResponse, ProviderResponseError, PullResponse, RegisterResponse, @@ -67,16 +68,14 @@ impl ProviderClient { socket.set_keepalive(Some(Duration::from_secs(2))).unwrap(); socket.write_all(&bytes[..]).await?; - if let Err(_e) = socket.shutdown(Shutdown::Write) { - // TODO: make it a silent log once we have a proper logging library - // eprintln!("failed to close write part of the socket; err = {:?}", e) + if let Err(e) = socket.shutdown(Shutdown::Write) { + warn!("failed to close write part of the socket; err = {:?}", e) } let mut response = Vec::new(); socket.read_to_end(&mut response).await?; - if let Err(_e) = socket.shutdown(Shutdown::Read) { - // TODO: make it a silent log once we have a proper logging library - // eprintln!("failed to close read part of the socket; err = {:?}", e) + if let Err(e) = socket.shutdown(Shutdown::Read) { + warn!("failed to close read part of the socket; err = {:?}", e) } Ok(response) diff --git a/mixnode/src/main.rs b/mixnode/src/main.rs index 6a466f67f26..e677558d15b 100644 --- a/mixnode/src/main.rs +++ b/mixnode/src/main.rs @@ -1,4 +1,5 @@ use clap::{App, Arg, ArgMatches, SubCommand}; +use log::*; use std::process; mod mix_peer; @@ -56,7 +57,7 @@ fn main() { .get_matches(); if let Err(e) = execute(arg_matches) { - println!("{}", e); + error!("{}", e); process::exit(1); } } diff --git a/mixnode/src/node/mod.rs b/mixnode/src/node/mod.rs index 99f4e9646e1..1ae4b6e65db 100644 --- a/mixnode/src/node/mod.rs +++ b/mixnode/src/node/mod.rs @@ -6,6 +6,7 @@ use curve25519_dalek::scalar::Scalar; use futures::channel::mpsc; use futures::lock::Mutex; use futures::SinkExt; +use log::*; use sphinx::header::delays::Delay as SphinxDelay; use sphinx::{ProcessedPacket, SphinxPacket}; use std::net::SocketAddr; @@ -140,7 +141,7 @@ impl PacketProcessor { .await .unwrap(); - println!("RECIPIENT: {:?}", forwarding_data.recipient); + trace!("RECIPIENT: {:?}", forwarding_data.recipient); match forwarding_data .recipient .send(forwarding_data.packet.to_bytes()) @@ -148,7 +149,7 @@ impl PacketProcessor { { Ok(()) => (), Err(e) => { - println!( + warn!( "failed to write bytes to next mix peer. err = {:?}", e.to_string() ); @@ -190,7 +191,7 @@ impl MixNode { match socket.read(&mut buf).await { // socket closed Ok(n) if n == 0 => { - println!("Remote connection closed."); + trace!("Remote connection closed."); return; } Ok(_) => { @@ -203,14 +204,14 @@ impl MixNode { PacketProcessor::wait_and_forward(fwd_data).await; } Err(e) => { - println!("failed to read from socket; err = {:?}", e); + warn!("failed to read from socket; err = {:?}", e); return; } }; // Write the some data back if let Err(e) = socket.write_all(b"foomp").await { - println!("failed to write reply to socket; err = {:?}", e); + warn!("failed to write reply to socket; err = {:?}", e); return; } } diff --git a/nym-client/src/client/mod.rs b/nym-client/src/client/mod.rs index c9685af0b95..8359716f711 100644 --- a/nym-client/src/client/mod.rs +++ b/nym-client/src/client/mod.rs @@ -259,7 +259,7 @@ impl NymClient { }); // this line in theory should never be reached as the runtime should be permanently blocked on traffic senders - eprintln!("The client went kaput..."); + error!("The client went kaput..."); Ok(()) } } diff --git a/nym-client/src/sockets/tcp.rs b/nym-client/src/sockets/tcp.rs index c063c7e4b84..709181a684f 100644 --- a/nym-client/src/sockets/tcp.rs +++ b/nym-client/src/sockets/tcp.rs @@ -5,6 +5,7 @@ use futures::channel::{mpsc, oneshot}; use futures::future::FutureExt; use futures::io::Error; use futures::SinkExt; +use log::*; use sphinx::route::{Destination, DestinationAddressBytes}; use std::borrow::Borrow; use std::convert::TryFrom; @@ -94,26 +95,20 @@ impl ClientRequest { recipient_address: DestinationAddressBytes, mut input_tx: mpsc::UnboundedSender, ) -> ServerResponse { - println!( - "send handle. sending to: {:?}, msg: {:?}", - recipient_address, msg - ); + trace!("sending to: {:?}, msg: {:?}", recipient_address, msg); let dummy_surb = [0; 16]; let input_msg = InputMessage(Destination::new(recipient_address, dummy_surb), msg); - - println!("ALMOST ABOUT TO SOMEDAY SEND {:?}", input_msg); input_tx.send(input_msg).await.unwrap(); - ServerResponse::Send } async fn handle_fetch(mut msg_query: mpsc::UnboundedSender) -> ServerResponse { - println!("fetch handle"); + trace!("handle_fetch called"); let (res_tx, res_rx) = oneshot::channel(); if msg_query.send(res_tx).await.is_err() { - return ServerResponse::Error { - message: "Server failed to receive messages".to_string(), - }; + let e = "Nym-client TCP socket failed to receive messages".to_string(); + error!("{}", e); + return ServerResponse::Error { message: e }; } let messages = res_rx.map(|msg| msg).await; @@ -125,12 +120,11 @@ impl ClientRequest { } let messages = messages.unwrap(); - println!("fetched {} messages", messages.len()); + trace!("fetched {} messages", messages.len()); ServerResponse::Fetch { messages } } async fn handle_get_clients(topology: &Topology) -> ServerResponse { - println!("get client handle"); let clients = topology .mix_provider_nodes .iter() @@ -141,7 +135,6 @@ impl ClientRequest { } async fn handle_own_details(self_address_bytes: DestinationAddressBytes) -> ServerResponse { - println!("own details handle"); ServerResponse::OwnDetails { address: self_address_bytes.to_vec(), } @@ -189,7 +182,7 @@ fn encode_fetched_messages(messages: Vec>) -> Vec { } fn encode_list_of_clients(clients: Vec>) -> Vec { - println!("client: {:?}", clients); + debug!("client: {:?}", clients); // we can just concat all client since all of them got to be 32 bytes long // (if not, then we have bigger problem somewhere up the line) @@ -245,7 +238,7 @@ async fn accept_connection( let address = socket .peer_addr() .expect("connected streams should have a peer address"); - println!("Peer address: {}", address); + debug!("Peer address: {}", address); let topology = Arc::new(topology); @@ -258,7 +251,7 @@ async fn accept_connection( let response = match socket.read(&mut buf).await { // socket closed Ok(n) if n == 0 => { - println!("Remote connection closed."); + trace!("Remote connection closed."); return; } Ok(n) => { @@ -274,14 +267,14 @@ async fn accept_connection( } } Err(e) => { - eprintln!("failed to read from socket; err = {:?}", e); + warn!("failed to read from socket; err = {:?}", e); return; } }; let response_vec: Vec = response.into(); if let Err(e) = socket.write_all(&response_vec).await { - eprintln!("failed to write reply to socket; err = {:?}", e); + warn!("failed to write reply to socket; err = {:?}", e); return; } } @@ -308,6 +301,6 @@ pub async fn start_tcpsocket( )); } - eprintln!("The tcpsocket went kaput..."); + error!("The tcpsocket went kaput..."); Ok(()) } diff --git a/nym-client/src/sockets/ws.rs b/nym-client/src/sockets/ws.rs index 14aacdcb5d1..621c9ffe805 100644 --- a/nym-client/src/sockets/ws.rs +++ b/nym-client/src/sockets/ws.rs @@ -406,6 +406,6 @@ pub async fn start_websocket( )); } - eprintln!("The websocket went kaput..."); + error!("The websocket went kaput..."); Ok(()) } diff --git a/sfw-provider/src/main.rs b/sfw-provider/src/main.rs index e0efaa480c0..4365d943d9c 100644 --- a/sfw-provider/src/main.rs +++ b/sfw-provider/src/main.rs @@ -1,6 +1,7 @@ use crate::provider::ServiceProvider; use clap::{App, Arg, ArgMatches, SubCommand}; use crypto::identity::MixnetIdentityKeyPair; +use log::error; use std::net::ToSocketAddrs; use std::path::PathBuf; use std::process; @@ -67,7 +68,7 @@ fn main() { .get_matches(); if let Err(e) = execute(arg_matches) { - println!("{}", e); + error!("{}", e); process::exit(1); } } diff --git a/sfw-provider/src/provider/client_handling/mod.rs b/sfw-provider/src/provider/client_handling/mod.rs index e35540f6827..b79c1962f7a 100644 --- a/sfw-provider/src/provider/client_handling/mod.rs +++ b/sfw-provider/src/provider/client_handling/mod.rs @@ -3,6 +3,7 @@ use crate::provider::ClientLedger; use crypto::identity::{DummyMixIdentityPrivateKey, MixnetIdentityPrivateKey}; use futures::lock::Mutex as FMutex; use hmac::{Hmac, Mac}; +use log::*; use sfw_provider_requests::requests::{ ProviderRequestError, ProviderRequests, PullRequest, RegisterRequest, }; @@ -82,7 +83,7 @@ impl ClientRequestProcessor { processing_data: Arc, ) -> Result, ClientProcessingError> { let client_request = ProviderRequests::from_bytes(&data)?; - println!("Received the following request: {:?}", client_request); + trace!("Received the following request: {:?}", client_request); match client_request { ProviderRequests::Register(req) => Ok(ClientRequestProcessor::register_new_client( req, @@ -106,7 +107,6 @@ impl ClientRequestProcessor { // Wait for https://github.com/nymtech/nym-sfw-provider/issues/19 to resolve. let unlocked_ledger = processing_data.registered_clients_ledger.lock().await; - println!("Processing pull!"); if unlocked_ledger.has_token(req.auth_token) { // drop the mutex so that we could do IO without blocking others wanting to get the lock drop(unlocked_ledger); @@ -124,7 +124,10 @@ impl ClientRequestProcessor { req: RegisterRequest, processing_data: Arc, ) -> Result { - println!("Processing register new client request!"); + debug!( + "Processing register new client request: {:?}", + req.destination_address + ); let mut unlocked_ledger = processing_data.registered_clients_ledger.lock().await; let auth_token = ClientRequestProcessor::generate_new_auth_token( diff --git a/sfw-provider/src/provider/mod.rs b/sfw-provider/src/provider/mod.rs index 567bd9f8503..bc32073da86 100644 --- a/sfw-provider/src/provider/mod.rs +++ b/sfw-provider/src/provider/mod.rs @@ -5,6 +5,7 @@ use crypto::identity::{DummyMixIdentityPrivateKey, DummyMixIdentityPublicKey}; use directory_client::presence::MixProviderClient; use futures::io::Error; use futures::lock::Mutex as FMutex; +use log::*; use sfw_provider_requests::AuthToken; use sphinx::route::DestinationAddressBytes; use std::collections::HashMap; @@ -132,7 +133,7 @@ impl ServiceProvider { match socket.read(&mut buf).await { // socket closed Ok(n) if n == 0 => { - println!("Remote connection closed."); + trace!("Remote connection closed."); return; } Ok(_) => { @@ -142,7 +143,7 @@ impl ServiceProvider { ) { Ok(sd) => sd, Err(e) => { - eprintln!("failed to process sphinx packet; err = {:?}", e); + warn!("failed to process sphinx packet; err = {:?}", e); return; } }; @@ -151,19 +152,19 @@ impl ServiceProvider { processing_data.read().unwrap().store_dir.as_path(), ) .unwrap_or_else(|e| { - eprintln!("failed to store processed sphinx message; err = {:?}", e); + error!("failed to store processed sphinx message; err = {:?}", e); return; }); } Err(e) => { - eprintln!("failed to read from socket; err = {:?}", e); + warn!("failed to read from socket; err = {:?}", e); return; } }; // Write the some data back if let Err(e) = socket.write_all(b"foomp").await { - eprintln!("failed to write reply to socket; err = {:?}", e); + warn!("failed to write reply to socket; err = {:?}", e); return; } } @@ -171,10 +172,10 @@ impl ServiceProvider { async fn send_response(mut socket: tokio::net::TcpStream, data: &[u8]) { if let Err(e) = socket.write_all(data).await { - eprintln!("failed to write reply to socket; err = {:?}", e) + warn!("failed to write reply to socket; err = {:?}", e) } if let Err(e) = socket.shutdown(Shutdown::Write) { - eprintln!("failed to close write part of the socket; err = {:?}", e) + warn!("failed to close write part of the socket; err = {:?}", e) } } @@ -189,7 +190,7 @@ impl ServiceProvider { let response = match socket.read(&mut buf).await { // socket closed Ok(n) if n == 0 => { - println!("Remote connection closed."); + trace!("Remote connection closed."); Err(()) } Ok(n) => { @@ -200,29 +201,27 @@ impl ServiceProvider { .await { Err(e) => { - eprintln!("failed to process client request; err = {:?}", e); + warn!("failed to process client request; err = {:?}", e); Err(()) } Ok(res) => Ok(res), } } Err(e) => { - eprintln!("failed to read from socket; err = {:?}", e); + warn!("failed to read from socket; err = {:?}", e); Err(()) } }; if let Err(e) = socket.shutdown(Shutdown::Read) { - eprintln!("failed to close read part of the socket; err = {:?}", e) + warn!("failed to close read part of the socket; err = {:?}", e) } match response { Ok(res) => { - println!("should send this response! {:?}", res); ServiceProvider::send_response(socket, &res).await; } _ => { - println!("we failed..."); ServiceProvider::send_response(socket, b"bad foomp").await; } } @@ -308,7 +307,7 @@ impl ServiceProvider { }); // this line in theory should never be reached as the runtime should be permanently blocked on listeners - eprintln!("The server went kaput..."); + error!("The server went kaput..."); Ok(()) } } diff --git a/sfw-provider/src/provider/storage/mod.rs b/sfw-provider/src/provider/storage/mod.rs index 5a0af2d6394..fb7607a5063 100644 --- a/sfw-provider/src/provider/storage/mod.rs +++ b/sfw-provider/src/provider/storage/mod.rs @@ -1,4 +1,5 @@ use crate::provider::{MESSAGE_RETRIEVAL_LIMIT, STORED_MESSAGE_FILENAME_LENGTH}; +use log::*; use rand::Rng; use sfw_provider_requests::DUMMY_MESSAGE_CONTENT; use sphinx::route::{DestinationAddressBytes, SURBIdentifier}; @@ -62,7 +63,7 @@ impl ClientStorage { let client_dir_name = hex::encode(store_data.client_address); let full_store_dir = store_dir.join(client_dir_name); let full_store_path = full_store_dir.join(ClientStorage::generate_random_file_name()); - println!( + debug!( "going to store: {:?} in file: {:?}", store_data.message, full_store_path ); @@ -83,7 +84,7 @@ impl ClientStorage { let client_dir_name = hex::encode(client_address); let full_store_dir = store_dir.join(client_dir_name); - println!("going to lookup: {:?}!", full_store_dir); + trace!("going to lookup: {:?}!", full_store_dir); if !full_store_dir.exists() { return Err(StoreError::ClientDoesntExistError); } @@ -93,7 +94,7 @@ impl ClientStorage { .filter(|entry| { let is_file = entry.metadata().unwrap().is_file(); if !is_file { - eprintln!( + error!( "potentially corrupted client inbox! - found a non-file - {:?}", entry.path() ); @@ -109,8 +110,6 @@ impl ClientStorage { .take(MESSAGE_RETRIEVAL_LIMIT) .collect(); - println!("retrieved the following data: {:?}", msgs); - Ok(msgs) } @@ -118,7 +117,7 @@ impl ClientStorage { // TODO 2: This should only be called AFTER we sent the reply. Because if client's connection failed after sending request // the messages would be deleted but he wouldn't have received them fn delete_file(path: PathBuf) -> io::Result<()> { - println!("Here {:?} will be deleted!", path); + trace!("Here {:?} will be deleted!", path); std::fs::remove_file(path) // another argument for db layer -> remove_file is NOT guaranteed to immediately get rid of the file } } From b5e2f9fca8c4be55bdee6180a2dbb4477b482c32 Mon Sep 17 00:00:00 2001 From: Dave Hrycyszyn Date: Wed, 22 Jan 2020 17:27:30 +0000 Subject: [PATCH 5/5] all: adding dotenv to all binary crates --- Cargo.lock | 3 +++ mixnode/Cargo.toml | 1 + mixnode/src/main.rs | 1 + nym-client/Cargo.toml | 1 + nym-client/src/main.rs | 1 + sfw-provider/Cargo.toml | 1 + sfw-provider/src/main.rs | 1 + validator/src/main.rs | 1 + 8 files changed, 10 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 29518de6926..8f66257ba3c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1350,6 +1350,7 @@ dependencies = [ "curve25519-dalek", "directory-client", "dirs", + "dotenv", "futures 0.3.1", "healthcheck", "hex", @@ -1380,6 +1381,7 @@ dependencies = [ "clap", "curve25519-dalek", "directory-client", + "dotenv", "futures 0.3.1", "log", "pretty_env_logger", @@ -1397,6 +1399,7 @@ dependencies = [ "crypto", "curve25519-dalek", "directory-client", + "dotenv", "futures 0.3.1", "hex", "hmac", diff --git a/mixnode/Cargo.toml b/mixnode/Cargo.toml index 602d119bad7..e538c329d9d 100644 --- a/mixnode/Cargo.toml +++ b/mixnode/Cargo.toml @@ -11,6 +11,7 @@ edition = "2018" base64 = "0.11.0" clap = "2.33.0" curve25519-dalek = "1.2.3" +dotenv = "0.15.0" futures = "0.3.1" log = "0.4" pretty_env_logger = "0.3" diff --git a/mixnode/src/main.rs b/mixnode/src/main.rs index e677558d15b..f16f460dd36 100644 --- a/mixnode/src/main.rs +++ b/mixnode/src/main.rs @@ -6,6 +6,7 @@ mod mix_peer; mod node; fn main() { + dotenv::dotenv().ok(); pretty_env_logger::init(); let arg_matches = App::new("Nym Mixnode") diff --git a/nym-client/Cargo.toml b/nym-client/Cargo.toml index 782b68d31e6..51730b0dd16 100644 --- a/nym-client/Cargo.toml +++ b/nym-client/Cargo.toml @@ -16,6 +16,7 @@ base64 = "0.11.0" clap = "2.33.0" curve25519-dalek = "1.2.3" dirs = "2.0.2" +dotenv = "0.15.0" futures = "0.3.1" hex = "0.4.0" log = "0.4" diff --git a/nym-client/src/main.rs b/nym-client/src/main.rs index 5dd19e9a7cf..81606418281 100644 --- a/nym-client/src/main.rs +++ b/nym-client/src/main.rs @@ -7,6 +7,7 @@ pub mod config; mod sockets; fn main() { + dotenv::dotenv().ok(); pretty_env_logger::init(); let arg_matches = App::new("Nym Client") diff --git a/sfw-provider/Cargo.toml b/sfw-provider/Cargo.toml index 1fe97babcf2..4c0fc7c1321 100644 --- a/sfw-provider/Cargo.toml +++ b/sfw-provider/Cargo.toml @@ -11,6 +11,7 @@ edition = "2018" base64 = "0.11.0" clap = "2.33.0" curve25519-dalek = "1.2.3" +dotenv = "0.15.0" hex = "0.4.0" futures = "0.3.1" log = "0.4" diff --git a/sfw-provider/src/main.rs b/sfw-provider/src/main.rs index 4365d943d9c..6cd945a2c0f 100644 --- a/sfw-provider/src/main.rs +++ b/sfw-provider/src/main.rs @@ -9,6 +9,7 @@ use std::process; pub mod provider; fn main() { + dotenv::dotenv().ok(); pretty_env_logger::init(); let arg_matches = App::new("Nym Service Provider") diff --git a/validator/src/main.rs b/validator/src/main.rs index 8b8503cc917..39d0d375f35 100644 --- a/validator/src/main.rs +++ b/validator/src/main.rs @@ -8,6 +8,7 @@ use toml; mod validator; fn main() { + dotenv::dotenv().ok(); pretty_env_logger::init(); let arg_matches = App::new("Nym Validator")