Sha256: 816b0e82ee3acd740ca7f82a0c2955bafb9633d923fe7dee507cbb6cdb1990ce

Contents?: true

Size: 1.38 KB

Versions: 16

Compression:

Stored size: 1.38 KB

Contents

# Documentation on what the different gquic values are
# https://github.com/quicwg/base-drafts/wiki/QUIC-Versions
module Dap
   module Filter

      #
      # Decode a Google Quic VersionsRequest probe response
      #
      class FilterDecodeGquicVersionsResult
        include BaseDecoder

        #
        # Decode an GQUIC ( Google Quic) versions probe response
        #
        # @param data [String] Binary string containing raw response from server
        # @return [Hash] containing all GQUIC versions supported else nil
        #
        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
      end
   end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
dap-1.3.1 lib/dap/filter/gquic.rb
dap-1.3.0 lib/dap/filter/gquic.rb
dap-1.2.9 lib/dap/filter/gquic.rb
dap-1.2.8 lib/dap/filter/gquic.rb
dap-1.2.7 lib/dap/filter/gquic.rb
dap-1.2.6 lib/dap/filter/gquic.rb
dap-1.2.5 lib/dap/filter/gquic.rb
dap-1.2.4 lib/dap/filter/gquic.rb
dap-1.2.3 lib/dap/filter/gquic.rb
dap-1.2.2 lib/dap/filter/gquic.rb
dap-1.2.1 lib/dap/filter/gquic.rb
dap-1.2.0 lib/dap/filter/gquic.rb
dap-1.0.2 lib/dap/filter/gquic.rb
dap-1.0.1 lib/dap/filter/gquic.rb
dap-1.0.0 lib/dap/filter/gquic.rb
dap-0.1.24 lib/dap/filter/gquic.rb