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
components: rustfmt, clippy
- name: Check formatting
run: cargo fmt --all -- --check
- name: Lint with Clippy
run: cargo clippy -- -D warnings

View File

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

View File

@@ -1,8 +1,8 @@
use crate::config::Config;
mod config;
mod utils;
mod server;
mod utils;
fn main() {
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 colored::Colorize;
use std::net::UdpSocket;
pub fn listen(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());
if forwarding_addr_opt.is_some() {
let forwarding_addr = forwarding_addr_opt.unwrap();
if let Some(forwarding_addr) = forwarding_addr_opt {
socket
.send_to(message.as_bytes(), forwarding_addr)
.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
);
}
}
}