start to adding logs
This commit is contained in:
parent
d61bd044a4
commit
276af0ba97
190
Cargo.lock
generated
190
Cargo.lock
generated
@ -2,18 +2,55 @@
|
|||||||
# It is not intended for manual editing.
|
# It is not intended for manual editing.
|
||||||
version = 3
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "atty"
|
||||||
|
version = "0.2.14"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
|
||||||
|
dependencies = [
|
||||||
|
"hermit-abi",
|
||||||
|
"libc",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "autocfg"
|
name = "autocfg"
|
||||||
version = "1.1.0"
|
version = "1.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cfg-if"
|
||||||
|
version = "1.0.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "colored"
|
||||||
|
version = "2.0.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd"
|
||||||
|
dependencies = [
|
||||||
|
"atty",
|
||||||
|
"lazy_static",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hashbrown"
|
name = "hashbrown"
|
||||||
version = "0.12.3"
|
version = "0.12.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hermit-abi"
|
||||||
|
version = "0.1.19"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "indexmap"
|
name = "indexmap"
|
||||||
version = "1.9.1"
|
version = "1.9.1"
|
||||||
@ -30,12 +67,44 @@ version = "1.0.4"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
|
checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lazy_static"
|
||||||
|
version = "1.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libc"
|
||||||
|
version = "0.2.144"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "log"
|
||||||
|
version = "0.4.17"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "minecraft_proxy"
|
name = "minecraft_proxy"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"log",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_yaml",
|
"serde_yaml",
|
||||||
|
"simple_logger",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num_threads"
|
||||||
|
version = "0.1.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -95,6 +164,19 @@ dependencies = [
|
|||||||
"unsafe-libyaml",
|
"unsafe-libyaml",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "simple_logger"
|
||||||
|
version = "4.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e78beb34673091ccf96a8816fce8bfd30d1292c7621ca2bcb5f2ba0fae4f558d"
|
||||||
|
dependencies = [
|
||||||
|
"atty",
|
||||||
|
"colored",
|
||||||
|
"log",
|
||||||
|
"time",
|
||||||
|
"windows-sys",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "syn"
|
name = "syn"
|
||||||
version = "1.0.103"
|
version = "1.0.103"
|
||||||
@ -106,6 +188,35 @@ dependencies = [
|
|||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time"
|
||||||
|
version = "0.3.21"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc"
|
||||||
|
dependencies = [
|
||||||
|
"itoa",
|
||||||
|
"libc",
|
||||||
|
"num_threads",
|
||||||
|
"serde",
|
||||||
|
"time-core",
|
||||||
|
"time-macros",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time-core"
|
||||||
|
version = "0.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time-macros"
|
||||||
|
version = "0.2.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b"
|
||||||
|
dependencies = [
|
||||||
|
"time-core",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-ident"
|
name = "unicode-ident"
|
||||||
version = "1.0.5"
|
version = "1.0.5"
|
||||||
@ -117,3 +228,82 @@ name = "unsafe-libyaml"
|
|||||||
version = "0.2.4"
|
version = "0.2.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c1e5fa573d8ac5f1a856f8d7be41d390ee973daf97c806b2c1a465e4e1406e68"
|
checksum = "c1e5fa573d8ac5f1a856f8d7be41d390ee973daf97c806b2c1a465e4e1406e68"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi"
|
||||||
|
version = "0.3.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
||||||
|
dependencies = [
|
||||||
|
"winapi-i686-pc-windows-gnu",
|
||||||
|
"winapi-x86_64-pc-windows-gnu",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-i686-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-x86_64-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows-sys"
|
||||||
|
version = "0.42.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
|
||||||
|
dependencies = [
|
||||||
|
"windows_aarch64_gnullvm",
|
||||||
|
"windows_aarch64_msvc",
|
||||||
|
"windows_i686_gnu",
|
||||||
|
"windows_i686_msvc",
|
||||||
|
"windows_x86_64_gnu",
|
||||||
|
"windows_x86_64_gnullvm",
|
||||||
|
"windows_x86_64_msvc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_aarch64_gnullvm"
|
||||||
|
version = "0.42.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_aarch64_msvc"
|
||||||
|
version = "0.42.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_i686_gnu"
|
||||||
|
version = "0.42.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_i686_msvc"
|
||||||
|
version = "0.42.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_x86_64_gnu"
|
||||||
|
version = "0.42.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_x86_64_gnullvm"
|
||||||
|
version = "0.42.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_x86_64_msvc"
|
||||||
|
version = "0.42.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
|
||||||
|
@ -6,6 +6,8 @@ edition = "2021"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
serde = { version = "*", features = ["derive"] }
|
serde = { version = "*", features = ["derive"] }
|
||||||
serde_yaml = "*"
|
serde_yaml = "*"
|
||||||
|
log = "*"
|
||||||
|
simple_logger = "*"
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
lto = true
|
lto = true
|
@ -24,10 +24,6 @@ impl<'a> Client<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn to_string(&self){
|
|
||||||
println!("len_pack {}", self.hs.get_host_name());
|
|
||||||
}
|
|
||||||
|
|
||||||
fn join_conexions(mut origin: TcpStream,
|
fn join_conexions(mut origin: TcpStream,
|
||||||
mut dest: TcpStream,
|
mut dest: TcpStream,
|
||||||
run: Arc<RwLock<bool>>){
|
run: Arc<RwLock<bool>>){
|
||||||
|
@ -3,6 +3,8 @@ use std::fs::File;
|
|||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use std::io::prelude::*;
|
use std::io::prelude::*;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
use log::{error, warn};
|
||||||
|
|
||||||
#[cfg(not(debug_assertions))]
|
#[cfg(not(debug_assertions))]
|
||||||
macro_rules! PATH { () => { "/etc/mrproxy/" } }
|
macro_rules! PATH { () => { "/etc/mrproxy/" } }
|
||||||
#[cfg(not(debug_assertions))]
|
#[cfg(not(debug_assertions))]
|
||||||
@ -45,8 +47,14 @@ impl Config {
|
|||||||
let mut s2 = String::new();
|
let mut s2 = String::new();
|
||||||
conf_file.read_to_string(&mut s1).unwrap();
|
conf_file.read_to_string(&mut s1).unwrap();
|
||||||
servers_file.read_to_string(&mut s2).unwrap();
|
servers_file.read_to_string(&mut s2).unwrap();
|
||||||
let yam_conf: ConfFile = serde_yaml::from_str(&s1).unwrap();
|
let yam_conf: ConfFile = match serde_yaml::from_str(&s1) {
|
||||||
let yam_ser: Vec<ServerData> = serde_yaml::from_str(&s2).unwrap();
|
Ok(result) => result,
|
||||||
|
Err(e) => {error!("Config file malformed"); panic!("{}", e);},
|
||||||
|
};
|
||||||
|
let yam_ser: Vec<ServerData> = match serde_yaml::from_str(&s2) {
|
||||||
|
Ok(result) => result,
|
||||||
|
Err(e) => {warn!("IPs list file malformed; creating new one"); Vec::new()},
|
||||||
|
};
|
||||||
Self{
|
Self{
|
||||||
l_servers: Self::get_servers(&yam_ser),
|
l_servers: Self::get_servers(&yam_ser),
|
||||||
port: yam_conf.port,
|
port: yam_conf.port,
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
use std::thread;
|
use std::thread;
|
||||||
//use server_conf::server_conf;
|
//use server_conf::server_conf;
|
||||||
use std::sync::{Arc, RwLock};
|
use std::sync::{Arc, RwLock};
|
||||||
|
use log::info;
|
||||||
|
use simple_logger::SimpleLogger;
|
||||||
mod client;
|
mod client;
|
||||||
mod conf;
|
mod conf;
|
||||||
mod server_conf;
|
mod server_conf;
|
||||||
@ -9,6 +10,8 @@ mod protocol;
|
|||||||
mod server_proxy;
|
mod server_proxy;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
SimpleLogger::new().init().unwrap();
|
||||||
|
info!("start server");
|
||||||
let servers = Arc::new(RwLock::new(conf::Config::new()));
|
let servers = Arc::new(RwLock::new(conf::Config::new()));
|
||||||
let s1 = servers.clone();
|
let s1 = servers.clone();
|
||||||
let s2 = servers.clone();
|
let s2 = servers.clone();
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
use std::io::prelude::*;
|
use std::io::prelude::*;
|
||||||
use crate::conf;
|
use crate::conf;
|
||||||
use std::sync::{Arc, RwLock};
|
use std::sync::{Arc, RwLock};
|
||||||
|
use log::{error, warn};
|
||||||
|
|
||||||
const OP_ADD: u8 = 0;
|
const OP_ADD: u8 = 0;
|
||||||
const OP_DEL: u8 = 1;
|
const OP_DEL: u8 = 1;
|
||||||
@ -34,7 +35,7 @@ impl<TSocket: Read + Write> Conexion<TSocket> {
|
|||||||
while !self.exit {
|
while !self.exit {
|
||||||
match self.stream.read_exact(&mut state){
|
match self.stream.read_exact(&mut state){
|
||||||
Ok(len) => self.check_state(state[0]),
|
Ok(len) => self.check_state(state[0]),
|
||||||
Err(e) => {self.exit=true; println!("Fatal: {}", e);},
|
Err(e) => {self.exit=true; error!("{}", e);},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,7 +74,7 @@ impl<TSocket: Read + Write> Conexion<TSocket> {
|
|||||||
};
|
};
|
||||||
self.conf.read().unwrap().flush();
|
self.conf.read().unwrap().flush();
|
||||||
},
|
},
|
||||||
Err(e) => {self.exit=true; println!("e: {}", e);},
|
Err(e) => {self.exit=true; warn!("{}", e);},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -87,10 +88,10 @@ impl<TSocket: Read + Write> Conexion<TSocket> {
|
|||||||
};
|
};
|
||||||
self.conf.read().unwrap().flush();
|
self.conf.read().unwrap().flush();
|
||||||
}
|
}
|
||||||
Err(e) => {self.exit=true; println!("e: {}", e);},
|
Err(e) => {self.exit=true; error!("{}", e);},
|
||||||
},
|
},
|
||||||
OP_EXIT => self.exit=true,
|
OP_EXIT => self.exit=true,
|
||||||
_=> println!("no recognice option: {}", state),
|
_=> warn!("no recognice option: {}", state),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ use crate::server_conf::conexion::Conexion;
|
|||||||
use crate::server_conf::listener::GenericListener;
|
use crate::server_conf::listener::GenericListener;
|
||||||
use std::thread;
|
use std::thread;
|
||||||
use std::sync::{Arc, RwLock};
|
use std::sync::{Arc, RwLock};
|
||||||
|
use log::{error,info};
|
||||||
|
|
||||||
pub struct ConfSer{
|
pub struct ConfSer{
|
||||||
path: String,
|
path: String,
|
||||||
@ -23,7 +24,7 @@ impl Drop for ConfSer {
|
|||||||
fn drop(&mut self) {
|
fn drop(&mut self) {
|
||||||
// There's no way to return a useful error here
|
// There's no way to return a useful error here
|
||||||
let _ = std::fs::remove_file(self.path.clone()).unwrap();
|
let _ = std::fs::remove_file(self.path.clone()).unwrap();
|
||||||
println!("> Dropping {}", self.path);
|
info!("> Dropping {}", self.path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,7 +38,7 @@ pub fn start(conf: Arc<RwLock<conf::Config>>){
|
|||||||
let c = conf.clone();
|
let c = conf.clone();
|
||||||
thread::spawn(|| Conexion::new(c, stream).process_reques());
|
thread::spawn(|| Conexion::new(c, stream).process_reques());
|
||||||
}
|
}
|
||||||
Err(e) => println!("{}", e)
|
Err(e) => error!("{}", e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ use std::thread;
|
|||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use crate::protocol;
|
use crate::protocol;
|
||||||
use crate::conf;
|
use crate::conf;
|
||||||
|
use log::{error, info};
|
||||||
|
|
||||||
pub fn start(servers: Arc<RwLock<conf::Config>>){
|
pub fn start(servers: Arc<RwLock<conf::Config>>){
|
||||||
let listener = TcpListener::bind(String::from("0.0.0.0:") + servers.read().unwrap().get_port()).unwrap();
|
let listener = TcpListener::bind(String::from("0.0.0.0:") + servers.read().unwrap().get_port()).unwrap();
|
||||||
@ -20,7 +21,7 @@ pub fn start(servers: Arc<RwLock<conf::Config>>){
|
|||||||
thread::spawn(|| read_connection(stream, s , g));
|
thread::spawn(|| read_connection(stream, s , g));
|
||||||
},
|
},
|
||||||
|
|
||||||
Err(_e) => println!("{}",_e),
|
Err(_e) => error!("{}",_e),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -55,7 +56,7 @@ fn conect_server(servers: Arc<RwLock<conf::Config>>,
|
|||||||
let c1 = client::Client::new(stream,sstream, hs);
|
let c1 = client::Client::new(stream,sstream, hs);
|
||||||
guard.write().unwrap().add_thread(c1.start_proxy());
|
guard.write().unwrap().add_thread(c1.start_proxy());
|
||||||
},
|
},
|
||||||
None => println!("No server found for {}", hs.get_host_name())
|
None => info!("No server found for {}", hs.get_host_name())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user