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 />