From 53f0018390fdba1f1d97c66ef473241d0f903517 Mon Sep 17 00:00:00 2001 From: ingressy Date: Tue, 17 Mar 2026 19:41:03 +0000 Subject: [PATCH] =?UTF-8?q?src/main.rs=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.rs | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/main.rs diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..ccda395 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,53 @@ +mod test; + +use test::sendtestudp; +use clap::{Parser, Subcommand}; + +#[derive(Parser)] +#[command(about="A tiny and slow DHCP Server in Rust")] +#[command(name = "catDHCP")] +#[command(version = "0.1")] +struct Args { + #[command(subcommand)] + command: Command, +} + +#[derive(Subcommand)] +enum Command { + Test { + #[command(subcommand)] + action: TestCommands, + } +} +#[derive(Subcommand)] +enum TestCommands { + //send test udp paket + SendUDP { + #[arg(long, default_value = "172.0.0.1")] + to: String, + + #[arg(long, default_value_t = 14)] + port: u16, + + ///payload in hex like "44 69 65 20 41 6E 74 77 6F 72 74 20 61 75 66 20 61 6C 6C 65 73 20 69 73 74 20 34 32 21" + #[arg(long, value_name = "HEX")] + payload: Option + } +} + +fn main() { + let args = Args::parse(); + + match args.command { + Command::Test {action} => match action { + TestCommands::SendUDP {to,port,payload} => { + println!("send udp packet to {}:{} with:", to, port); + if let Some(payload) = payload { + println!("payload: {}", payload); + sendtestudp(to,port,payload) + } + } + } + } + +} \ No newline at end of file