@@ -122,9 +122,7 @@ impl ScanResult {
122122 pub fn get_high_risk_ports ( & self ) -> Vec < & PortScanResult > {
123123 self . open_ports
124124 . iter ( )
125- . filter ( |p| {
126- matches ! ( p. risk_level, PortRiskLevel :: Critical | PortRiskLevel :: High )
127- } )
125+ . filter ( |p| matches ! ( p. risk_level, PortRiskLevel :: Critical | PortRiskLevel :: High ) )
128126 . collect ( )
129127 }
130128
@@ -267,7 +265,7 @@ impl NetworkScanner {
267265 }
268266
269267 // Process remaining tasks
270- let mut all_results = join_all ( tasks) . await ;
268+ let all_results = join_all ( tasks) . await ;
271269
272270 let scan_end = Utc :: now ( ) ;
273271
@@ -302,8 +300,8 @@ impl NetworkScanner {
302300 /// Scan common ports (top 20)
303301 pub async fn scan_common_ports ( & self , ip : IpAddr ) -> Result < ScanResult , ScanError > {
304302 let common_ports = vec ! [
305- 20 , 21 , 22 , 23 , 25 , 53 , 80 , 110 , 143 , 443 , 445 , 993 , 995 , 3306 , 3389 , 5432 , 5900 ,
306- 8080 , 8443 , 27017 ,
303+ 20 , 21 , 22 , 23 , 25 , 53 , 80 , 110 , 143 , 443 , 445 , 993 , 995 , 3306 , 3389 , 5432 , 5900 , 8080 ,
304+ 8443 , 27017 ,
307305 ] ;
308306
309307 let scan_start = Utc :: now ( ) ;
@@ -376,26 +374,20 @@ impl NetworkScanner {
376374 /// Grab service banner from open port
377375 async fn grab_banner ( stream : & mut TcpStream , port : u16 ) -> Result < String , ScanError > {
378376 // Send protocol-specific probes
379- let probe = match port {
377+ let probe: & [ u8 ] = match port {
380378 80 | 8080 => b"HEAD / HTTP/1.0\r \n \r \n " ,
381379 21 | 22 | 23 | 25 => b"" , // These typically send banner on connect
382- _ => b"" , // Default: just read
380+ _ => b"" , // Default: just read
383381 } ;
384382
385383 if !probe. is_empty ( ) {
386- let _ = timeout (
387- Duration :: from_millis ( 500 ) ,
388- stream. write_all ( probe) ,
389- )
390- . await ;
384+ let _ = timeout ( Duration :: from_millis ( 500 ) , stream. write_all ( probe) ) . await ;
391385 }
392386
393387 let mut buffer = vec ! [ 0u8 ; 1024 ] ;
394388 match timeout ( Duration :: from_millis ( 500 ) , stream. read ( & mut buffer) ) . await {
395389 Ok ( Ok ( n) ) if n > 0 => {
396- let banner = String :: from_utf8_lossy ( & buffer[ ..n] )
397- . trim ( )
398- . to_string ( ) ;
390+ let banner = String :: from_utf8_lossy ( & buffer[ ..n] ) . trim ( ) . to_string ( ) ;
399391 if !banner. is_empty ( ) {
400392 Ok ( banner)
401393 } else {
@@ -545,17 +537,12 @@ mod tests {
545537
546538 assert ! ( result. port == 9999 ) ;
547539 // Status could be Closed or Filtered depending on system
548- assert ! (
549- result. status == PortStatus :: Closed || result. status == PortStatus :: Filtered
550- ) ;
540+ assert ! ( result. status == PortStatus :: Closed || result. status == PortStatus :: Filtered ) ;
551541 }
552542
553543 #[ tokio:: test]
554544 async fn test_service_detection ( ) {
555- assert_eq ! (
556- NetworkScanner :: detect_service( 80 ) ,
557- Some ( "HTTP" . to_string( ) )
558- ) ;
545+ assert_eq ! ( NetworkScanner :: detect_service( 80 ) , Some ( "HTTP" . to_string( ) ) ) ;
559546 assert_eq ! (
560547 NetworkScanner :: detect_service( 443 ) ,
561548 Some ( "HTTPS" . to_string( ) )
@@ -596,7 +583,10 @@ mod tests {
596583 NetworkScanner :: assess_port_risk( 23 ) ,
597584 PortRiskLevel :: Critical
598585 ) ; // Telnet
599- assert_eq ! ( NetworkScanner :: assess_port_risk( 21 ) , PortRiskLevel :: Critical ) ; // FTP
586+ assert_eq ! (
587+ NetworkScanner :: assess_port_risk( 21 ) ,
588+ PortRiskLevel :: Critical
589+ ) ; // FTP
600590
601591 // High risk
602592 assert_eq ! ( NetworkScanner :: assess_port_risk( 3389 ) , PortRiskLevel :: High ) ; // RDP
@@ -699,7 +689,7 @@ mod tests {
699689 } ;
700690
701691 let duration = result. scan_duration_secs ( ) ;
702- assert ! ( duration >= 0.1 && duration < 1.0 ) ;
692+ assert ! ( ( 0.1 .. 1.0 ) . contains ( & duration ) ) ;
703693 }
704694
705695 #[ tokio:: test]
0 commit comments