Class: Dap::Filter::FilterDecodeGquicVersionsResult
- Inherits:
-
Object
- Object
- Dap::Filter::FilterDecodeGquicVersionsResult
- Includes:
- BaseDecoder
- Defined in:
- lib/dap/filter/gquic.rb
Overview
Decode a Google Quic VersionsRequest probe response
Instance Attribute Summary
Attributes included from Base
Instance Method Summary collapse
-
#decode(data) ⇒ Hash
Decode an GQUIC ( Google Quic) versions probe response.
Methods included from BaseDecoder
Methods included from Base
Instance Method Details
#decode(data) ⇒ Hash
Decode an GQUIC ( Google Quic) versions probe response
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/dap/filter/gquic.rb', line 18 def decode(data) return unless data # need to skip 9 bytes and assume at least one valid version Q044 if data.length > 9 + 4 && (data.length - 9) % 4 versions = [] i = 9 step = 4 while i < data.length version = data[i..i+4-1] # Versions start with the letter Q followed by number e.g. 001 - 043 if version =~ /^Q\d{3}$/ versions.push(version) end i = i + step end if versions.length > 0 # examples show versions in descending order, but in case its not reverse sort info = {'versions' => versions.sort.reverse} return info end end end |