net-dhcp 1.1.0 → 1.1.1
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/CHANGELOG +8 -0
- data/Rakefile +7 -0
- data/lib/net-dhcp/version.rb +1 -1
- data/lib/net/dhcp/core.rb +17 -11
- data/net-dhcp.gemspec +1 -1
- data/test/{dhcp_test.rb → test_dhcp.rb} +3 -4
- metadata +15 -15
    
        data/CHANGELOG
    CHANGED
    
    | @@ -1,3 +1,11 @@ | |
| 1 | 
            +
            *1.1.1
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            * Replace incorrect equality check with assignment in Message#from_udp_payload to correct behaviour when an unrecognised option or message is encountered [mjtko]
         | 
| 4 | 
            +
            * Allow callers to disable the debug output emitted in Message#from_udp_payload for unrecognised options or messages [mjtko]
         | 
| 5 | 
            +
            * Added rake test task [mjtko]
         | 
| 6 | 
            +
            * Correct test_from_udp_payload test assertion [mjtko]
         | 
| 7 | 
            +
            * Default to 00:00:00:00:00:00 in Message#initialize if local MAC address can't be read [mjtko]
         | 
| 8 | 
            +
             | 
| 1 9 | 
             
            *1.1.0
         | 
| 2 10 |  | 
| 3 11 | 
             
            * Added BroadcastAddressOption and cleaned up the output for some options to make them more readable [rakshasa]
         | 
    
        data/Rakefile
    CHANGED
    
    | @@ -40,3 +40,10 @@ Rake::RDocTask.new do |rdoc| | |
| 40 40 | 
             
              rdoc.rdoc_files.include('README*')
         | 
| 41 41 | 
             
              rdoc.rdoc_files.include('lib/**/*.rb')
         | 
| 42 42 | 
             
            end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            require 'rake/testtask'
         | 
| 45 | 
            +
            Rake::TestTask.new do |t|
         | 
| 46 | 
            +
              t.libs << "test"
         | 
| 47 | 
            +
              t.test_files = FileList['test/test*.rb']
         | 
| 48 | 
            +
              t.verbose = true
         | 
| 49 | 
            +
            end
         | 
    
        data/lib/net-dhcp/version.rb
    CHANGED
    
    
    
        data/lib/net/dhcp/core.rb
    CHANGED
    
    | @@ -33,7 +33,8 @@ module DHCP | |
| 33 33 |  | 
| 34 34 | 
             
                alias == eql?
         | 
| 35 35 |  | 
| 36 | 
            -
                def Message.from_udp_payload(data)
         | 
| 36 | 
            +
                def Message.from_udp_payload(data, opts={})
         | 
| 37 | 
            +
                  opts = {:debug => true}.merge(opts)
         | 
| 37 38 | 
             
                  values = data.unpack('C4Nn2N4C16C192NC*')
         | 
