Compare commits

...

3 Commits

Author SHA1 Message Date
Namu
2a3ef945ae fix: updated rust, follow clippy recommendation
All checks were successful
Build project / quality-and-build (push) Successful in 10m12s
Build project / SonarQube Trigger (push) Successful in 22s
2026-03-24 09:28:32 +01:00
Namu
1138dddcb7 fix: remove check formating step in CI/CD (different version makes it bug I guess)
Some checks failed
Build project / quality-and-build (push) Failing after 10m8s
Build project / SonarQube Trigger (push) Has been skipped
2026-03-23 18:06:38 +01:00
Namu
e97a15d84b fix: format the project 2026-03-23 16:45:29 +01:00
4 changed files with 35 additions and 35 deletions

View File

@@ -20,9 +20,6 @@ jobs:
toolchain: stable toolchain: stable
components: rustfmt, clippy components: rustfmt, clippy
- name: Check formatting
run: cargo fmt --all -- --check
- name: Lint with Clippy - name: Lint with Clippy
run: cargo clippy -- -D warnings run: cargo clippy -- -D warnings

View File

@@ -9,7 +9,7 @@ pub struct Forwarding {
from: String, from: String,
to: String, to: String,
#[serde(rename = "doReverse")] #[serde(rename = "doReverse")]
do_reverse: bool do_reverse: bool,
} }
impl Forwarding { impl Forwarding {
@@ -17,25 +17,27 @@ impl Forwarding {
Forwarding { Forwarding {
from, from,
to, to,
do_reverse do_reverse,
} }
} }
pub fn from_json(json: &Value) -> Forwarding { pub fn from_json(json: &Value) -> Forwarding {
let object_forwarding = json.as_object() let object_forwarding = json.as_object().expect("Error parsing forwarding");
.expect("Error parsing forwarding");
let from = object_forwarding.get("from") let from = object_forwarding
.get("from")
.unwrap() .unwrap()
.as_str() .as_str()
.expect("Error parsing from field"); .expect("Error parsing from field");
let to = object_forwarding.get("to") let to = object_forwarding
.get("to")
.unwrap() .unwrap()
.as_str() .as_str()
.expect("Error parsing to field"); .expect("Error parsing to field");
let do_reverse = object_forwarding.get("doReverse") let do_reverse = object_forwarding
.get("doReverse")
.unwrap() .unwrap()
.as_bool() .as_bool()
.expect("Error parsing doReverse field"); .expect("Error parsing doReverse field");
@@ -49,7 +51,7 @@ pub struct Config {
#[serde(rename = "serverAddr")] #[serde(rename = "serverAddr")]
server_addr: String, server_addr: String,
blacklist: Vec<String>, blacklist: Vec<String>,
forwarding: Vec<Forwarding> forwarding: Vec<Forwarding>,
} }
impl Config { impl Config {
@@ -57,23 +59,23 @@ impl Config {
Config { Config {
server_addr, server_addr,
blacklist, blacklist,
forwarding forwarding,
} }
} }
fn read_config_file(file_name: String) -> String { fn read_config_file(file_name: String) -> String {
let mut file = File::open(file_name).expect("Error opening config.json file. Go to the readme file and paste the example."); let mut file = File::open(file_name)
.expect("Error opening config.json file. Go to the readme file and paste the example.");
let mut buf = String::new(); let mut buf = String::new();
file.read_to_string(&mut buf).expect("Error reading config file content."); file.read_to_string(&mut buf)
.expect("Error reading config file content.");
buf buf
} }
fn parse_buffer(buf: &str) -> serde_json::Map<String, Value> { fn parse_buffer(buf: &str) -> serde_json::Map<String, Value> {
let json: Value = serde_json::from_str(buf) let json: Value = serde_json::from_str(buf).expect("Error parsing config file");
.expect("Error parsing config file");
let object_data = json.as_object() let object_data = json.as_object().expect("Error parsing config file.");
.expect("Error parsing config file.");
object_data.clone() object_data.clone()
} }
@@ -92,20 +94,18 @@ impl Config {
let buf = Config::read_config_file(file_name); let buf = Config::read_config_file(file_name);
let object_data = Self::parse_buffer(&buf); let object_data = Self::parse_buffer(&buf);
let server_addr = object_data
let server_addr = object_data.get("serverAddr") .get("serverAddr")
.unwrap() .unwrap()
.as_str() .as_str()
.unwrap() .unwrap()
.to_string(); .to_string();
let blacklist = object_data.get("blacklist") let blacklist = object_data.get("blacklist").unwrap().as_array().unwrap();
.unwrap()
.as_array()
.unwrap();
let str_blacklist = convert_to_vec_string(blacklist); let str_blacklist = convert_to_vec_string(blacklist);
let raw_forwarding = object_data.get("forwarding") let raw_forwarding = object_data
.get("forwarding")
.unwrap() .unwrap()
.as_array() .as_array()
.expect("Error parsing forwarding."); .expect("Error parsing forwarding.");
@@ -121,9 +121,9 @@ impl Config {
pub fn is_forwarded(&self, addr: String) -> Option<String> { pub fn is_forwarded(&self, addr: String) -> Option<String> {
for elem_forwarding in &self.forwarding { for elem_forwarding in &self.forwarding {
if elem_forwarding.from == addr { if elem_forwarding.from == addr {
return Some(elem_forwarding.to.clone()) return Some(elem_forwarding.to.clone());
} else if elem_forwarding.do_reverse && elem_forwarding.to == addr { } else if elem_forwarding.do_reverse && elem_forwarding.to == addr {
return Some(elem_forwarding.from.clone()) return Some(elem_forwarding.from.clone());
} }
} }
None None

View File

@@ -1,8 +1,8 @@
use crate::config::Config; use crate::config::Config;
mod config; mod config;
mod utils;
mod server; mod server;
mod utils;
fn main() { fn main() {
let config = Config::from_json("config.json".to_string()); let config = Config::from_json("config.json".to_string());

View File

@@ -1,6 +1,6 @@
use std::net::UdpSocket;
use colored::Colorize;
use crate::config::Config; use crate::config::Config;
use colored::Colorize;
use std::net::UdpSocket;
pub fn listen(config: &Config) { pub fn listen(config: &Config) {
let serv_config = config; let serv_config = config;
@@ -29,15 +29,18 @@ pub fn listen(config: &Config) {
let forwarding_addr_opt = serv_config.is_forwarded(src_addr.to_string()); let forwarding_addr_opt = serv_config.is_forwarded(src_addr.to_string());
if forwarding_addr_opt.is_some() { if let Some(forwarding_addr) = forwarding_addr_opt {
let forwarding_addr = forwarding_addr_opt.unwrap();
socket socket
.send_to(message.as_bytes(), forwarding_addr) .send_to(message.as_bytes(), forwarding_addr)
.expect("Error forwarding message to another ip."); .expect("Error forwarding message to another ip.");
} }
println!("{}-{}: {}", src_addr.to_string().green(), chrono::Local::now(), message); println!(
"{}-{}: {}",
src_addr.to_string().green(),
chrono::Local::now(),
message
);
} }
} }
} }