packetgen 2.8.5 → 2.8.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6763c9433901ae848d2186d92ec47e3894b493b951c048d68e3a01bd52504563
4
- data.tar.gz: 68ec7d1ea6a27fa2101d8c7b72800083cdebe80cf8eec93d52255d459fbc5f73
3
+ metadata.gz: 5ee37bbcc3ffa4d0ba19838f04c4c57ee5de15244a7bf6e2c78101148cff0026
4
+ data.tar.gz: 02afc1072186723ec5d16424e3fcb0a832e2e2ab114fd6232ace7dedba873fde
5
5
  SHA512:
6
- metadata.gz: d8166a6b1fee9a6d8ed45af7f100368272576cc6242e367e1735b204362e75fe5b76839fb53b75046a42cb7e5e3518705142ee9ef2a4326f44ea080f9f70c35b
7
- data.tar.gz: 7079595e88887e39e1bb5b2e6d24689710cc0edcf2399d67fcf20964fa160481654b3e0ce1375739844465d51428b7c3a67f55fa0e008c9e379cbddff8cf5847
6
+ metadata.gz: 5198cc85801daf880d3ac32313ac2f611ceebfa8c8023aedfe2d95021563d620234f363be048c279e3b8d2f121e465854525c2707d6fba6e82479c3beb88ff3f
7
+ data.tar.gz: 98c6e9b198b1e8294b9dc38a13d3efb7cd81c0b9dafe9d6bc0998dbff07da02deca5bb7efd2bdc7f83507dc46d20d3b658620dc6f5444739485f3a9704bf9c5b
data/lib/packetgen.rb CHANGED
@@ -82,6 +82,21 @@ module PacketGen
82
82
  break m[1]
83
83
  end
84
84
  end
85
+
86
+ # Shortcut to get a header class
87
+ # @example builtin class
88
+ # # same as PacketGen::Header::Dot11:Data.new(id: 0xfedc)
89
+ # dot11 = PacketGen.header('Dot11::Data', id: 0xfedc) #=> PacketGen::Header::Dot11:Data
90
+ # @example plugin class
91
+ # require 'packet-plugin-smb'
92
+ # # same as PacketGen::Plugin::SMB::CloseRequest.new(fid: 0x1234)
93
+ # smbclose = PacketGen.header('SMB::CloseRequest', fid: 0x1234)
94
+ # @param [String] protocol protocol from which generate a header
95
+ # @param [Hash] options specific options for +protocol+
96
+ # @return [Header::Base]
97
+ def self.header(protocol, options={})
98
+ Header.get_header_class_by_name(protocol).new(options)
99
+ end
85
100
  end
86
101
 
87
102
  require 'packetgen/deprecation'
@@ -306,10 +306,11 @@ module PacketGen
306
306
  # return header method name
307
307
  # @return [String]
308
308
  # @since 2.0.0
309
+ # @since 2.8.6 permit multiple nesting levels
309
310
  def method_name
310
311
  return @method_name if @method_name
311
312
 
312
- @method_name = protocol_name.downcase.sub(/::/, '_')
313
+ @method_name = protocol_name.downcase.gsub(/::/, '_')
313
314
  end
314
315
 
315
316
  # @abstract Should be redefined by subclasses. This method should check invariant
@@ -225,8 +225,8 @@ module PacketGen
225
225
  def remove_field(name)
226
226
  fields.delete name
227
227
  @field_defs.delete name
228
- undef_method name
229
- undef_method "#{name}="
228
+ undef_method name if method_defined?(name)
229
+ undef_method "#{name}=" if method_defined?("#{name}=")
230
230
  end
231
231
 
232
232
  # Delete a previously defined field
@@ -10,5 +10,5 @@
10
10
  # @author Sylvain Daubert
11
11
  module PacketGen
12
12
  # PacketGen version
13
- VERSION = '2.8.5'
13
+ VERSION = '2.8.6'
14
14
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packetgen
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.5
4
+ version: 2.8.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvain Daubert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-06 00:00:00.000000000 Z
11
+ date: 2018-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: interfacez