| 38 39 |  | 
| 39 40 | 
             
                  params = {
         | 
| @@ -74,11 +75,13 @@ module DHCP | |
| 74 75 |  | 
| 75 76 | 
             
                    # check what is the type of dhcp option
         | 
| 76 77 | 
             
                    opt_class = $DHCP_MSG_OPTIONS[p[:type]]
         | 
| 77 | 
            -
                    if | 
| 78 | 
            -
                       | 
| 79 | 
            -
             | 
| 80 | 
            -
             | 
| 81 | 
            -
             | 
| 78 | 
            +
                    if opt_class.nil?
         | 
| 79 | 
            +
                      if opts[:debug]
         | 
| 80 | 
            +
                        puts '-------------------- please further investigate!!'
         | 
| 81 | 
            +
                        puts p[:type]
         | 
| 82 | 
            +
                        puts '-------------------- /'
         | 
| 83 | 
            +
                      end
         | 
| 84 | 
            +
                      opt_class = Option
         | 
| 82 85 | 
             
                    end
         | 
| 83 86 | 
             
                    if (opt_class == MessageTypeOption)
         | 
| 84 87 | 
             
                      msg_class = $DHCP_MSG_CLASSES[p[:payload].first]
         | 
| @@ -87,11 +90,13 @@ module DHCP | |
| 87 90 | 
             
                    next_opt = values.shift
         | 
| 88 91 | 
             
                  end
         | 
| 89 92 |  | 
| 90 | 
            -
                  if | 
| 91 | 
            -
                     | 
| 92 | 
            -
             | 
| 93 | 
            -
             | 
| 94 | 
            -
             | 
| 93 | 
            +
                  if msg_class.nil?
         | 
| 94 | 
            +
                    if opts[:debug]
         | 
| 95 | 
            +
                      puts '-------------------- please further investigate!!'
         | 
| 96 | 
            +
                      p params[:options]
         | 
| 97 | 
            +
                      puts '-------------------- /'
         | 
| 98 | 
            +
                    end
         | 
| 99 | 
            +
                    msg_class = Message
         | 
| 95 100 | 
             
                  end
         | 
| 96 101 | 
             
                  msg_class.new(params)
         | 
| 97 102 | 
             
                end
         | 
| @@ -139,6 +144,7 @@ module DHCP | |
| 139 144 | 
             
                    raise 'chaddr field should be of 16 bytes' unless self.chaddr.size == 16
         | 
| 140 145 | 
             
                  else
         | 
| 141 146 | 
             
                    mac = `/sbin/ifconfig | grep HWaddr | cut -c39- | head -1`.chomp.strip.gsub(/:/,'')
         | 
| 147 | 
            +
                    mac = '000000000000' if mac.empty?
         | 
| 142 148 | 
             
                    self.chaddr = [mac].pack('H*').unpack('CCCCCC')
         | 
| 143 149 | 
             
                    self.chaddr += [0x00]*(16-self.chaddr.size)
         | 
| 144 150 | 
             
                  end
         | 
    
        data/net-dhcp.gemspec
    CHANGED
    
    | @@ -5,7 +5,7 @@ Gem::Specification.new do |s| | |
| 5 5 | 
             
              s.name = 'net-dhcp'
         | 
| 6 6 | 
             
              s.version = Net::Dhcp::VERSION
         | 
| 7 7 | 
             
              s.platform = Gem::Platform::RUBY
         | 
| 8 | 
            -
              s.date = " | 
| 8 | 
            +
              s.date = "2012-01-21"
         | 
| 9 9 | 
             
              s.authors = ['daniel martin gomez (etd)', 'syonbori', 'Mark J. Titorenko']
         | 
| 10 10 | 
             
              s.email = 'mark.titorenko@alces-software.com'
         | 
| 11 11 | 
             
              s.homepage = 'http://github.com/mjtko/net-dhcp-ruby'
         | 
| @@ -1,3 +1,4 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 1 2 | 
             
            # dhcp_test.rb
         | 
| 2 3 | 
             
            # 4 de octubre de 2007
         | 
| 3 4 | 
             
            #
         | 
| @@ -6,7 +7,7 @@ $:.unshift File.join(File.dirname(__FILE__),'..','lib') | |
| 6 7 |  | 
| 7 8 | 
             
            require 'test/unit'
         | 
| 8 9 |  | 
| 9 | 
            -
            require 'dhcp'
         | 
| 10 | 
            +
            require 'net-dhcp'
         | 
| 10 11 |  | 
| 11 12 | 
             
            class TestDhcp_test < Test::Unit::TestCase
         | 
| 12 13 | 
             
            #  def setup
         | 
| @@ -63,9 +64,7 @@ class TestDhcp_test < Test::Unit::TestCase | |
| 63 64 | 
             
                d1 = DHCP::Discover.new
         | 
| 64 65 | 
             
                d2 = DHCP::Message.from_udp_payload(d1.pack)
         | 
| 65 66 |  | 
| 66 | 
            -
                 | 
| 67 | 
            -
                puts d1.eql?(d2)
         | 
| 68 | 
            -
                puts(d1 == d2)
         | 
| 67 | 
            +
                assert d1.eql?(d2), 'udp data is not correctly parsed'
         | 
| 69 68 | 
             
              end
         | 
| 70 69 |  | 
| 71 70 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: net-dhcp
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.1. | 
| 4 | 
            +
              version: 1.1.1
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -11,11 +11,11 @@ authors: | |
| 11 11 | 
             
            autorequire: 
         | 
| 12 12 | 
             
            bindir: bin
         | 
| 13 13 | 
             
            cert_chain: []
         | 
| 14 | 
            -
            date:  | 
| 14 | 
            +
            date: 2012-01-21 00:00:00.000000000 Z
         | 
| 15 15 | 
             
            dependencies:
         | 
| 16 16 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 17 17 | 
             
              name: rspec
         | 
| 18 | 
            -
              requirement: & | 
| 18 | 
            +
              requirement: &70354871060620 !ruby/object:Gem::Requirement
         | 
| 19 19 | 
             
                none: false
         | 
| 20 20 | 
             
                requirements:
         | 
| 21 21 | 
             
                - - ! '>='
         | 
| @@ -23,10 +23,10 @@ dependencies: | |
| 23 23 | 
             
                    version: '0'
         | 
| 24 24 | 
             
              type: :development
         | 
| 25 25 | 
             
              prerelease: false
         | 
| 26 | 
            -
              version_requirements: * | 
| 26 | 
            +
              version_requirements: *70354871060620
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: bundler
         | 
| 29 | 
            -
              requirement: & | 
| 29 | 
            +
              requirement: &70354871060140 !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                none: false
         | 
| 31 31 | 
             
                requirements:
         | 
| 32 32 | 
             
                - - ! '>='
         | 
| @@ -34,10 +34,10 @@ dependencies: | |
| 34 34 | 
             
                    version: '0'
         | 
| 35 35 | 
             
              type: :development
         | 
| 36 36 | 
             
              prerelease: false
         | 
| 37 | 
            -
              version_requirements: * | 
| 37 | 
            +
              version_requirements: *70354871060140
         | 
| 38 38 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 39 39 | 
             
              name: bueller
         | 
| 40 | 
            -
              requirement: & | 
| 40 | 
            +
              requirement: &70354871059700 !ruby/object:Gem::Requirement
         | 
| 41 41 | 
             
                none: false
         | 
| 42 42 | 
             
                requirements:
         | 
| 43 43 | 
             
                - - ! '>='
         | 
| @@ -45,10 +45,10 @@ dependencies: | |
| 45 45 | 
             
                    version: '0'
         | 
| 46 46 | 
             
              type: :development
         | 
| 47 47 | 
             
              prerelease: false
         | 
| 48 | 
            -
              version_requirements: * | 
| 48 | 
            +
              version_requirements: *70354871059700
         | 
| 49 49 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 50 50 | 
             
              name: rake
         | 
| 51 | 
            -
              requirement: & | 
| 51 | 
            +
              requirement: &70354871059240 !ruby/object:Gem::Requirement
         | 
| 52 52 | 
             
                none: false
         | 
| 53 53 | 
             
                requirements:
         | 
| 54 54 | 
             
                - - ! '>='
         | 
| @@ -56,10 +56,10 @@ dependencies: | |
| 56 56 | 
             
                    version: '0'
         | 
| 57 57 | 
             
              type: :development
         | 
| 58 58 | 
             
              prerelease: false
         | 
| 59 | 
            -
              version_requirements: * | 
| 59 | 
            +
              version_requirements: *70354871059240
         | 
| 60 60 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 61 61 | 
             
              name: rcov
         | 
| 62 | 
            -
              requirement: & | 
| 62 | 
            +
              requirement: &70354871058740 !ruby/object:Gem::Requirement
         | 
| 63 63 | 
             
                none: false
         | 
| 64 64 | 
             
                requirements:
         | 
| 65 65 | 
             
                - - ! '>='
         | 
| @@ -67,7 +67,7 @@ dependencies: | |
| 67 67 | 
             
                    version: '0'
         | 
| 68 68 | 
             
              type: :development
         | 
| 69 69 | 
             
              prerelease: false
         | 
| 70 | 
            -
              version_requirements: * | 
| 70 | 
            +
              version_requirements: *70354871058740
         | 
| 71 71 | 
             
            description: The aim of Net::DHCP is to provide a set of classes to low level handle
         | 
| 72 72 | 
             
              the DHCP protocol (rfc2131, rfc2132, etc.). With Net::DHCP you will be able to craft
         | 
| 73 73 | 
             
              custom DHCP packages and have access to all the fields defined for the protocol.
         | 
| @@ -99,7 +99,7 @@ files: | |
| 99 99 | 
             
            - net-dhcp.gemspec
         | 
| 100 100 | 
             
            - spec/net-dhcp_spec.rb
         | 
| 101 101 | 
             
            - spec/spec_helper.rb
         | 
| 102 | 
            -
            - test/ | 
| 102 | 
            +
            - test/test_dhcp.rb
         | 
| 103 103 | 
             
            homepage: http://github.com/mjtko/net-dhcp-ruby
         | 
| 104 104 | 
             
            licenses: []
         | 
| 105 105 | 
             
            post_install_message: 
         | 
| @@ -114,7 +114,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 114 114 | 
             
                  version: '0'
         | 
| 115 115 | 
             
                  segments:
         | 
| 116 116 | 
             
                  - 0
         | 
| 117 | 
            -
                  hash:  | 
| 117 | 
            +
                  hash: -2659112004771839654
         | 
| 118 118 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 119 119 | 
             
              none: false
         | 
| 120 120 | 
             
              requirements:
         | 
| @@ -130,4 +130,4 @@ summary: set of classes to low level handle the DHCP protocol | |
| 130 130 | 
             
            test_files:
         | 
| 131 131 | 
             
            - spec/net-dhcp_spec.rb
         | 
| 132 132 | 
             
            - spec/spec_helper.rb
         | 
| 133 | 
            -
            - test/ | 
| 133 | 
            +
            - test/test_dhcp.rb
         |