phut 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b2838869618793f7529456e67f55820c6312fd4
4
- data.tar.gz: b38be67f933c105564abad75ffe2c9e545787757
3
+ metadata.gz: 65cc3089f0bcf5e311f21b0188fe967b611ef985
4
+ data.tar.gz: 94da61d5bb92d744c975701d0d3162e335bff0f4
5
5
  SHA512:
6
- metadata.gz: b19c285acc17e89ee19d803c1f161b741cfbd1305692af023f057aac4f06a3a7c37d0d84c31e6cfb52d0d02a2024c76609a495de38ff756cba6d2f2761369eef
7
- data.tar.gz: 3f51908add6cd7e341ed596c2dad7d361b3838ad70337d232248d55b1fc8795f3b7b533e1147f7bba875643b5618ac9a77f590f04657d9da3dbf83d7ccd0e331
6
+ metadata.gz: 9655a900e5982121a9d324074e1b588173ba4ed521967e028ee291169662faccb2cf3e777cdfc9d86c47c9b32edf6a324e4061963e4b3764d2632ce75f14b76a
7
+ data.tar.gz: 72a50ee2ca2038a5bce23045cd57a7d827950cb502c9f0b44e6f034195c3840b2a84ad51dc60cb4e8c1665cee30e6c5cbf03f7e1c3c916349042ac2c13acce00
@@ -3,6 +3,11 @@
3
3
  ## develop (unreleased)
4
4
 
5
5
 
6
+ ## 0.2.2 (3/9/2015)
7
+ ### New features
8
+ * Add `mac` attribute to vhost.
9
+
10
+
6
11
  ## 0.2.0 (3/2/2015)
7
12
  ### New features
