Merges in a patch to support multiple masks per job, fixes some minor bugs, still a few left to sort otu - warvox - VoIP based wardialing tool, forked from rapid7/warvox.
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit 235e8064ff4e47777e2dd770ea7ee424ceece55b
 (DIR) parent c73e4d6004f5f7dc05796e73842ad117756b9d8c
 (HTM) Author: HD Moore <hd_moore@rapid7.com>
       Date:   Tue, 31 Mar 2009 05:05:41 +0000
       
       Merges in a patch to support multiple masks per job, fixes some minor bugs, still a few left to sort otu
       
       
       Diffstat:
         M lib/warvox/jobs/dialer.rb           |       2 +-
         M lib/warvox/phone.rb                 |      42 ++++++++++++++++++-------------
         M web/app/controllers/dial_jobs_cont… |       2 +-
         M web/app/models/dial_job.rb          |       2 +-
         M web/app/views/dial_jobs/edit.html.… |       2 +-
         M web/app/views/dial_jobs/index.html… |       2 +-
         M web/app/views/dial_jobs/new.html.e… |       2 +-
       
       7 files changed, 30 insertions(+), 24 deletions(-)
       ---
 (DIR) diff --git a/lib/warvox/jobs/dialer.rb b/lib/warvox/jobs/dialer.rb
       @@ -90,7 +90,7 @@ class Dialer < Base
                end
                
                def start_dialing
       -                dest = File.join(WarVOX::Config.data_path, "#{@name}-#{@range}")
       +                dest = File.join(WarVOX::Config.data_path, "#{@name}")
                        FileUtils.mkdir_p(dest)
                
                        @nums_total = @nums.length
 (DIR) diff --git a/lib/warvox/phone.rb b/lib/warvox/phone.rb
       @@ -2,28 +2,34 @@ module WarVOX
        class Phone
        
                # Convert 123456XXXX to an array of expanded numbers
       -        def self.crack_mask(mask)
       +        def self.crack_mask(masks)
                        res = {}
       -
       -                incdigits = 0
       -                mask.each_char do |c|
       -                        incdigits += 1 if c =~ /^[X#]$/i
       -                end
       -
       -                max = (10**incdigits)-1
       -
       -                (0..max).each do |num|
       -                        number = mask.dup # copy the mask
       -                        numstr = sprintf("%0#{incdigits}d", num) # stringify our incrementing number
       -                        j = 0 # index for numstr
       -                        for i in 0..number.length-1 do # step through the number (mask)
       -                                if number[i].chr =~ /^[X#]$/i
       -                                        number[i] = numstr[j] # replaced masked indexes with digits from incrementing number
       -                                        j += 1
       +                masks.each do |mask|
       +                        mask = mask.strip
       +                        incdigits = 0
       +                        mask.each_char do |c|
       +                                incdigits += 1 if c =~ /^[X#]$/i
       +                        end
       +        
       +                        max = (10**incdigits)-1
       +        
       +                        (0..max).each do |num|
       +                                number = mask.dup # copy the mask
       +                                numstr = sprintf("%0#{incdigits}d", num) # stringify our incrementing number
       +                                j = 0 # index for numstr
       +                                for i in 0..number.length-1 do # step through the number (mask)
       +                                        if number[i].chr =~ /^[X#]$/i
       +                                                number[i] = numstr[j] # replaced masked indexes with digits from incrementing number
       +                                                j += 1
       +                                        end
                                        end
       +                                res[number] = {}
                                end
       -                        res[number] = {}
       +        
                        end
       +                res.each { |key, value|
       +                        print "DEBUG: key=",key," -> ",value,"\n"
       +                }
        
                        return res.keys.sort
                end
 (DIR) diff --git a/web/app/controllers/dial_jobs_controller.rb b/web/app/controllers/dial_jobs_controller.rb
       @@ -70,7 +70,7 @@ class DialJobsController < ApplicationController
                @dial_job.progress     = 0
                @dial_job.started_at   = nil
                @dial_job.completed_at = nil
       -        @dial_job.range.gsub!(/[^0-9X]/, '')
       +        @dial_job.range.gsub!(/[^0-9X,\n]/, '')
                @dial_job.cid_mask.gsub!(/[^0-9X]/, '') if @dial_job.cid_mask != "SELF"
        
            respond_to do |format|
 (DIR) diff --git a/web/app/models/dial_job.rb b/web/app/models/dial_job.rb
       @@ -6,7 +6,7 @@ class DialJob < ActiveRecord::Base
                validates_numericality_of :seconds, :less_than => 301, :greater_than => 0
        
                def validate
       -                if(range.gsub(/[^0-9X]/, '').empty?)
       +                if(range.gsub(/[^0-9X,\n]/, '').empty?)
                                errors.add(:range, "The range must be at least 1 character long and made up of 0-9 and X as the mask.")
                        end
                        
 (DIR) diff --git a/web/app/views/dial_jobs/edit.html.erb b/web/app/views/dial_jobs/edit.html.erb
       @@ -5,7 +5,7 @@
        
          <p>
            <%= f.label :range %><br />
       -    <%= f.text_field :range %>
       +    <%= f.text_area :range, :size => "35x5" %>
          </p>
          <p>
            <%= f.label :seconds %><br />
 (DIR) diff --git a/web/app/views/dial_jobs/index.html.erb b/web/app/views/dial_jobs/index.html.erb
       @@ -78,7 +78,7 @@
          <%= f.error_messages %>
          <p>
            <%= f.label :range, 'The target telephone range (1-123-456-XXXX)' %><br />
       -    <%= f.text_field :range %>
       +    <%= f.text_area :range, :size => "35x5" %>
          </p>
          <p>
            <%= f.label :seconds, 'Seconds of audio to capture' %><br />
 (DIR) diff --git a/web/app/views/dial_jobs/new.html.erb b/web/app/views/dial_jobs/new.html.erb
       @@ -4,7 +4,7 @@
          <%= f.error_messages %>
          <p>
            <%= f.label :range, 'The target telephone range (1-123-456-XXXX)' %><br />
       -    <%= f.text_field :range %>
       +    <%= f.text_area :range, :size => "35x5" %>
          </p>
          <p>
            <%= f.label :seconds, 'Seconds of audio to capture' %><br />