net-dhcp 1.0.0

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.
data/net-dhcp.gemspec ADDED
@@ -0,0 +1,35 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+ require 'net-dhcp/version'
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'net-dhcp'
6
+ s.version = Net::Dhcp::VERSION
7
+ s.platform = Gem::Platform::RUBY
8
+ s.date = '2011-11-17'
9
+ s.authors = ['daniel martin gomez (etd)', 'syonbori', 'Mark J. Titorenko']
10
+ s.email = 'mark.titorenko@alces-software.com'
11
+ s.homepage = 'http://github.com/mjtko/net-dhcp'
12
+ s.summary = %Q{set of classes to low level handle the DHCP protocol}
13
+ s.description = %Q{The aim of Net::DHCP is to provide a set of classes to low level handle the DHCP protocol (rfc2131, rfc2132, etc.). With Net::DHCP you will be able to craft custom DHCP packages and have access to all the fields defined for the protocol.}
14
+ s.extra_rdoc_files = [
15
+ 'LICENSE',
16
+ 'README',
17
+ ]
18
+
19
+ s.required_rubygems_version = Gem::Requirement.new('>= 1.3.7')
20
+ s.rubygems_version = '1.3.7'
21
+ s.specification_version = 3
22
+
23
+ s.files = `git ls-files`.split("\n")
24
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
25
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
26
+ s.require_paths = ['lib']
27
+
28
+ s.add_runtime_dependency 'pcap', '~> 0.7.0'
29
+ s.add_development_dependency 'rspec'
30
+ s.add_development_dependency 'bundler'
31
+ s.add_development_dependency 'bueller'
32
+ s.add_development_dependency 'rake'
33
+ s.add_development_dependency 'rcov'
34
+ end
35
+
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe NetDhcp do
4
+ it "fails" do
5
+ fail "hey buddy, you should probably rename this file and start specing for real"
6
+ end
7
+ end
@@ -0,0 +1,19 @@
1
+ require 'bundler'
2
+ begin
3
+ Bundler.setup
4
+ rescue Bundler::BundlerError => e
5
+ $stderr.puts e.message
6
+ $stderr.puts "Run `bundle install` to install missing gems"
7
+ exit e.status_code
8
+ end
9
+
10
+ require 'rspec'
11
+ require 'net-dhcp'
12
+
13
+ # Requires supporting files with custom matchers and macros, etc,
14
+ # in ./support/ and its subdirectories.
15
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
16
+
17
+ RSpec.configure do |config|
18
+
19
+ end
data/test/dhcp_test.rb ADDED
@@ -0,0 +1,71 @@
1
+ # dhcp_test.rb
2
+ # 4 de octubre de 2007
3
+ #
4
+
5
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
6
+
7
+ require 'test/unit'
8
+
9
+ require 'dhcp'
10
+
11
+ class TestDhcp_test < Test::Unit::TestCase
12
+ # def setup
13
+ # end
14
+ #
15
+ # def teardown
16
+ # end
17
+
18
+ def test_packing
19
+ # assert_equal("foo", bar)
20
+
21
+ # assert, assert_block, assert_equal, assert_in_delta, assert_instance_of,
22
+ # assert_kind_of, assert_match, assert_nil, assert_no_match, assert_not_equal,
23
+ # assert_not_nil, assert_not_same, assert_nothing_raised, assert_nothing_thrown,
24
+ # assert_operator, assert_raise, assert_raises, assert_respond_to, assert_same,
25
+ # assert_send, assert_throws
26
+
27
+ d = DHCP::Discover.new
28
+ expected = [
29
+ d.op, d.htype, d.hlen, d.hops,
30
+ d.xid,
31
+ d.secs, d.flags,
32
+ d.ciaddr,
33
+ d.yiaddr,
34
+ d.siaddr,
35
+ d.giaddr,
36
+ ]
37
+ expected += d.chaddr
38
+ expected += [0x00]*192
39
+ expected << $DHCP_MAGIC
40
+
41
+ payload = d.pack
42
+
43
+ actual = payload.unpack('C4Nn2N4C16C192N')
44
+
45
+ assert_equal expected, actual, 'pack does not work'
46
+ end
47
+
48
+ def test_size
49
+ d = DHCP::Discover.new
50
+ payload = d.pack
51
+ assert_equal 300, payload.size, 'size of the payload does not match'
52
+ end
53
+
54
+ def test_eql?
55
+ d1 = DHCP::Discover.new
56
+ d2 = DHCP::Discover.new
57
+
58
+ assert_not_equal d1, d2, '.eql? two messages with different xid field are considered equal'
59
+ assert_equal true, d1.options.eql?(d1.options), 'eql? is not working for comparing option arrays'
60
+ end
61
+
62
+ def test_from_udp_payload
63
+ d1 = DHCP::Discover.new
64
+ d2 = DHCP::Message.from_udp_payload(d1.pack)
65
+
66
+ #assert_equal d1, d2, 'udp data is not correctly parsed'
67
+ puts d1.eql?(d2)
68
+ puts(d1 == d2)
69
+ end
70
+
71
+ end
metadata ADDED
@@ -0,0 +1,142 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: net-dhcp
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - daniel martin gomez (etd)
9
+ - syonbori
10
+ - Mark J. Titorenko
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2011-11-17 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: pcap
18
+ requirement: &70274399157680 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 0.7.0
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: *70274399157680
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: &70274399157220 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: *70274399157220
38
+ - !ruby/object:Gem::Dependency
39
+ name: bundler
40
+ requirement: &70274399156680 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ type: :development
47
+ prerelease: false
48
+ version_requirements: *70274399156680
49
+ - !ruby/object:Gem::Dependency
50
+ name: bueller
51
+ requirement: &70274399156240 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: *70274399156240
60
+ - !ruby/object:Gem::Dependency
61
+ name: rake
62
+ requirement: &70274399155780 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: *70274399155780
71
+ - !ruby/object:Gem::Dependency
72
+ name: rcov
73
+ requirement: &70274399155240 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: *70274399155240
82
+ description: The aim of Net::DHCP is to provide a set of classes to low level handle
83
+ the DHCP protocol (rfc2131, rfc2132, etc.). With Net::DHCP you will be able to craft
84
+ custom DHCP packages and have access to all the fields defined for the protocol.
85
+ email: mark.titorenko@alces-software.com
86
+ executables:
87
+ - net-dhcp
88
+ extensions: []
89
+ extra_rdoc_files:
90
+ - LICENSE
91
+ - README
92
+ files:
93
+ - .document
94
+ - .gitignore
95
+ - Gemfile
96
+ - LICENSE
97
+ - README
98
+ - README.etd.original
99
+ - Rakefile
100
+ - bin/net-dhcp
101
+ - lib/net-dhcp.rb
102
+ - lib/net-dhcp/version.rb
103
+ - lib/net/dhcp.rb
104
+ - lib/net/dhcp/constants.rb
105
+ - lib/net/dhcp/core.rb
106
+ - lib/net/dhcp/options.rb
107
+ - lib/net/dhcp/oui.txt
108
+ - net-dhcp.gemspec
109
+ - spec/net-dhcp_spec.rb
110
+ - spec/spec_helper.rb
111
+ - test/dhcp_test.rb
112
+ homepage: http://github.com/mjtko/net-dhcp
113
+ licenses: []
114
+ post_install_message:
115
+ rdoc_options: []
116
+ require_paths:
117
+ - lib
118
+ required_ruby_version: !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - ! '>='
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ segments:
125
+ - 0
126
+ hash: 518742913826632758
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ! '>='
131
+ - !ruby/object:Gem::Version
132
+ version: 1.3.7
133
+ requirements: []
134
+ rubyforge_project:
135
+ rubygems_version: 1.8.10
136
+ signing_key:
137
+ specification_version: 3
138
+ summary: set of classes to low level handle the DHCP protocol
139
+ test_files:
140
+ - spec/net-dhcp_spec.rb
141
+ - spec/spec_helper.rb
142
+ - test/dhcp_test.rb