8
13
  * [#19](https://github.com/trema/phut/pull/19): Add `bin/vhost`.
@@ -45,7 +45,8 @@ module Phut
45
45
 
46
46
  def add_vhost(name, attrs)
47
47
  check_name_conflict name
48
- @all[name] = Vhost.new(attrs[:ip], attrs[:promisc], name, @logger)
48
+ @all[name] =
49
+ Vhost.new(attrs[:ip], attrs[:mac], attrs[:promisc], name, @logger)
49
50
  end
50
51
 
51
52
  # This method smells of :reek:LongParameterList
@@ -59,7 +59,7 @@ module Phut
59
59
  end
60
60
 
61
61
  def dump_flows
62
- sh "sudo #{OFCTL} dump-flows #{network_device}"
62
+ `sudo #{OFCTL} dump-flows #{network_device}`
63
63
  end
64
64
 
65
65
  def running?
@@ -44,7 +44,8 @@ module Phut
44
44
  UnusedIpAddressSingleton = UnusedIpAddress.new
45
45
 
46
46
  def initialize(alias_name, &block)
47
- @attributes = { name: alias_name }
47
+ @attributes =
48
+ { name: alias_name, mac: Pio::Mac.new(rand(0xffffffffffff + 1)) }
48
49
  if block
49
50
  instance_eval(&block) if block
50
51
  else
@@ -57,6 +58,10 @@ module Phut
57
58
  @attributes[:name] ||= value
58
59
  end
59
60
 
61
+ def mac(value)
62
+ @attributes[:mac] = value
63
+ end
64
+
60
65
  def promisc(on_off)
61
66
  @attributes[:promisc] = on_off
62
67
  end
@@ -1,4 +1,4 @@
1
1
  # Base module.
2
2
  module Phut
3
- VERSION = '0.2.0'
3
+ VERSION = '0.2.2'
4
4
  end
@@ -12,11 +12,12 @@ module Phut
12
12
  attr_reader :mac_address
13
13
  attr_accessor :interface
14
14
 
15
- def initialize(ip_address, promisc, name = nil, logger = NullLogger.new)
15
+ def initialize(ip_address, mac_address, promisc,
16
+ name = nil, logger = NullLogger.new)
16
17
  @ip_address = ip_address
17
18
  @promisc = promisc
18
19
  @name = name
19
- @mac_address = Pio::Mac.new(rand(0xffffffffffff + 1))
20
+ @mac_address = mac_address
20
21
  @logger = logger
21
22
  end
22
23
 
@@ -85,7 +85,9 @@ module Phut
85
85
  loop do
86
86
  raw_data, = raw_socket.recvfrom(8192)
87
87
  udp = Pio::Udp.read(raw_data)
88
- # TODO: Check @options[:promisc]
88
+ unless @options[:promisc]
89
+ next if udp.ip_destination_address != @options.fetch(:ip_address)
90
+ end
89
91
  @logger.info "Received: #{udp}"
90
92
  @packets_received << udp.snapshot
91
93
  end
@@ -25,8 +25,8 @@ Gem::Specification.new do |gem|
25
25
 
26
26
  gem.required_ruby_version = '>= 2.0.0'
27
27
 
28
- gem.add_dependency 'gli', '~> 2.12.3'
29
- gem.add_dependency 'pio', '~> 0.16.0'
28
+ gem.add_dependency 'gli', '~> 2.13.0'
29
+ gem.add_dependency 'pio', '~> 0.18.0'
30
30
  gem.add_dependency 'pry', '~> 0.10.1'
31
31
 
32
32
  # Docs
@@ -35,20 +35,20 @@ Gem::Specification.new do |gem|
35
35
 
36
36
  # Development
37
37
  gem.add_development_dependency 'byebug', '~> 3.5.1'
38
- gem.add_development_dependency 'guard', '~> 2.12.3'
38
+ gem.add_development_dependency 'guard', '~> 2.12.4'
39
39
  gem.add_development_dependency 'guard-bundler', '~> 2.1.0'
40
- gem.add_development_dependency 'guard-cucumber', '~> 1.5.3'
40
+ gem.add_development_dependency 'guard-cucumber', '~> 1.5.4'
41
41
  gem.add_development_dependency 'guard-rspec', '~> 4.5.0'
42
42
  gem.add_development_dependency 'guard-rubocop', '~> 1.2.0'
43
43
 
44
44
  # Test
45
45
  gem.add_development_dependency 'aruba', '~> 0.6.2'
46
46
  gem.add_development_dependency 'codeclimate-test-reporter'
47
- gem.add_development_dependency 'coveralls', '~> 0.7.10'
47
+ gem.add_development_dependency 'coveralls', '~> 0.7.11'
48
48
  gem.add_development_dependency 'cucumber', '~> 1.3.19'
49
49
  gem.add_development_dependency 'flog', '~> 4.3.2'
50
50
  gem.add_development_dependency 'rake'
51
- gem.add_development_dependency 'reek', '~> 2.0.0'
51
+ gem.add_development_dependency 'reek', '~> 2.0.1'
52
52
  gem.add_development_dependency 'rspec', '~> 3.2.0'
53
53
  gem.add_development_dependency 'rspec-given', '~> 3.7.0'
54
54
  gem.add_development_dependency 'rubocop', '~> 0.29.1'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phut
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yasuhito Takamiya
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-02 00:00:00.000000000 Z
11
+ date: 2015-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 2.12.3
19
+ version: 2.13.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: 2.12.3
26
+ version: 2.13.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pio
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: 0.16.0
33
+ version: 0.18.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: 0.16.0
40
+ version: 0.18.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - ~>
102
102
  - !ruby/object:Gem::Version
103
- version: 2.12.3
103
+ version: 2.12.4
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ~>
109
109
  - !ruby/object:Gem::Version
110
- version: 2.12.3
110
+ version: 2.12.4
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: guard-bundler
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - ~>
130
130
  - !ruby/object:Gem::Version
131
- version: 1.5.3
131
+ version: 1.5.4
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ~>
137
137
  - !ruby/object:Gem::Version
138
- version: 1.5.3
138
+ version: 1.5.4
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: guard-rspec
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -198,14 +198,14 @@ dependencies:
198
198
  requirements:
199
199
  - - ~>
200
200
  - !ruby/object:Gem::Version
201
- version: 0.7.10
201
+ version: 0.7.11
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - ~>
207
207
  - !ruby/object:Gem::Version
208
- version: 0.7.10
208
+ version: 0.7.11
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: cucumber
211
211
  requirement: !ruby/object:Gem::Requirement
@@ -254,14 +254,14 @@ dependencies:
254
254
  requirements:
255
255
  - - ~>
256
256
  - !ruby/object:Gem::Version
257
- version: 2.0.0
257
+ version: 2.0.1
258
258
  type: :development
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
262
  - - ~>
263
263
  - !ruby/object:Gem::Version
264
- version: 2.0.0
264
+ version: 2.0.1
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: rspec
267
267
  requirement: !ruby/object:Gem::Requirement