mod diplonat; mod node_state; mod environment_adapter; mod igd_adapter; //use std::net::SocketAddrV4; //use std::collections::HashMap; //use igd::PortMappingProtocol; use log::*; use node_state::*; use diplonat::*; #[tokio::main] async fn main() { pretty_env_logger::init(); info!("Starting Diplonat"); let diplo = Diplonat::new().await.expect("Setup failed"); diplo.listen().await.expect("A runtime error occured"); /* let url = format!("http://127.0.0.1:8500/v1/catalog/node/{}", config.consul_node_name); let resp = reqwest::get(&url) .await .unwrap(); //.json::>() //.await.unwrap(); println!("{:#?}", resp); let gateway = match search_gateway(Default::default()).await { Ok(g) => g, Err(err) => return println!("Faild to find IGD: {}", err), }; let service = format!("{}:{}", config.private_ip, 1234); let service: SocketAddrV4 = service.parse().expect("Invalid socket address"); match gateway.add_port(PortMappingProtocol::TCP, 1234, service, config.expiration_time, "diplonat").await { Ok(_) => (), Err(e) => return println!("Unable to insert port 1234: {}", e), }; */ }