mu 5.7.15 → 5.7.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -62,10 +62,10 @@ class Mu
62
62
  # Get har object and hosts
63
63
  har_file = @options.har_files[0]
64
64
  @har = Har.new har_file, @options, @ignores
65
- msl_file = File.open(@options.scenario,'w')
66
- created_musl = @har.generate msl_file
67
- msl_file.write created_musl
68
- msl_file.close
65
+ File.open(@options.scenario,'w') do |file|
66
+ created_musl = @har.generate file
67
+ file.write created_musl
68
+ end
69
69
  puts "You have successfully generated a scenario: #{@options.scenario}"
70
70
  else
71
71
  # Handle failure logic here
@@ -109,11 +109,15 @@ class Har
109
109
  m['url']['pathname'] = m['url_object'].path || '/'
110
110
  m["url"]["search"] = m["url_object"].query || ''
111
111
  m["url"]["hash"] = m["url_object"].fragment || ''
112
+ require 'pp'
113
+ #pp entry if entry['request']['headers'].length < 1
114
+ #raise "die" if entry['request']['headers'].length < 1
112
115
 
113
116
  # Create the host entry hash with underscores instead of dots for the host value
114
117
  entry['request']['headers'].each do |header|
115
118
  if (!host && header['name'].downcase === 'host')
116
119
  host = header['value']
120
+
117
121
  # Set the hosts_seen value to host_count and increment the host_count unless we have already seen the host
118
122
  hosts_seen[host] += host_count && host_count += 1 unless hosts_seen.has_key?(host)
119
123
 
@@ -124,10 +128,10 @@ class Har
124
128
  if entry['musl'][host].match /^[0-9]/
125
129
  entry['musl'][host] = 'host_' + entry['musl'][host]
126
130
  end
127
-
128
131
  end
129
132
  end
130
-
133
+ # request-headers are empty
134
+ next if host.nil? && entry['musl'][host].nil?
131
135
  @hosts[host] = entry['musl'][host]
132
136
  entry['musl']['host'] = entry['musl'][host]
133
137
 
@@ -263,7 +267,7 @@ class Har
263
267
  m = entry['musl']
264
268
  req = entry['request']
265
269
  res = entry['response']
266
- next if m.nil?
270
+ next if m.nil? || m['host'].nil?
267
271
 
268
272
  xopts = { 'src' => '&host_0', 'dst' => '&' + "#{m['host']}" }
269
273
  xklass = m['url_object'].scheme === 'http' ? 'tcp' : 'ssl'
@@ -330,9 +334,16 @@ class Har
330
334
 
331
335
  if (res['cookies'] && res['cookies'].length > 0)
332
336
  cr.variables do |vs|
337
+ seen = {}
333
338
  res['cookies'].each do |cookie|
339
+ # Check to make sure we are not repeating a variable name
340
+ repeated = '@' + cookie['name'].gsub(/[^a-zA-Z0-9_]/, '_') + ' = ' + '/' + cookie['name'] + '=([^;]*)' + '/:1'
341
+ next if seen.has_key?(repeated)
342
+ seen[repeated] = cookie
343
+ # Build the variable
334
344
  vs.create('@' + cookie['name'].gsub(/[^a-zA-Z0-9_]/, '_') + ' = ' + '/' + cookie['name'] + '=([^;]*)' + '/:1')
335
345
  end
346
+
336
347
  end
337
348
  end
338
349
  end
@@ -417,6 +428,7 @@ class Har
417
428
  end
418
429
  cs_send.literal_no_format("\"");
419
430
  else
431
+ payload.gsub!(/#\{|##\{/, "\\x23{")
420
432
  cs_send.literal_no_format("\"" + self.escape(payload) + "\"")
421
433
  end
422
434
 
data/version.rb CHANGED
@@ -1 +1 @@
1
- VERSION='5.7.15'
1
+ VERSION='5.7.16'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mu
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.7.15
4
+ version: 5.7.16
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-04-19 00:00:00.000000000 -07:00
12
+ date: 2011-04-21 00:00:00.000000000 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
17
- requirement: &21338260 !ruby/object:Gem::Requirement
17
+ requirement: &12873620 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 1.4.4
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *21338260
25
+ version_requirements: *12873620
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rest-client
28
- requirement: &21337780 !ruby/object:Gem::Requirement
28
+ requirement: &12873160 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.6.1
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *21337780
36
+ version_requirements: *12873160
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: mime-types
39
- requirement: &21337320 !ruby/object:Gem::Requirement
39
+ requirement: &12872700 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '1.16'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *21337320
47
+ version_requirements: *12872700
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: json
50
- requirement: &21336920 !ruby/object:Gem::Requirement
50
+ requirement: &12872320 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *21336920
58
+ version_requirements: *12872320
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: hexy
61
- requirement: &21336340 !ruby/object:Gem::Requirement
61
+ requirement: &12871780 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 0.1.1
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *21336340
69
+ version_requirements: *12871780
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: uuid
72
- requirement: &21335800 !ruby/object:Gem::Requirement
72
+ requirement: &12871280 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,7 +77,7 @@ dependencies:
77
77
  version: 2.0.2
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *21335800
80
+ version_requirements: *12871280
81
81
  description: ! "The Mu gem allows users to include mu libraries within scripts\n that
82
82
  interact with mu appliance software. The gem also supplies command line interfaces\n
83
83
  \ to many of these same libraries"