Revert & cleanup

cli
E. Almqvist 2 years ago
parent 7a246bc601
commit 326a385518
  1. 83
      src/scanner.rs

@ -1,7 +1,8 @@
use crate::ipv4; use crate::ipv4;
use anyhow::Result; use anyhow::Result;
use log::info; use log::info;
//use std::thread; use std::thread;
use std::thread::JoinHandle;
use std::net::{SocketAddr, TcpStream}; use std::net::{SocketAddr, TcpStream};
fn tcp_scan(dest: &SocketAddr) -> bool { fn tcp_scan(dest: &SocketAddr) -> bool {
@ -14,49 +15,49 @@ fn tcp_scan(dest: &SocketAddr) -> bool {
// TODO: do thread optimization // TODO: do thread optimization
// pub fn scan(target: &ipv4::IPv4) -> bool { pub fn scan(target: &ipv4::IPv4) -> bool {
// true true
// } }
//
// fn create_scan_thread(ip_list: Vec<ipv4::IPv4>, thread_id: u32, ips_per_thread: u32, results_list: &Vec<bool>) -> JoinHandle<Vec<bool>> { fn create_scan_thread(
// thread::spawn(move || { ip_list: Vec<ipv4::IPv4>,
// let results: Vec<bool> = Vec::new(); thread_id: u32,
// // do the scan thing ips_per_thread: u32,
// for i in 0..ips_per_thread { ) -> JoinHandle<Vec<bool>> {
// let id = (thread_id * ips_per_thread) + i; thread::spawn(move || {
// let ref target = ip_list[id as usize]; let results: Vec<bool> = Vec::new();
// let result = scan(&target);
// } // do the scan thing
// for i in 0..ips_per_thread {
// results let id = (thread_id * ips_per_thread) + i;
// }) let ref target = ip_list[id as usize];
// } let result = scan(&target);
// }
results
})
}
pub fn start_scan(target_port: u16, num_threads: u32, ignorelist: Option<Vec<u64>>) -> Result<()> { pub fn start_scan(target_port: u16, num_threads: u32, ignorelist: Option<Vec<u64>>) -> Result<()> {
let ip_list = ipv4::get_all(ignorelist)?; let ip_list = ipv4::get_all(ignorelist)?;
// casting hell let ips_per_thread = ((ip_list.len() as f32) / num_threads as f32) as u32;
// let ips_per_thread = ((ip_list.len() as f32) / num_threads as f32) as u32; let ips_left = num_threads * ips_per_thread; // how many ips we have left after the first threads
// let ips_left = num_threads * ips_per_thread; // how many IPs we have left after the first threads
// // container for all of our threads
// // Container for all of our threads let mut threads: Vec<JoinHandle<Vec<bool>>> = Vec::new();
// let mut threads: Vec<JoinHandle<()>> = Vec::new(); let result_list: Vec<bool> = Vec::new();
//
// // Create all of our threads // create all of our threads
// for thread_id in 0..num_threads { for thread_id in 0..num_threads {
// threads.push( create_scan_thread(ip_list.borrow().clone(), thread_id, ips_per_thread) ); threads.push(create_scan_thread(
// } ip_list,
// thread_id,
// // Create the last thread to do the job ips_per_thread,
));
let mut results: Vec<bool> = Vec::new(); }
ip_list.iter().for_each(|ip| { // create the last thread to do the job
if !ip.ignore {
let target = ip.to_socketaddr(target_port).unwrap();
results.push(tcp_scan(&target));
}
});
Ok(()) Ok(())
} }

Loading…
Cancel
Save