allocate one process for 50 ports
authorDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 20 Jun 2011 15:26:33 +0000 (17:26 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 20 Jun 2011 15:26:33 +0000 (17:26 +0200)
command-line paramenter is now hard limit for maximum number of parallel
scans on single IP address

persistant_worker.pl

index 82339cd..666859d 100755 (executable)
@@ -59,8 +59,12 @@ foreach my $ip ( keys %$poll ) {
        my $module = 'H1::' . $variant;
        my $zte = $module->new( ip => $ip );
 
+       my $ports = keys %{ $poll->{$ip} };
+       my $max_procs = ( int($ports/50) ) + 1; # one process for 50 ports
+       $max_procs = $max_processes if $max_processes < $max_procs; # hard-limit for maximum ports in parallel
+
        $driver->add_job({
-               max_processes => $max_processes,
+               max_processes => $max_procs,
                min_processes => 1,
                name            => $method,
                worker          => $worker,
@@ -115,7 +119,7 @@ foreach my $ip ( keys %$poll ) {
                ]
        });
 
-       warn "$method added\n";
+       warn "$method for $ip with $ports ports using $max_procs processes\n";
 
 }