1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
mod request; use std::{ error::Error, fs::File, io::{prelude::*, BufReader, BufWriter}, }; use request::request_n; pub fn fuzz( url: &str, source: &str, num_parallel: Option<&str>, out: Option<&str>, ) -> Result<(), Box<Error>> { println!("running fuzz"); let out = out.unwrap_or_else(|| { println!("no output directory specified, writing output to fuzz.txt"); "fuzz.txt" }); let num_parallel: usize = num_parallel .unwrap_or_else(|| { println!("using 8 parallel requests"); "8" }) .parse()?; let mut outfile = BufWriter::new(File::create(out)?); let sourcefile = BufReader::new(File::open(source)?); let mut lines = sourcefile.lines(); while request_n(&mut lines, num_parallel, url, &mut outfile)? {} Ok(()) }