packetgen 2.8.5 → 2.8.6

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
  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