ddig 0.4.2 → 0.4.3

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: 544c15d86f0f62f46455496bfc9e092597dc284a3de9212d7e018f621d3363bc
4
- data.tar.gz: da86afd7a8d1336d617dc892ef5c5409585e06fecf7b9bba21b9e0fb68e5000b
3
+ metadata.gz: 58620e2fc9231b199356c668368c0af0b2b74a9bd6f081eaa6a0332794afe42c
4
+ data.tar.gz: 027a30588c369ecc5ee419f3821b3d2cef9aff5c27ced47227aba3384adba1bd
5
5
  SHA512:
6
- metadata.gz: '089fe3fdbaad4354a9bc7137eb019c8f1daa468165927adc0ce5c388665ee366537e847eee289d0c2a0ea76bc73d111033197ab0b020eb6da5e2739c9830e9ef'
7
- data.tar.gz: 6a4a8561e81691ddebe4f239b0e8f7b3a61ff5db2499702db06dfbaf8e8f64b781e6df29b87bb1e80cc1312626ce0c3394edc182a429810829ac222e4da1033d
6
+ metadata.gz: 58c9a6c611f8b68461d0bbfdd5d41f8ea9a3cd5ddf3d748c531f0e4c287b4bee2030ad977b9c4cc5b980011db6cf44efb85a63cbbb978435bed9890d36073dda
7
+ data.tar.gz: ae0f8a828569c64d6d7faefea81d7ab633a1691a8011a4d12e575c3e963d7fc1431c21e3bebdf18a3d8f01f808836011cf8b7444c91a437117da39f13cb2636b
data/lib/ddig/cli.rb CHANGED
@@ -27,7 +27,7 @@ module Ddig
27
27
  opts.on("--udp", "use resolve type of udp(do53)") { |v| @options[:dns_type] = 'do53' }
28
28
  opts.on("--dot", "use resolve type of dot") { |v| @options[:dns_type] = 'dot' }
29
29
  opts.on("--doh-h1", "use resolve type of doh (http/1.1)") { |v| @options[:dns_type] = 'doh_h1' }
30
- opts.on("--doh-path=doh-path", "doh service path") { |v| @options[:doh_path] = v }
30
+ opts.on("--doh-path=doh-path", "doh service path (default: /dns-query{?dns})") { |v| @options[:doh_path] = v }
31
31
  opts.on("--ddr", "discover designated resolvers via ddr (discovery of designated resolvers)") { |v| @options[:ddr] = v }
32
32
  opts.on("-4", "--ipv4", "use IPv4 query transport only") { |v| @options[:ipv4] = v }
33
33
  opts.on("-6", "--ipv6", "use IPv6 query transport only") { |v| @options[:ipv6] = v }
@@ -132,8 +132,7 @@ module Ddig
132
132
 
133
133
  def resolve_doh_h1
134
134
  if @options[:nameserver].nil? || @options[:doh_path].nil?
135
- puts 'ddig: doh needs option of --doh-path=doh-path'
136
- exit
135
+ @options[:doh_path] = '/dns-query{?dns}'
137
136
  end
138
137
 
139
138
  doh = Ddig::Resolver::DohH1.new(hostname: @hostname, server: @options[:nameserver], dohpath: @options[:doh_path], port: @options[:port]).lookup
@@ -8,6 +8,13 @@ module Ddig
8
8
  attr_reader :hostname, :a, :aaaa, :resolver, :errors
9
9
 
10
10
  PROTOCOLS = ['http/1.1', 'h2', 'h3', 'dot', 'doq']
11
+ # Reserved ALPN
12
+ # https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids
13
+ IGNORE_PROTOCOLS = [
14
+ "\u001A\u001A", "\u002A\u002A", "\u003A\u003A", "\u004A\u004A", "\u005A\u005A",
15
+ "\u006A\u006A", "\u007A\u007A", "\u008A\u008A", "\u009A\u009A", "\u00AA\u00AA",
16
+ "\u00BA\u00BA", "\u00CA\u00CA", "\u00DA\u00DA", "\u00EA\u00EA", "\u00FA\u00FA"
17
+ ] # '**', '::', 'JJ', 'ZZ', 'jj', 'zz'
11
18
 
12
19
  def initialize(unencrypted_resolver:, target:, protocol: nil, port: nil, dohpath: nil, address: nil, ip: nil)
13
20
  @target = target
@@ -21,8 +28,12 @@ module Ddig
21
28
 
22
29
  # check protocol
23
30
  unless PROTOCOLS.include?(@protocol)
24
- @errors << "Not Supportted Protocol (protocol: #{@protocol}). Suported protocol is #{PROTOCOLS.join(' / ')}"
25
- puts "#{@errors.join('\n')}"
31
+ if IGNORE_PROTOCOLS.include?(@protocol)
32
+ @errors << "Skip the protocol (protocol: #{@protocol}), as it is a reserved value in ALPN."
33
+ else
34
+ @errors << "Not Supportted Protocol (protocol: #{@protocol}). Suported protocol is #{PROTOCOLS.join(' / ')}"
35
+ puts "#{@errors.join('\n')}"
36
+ end
26
37
  end
27
38
 
28
39
  if @port.nil?
@@ -12,7 +12,7 @@ module Ddig
12
12
  attr_reader :hostname, :server, :address, :dohpath, :port
13
13
  attr_reader :a, :aaaa
14
14
 
15
- def initialize(hostname:, server:, address: nil, dohpath:, port: 443)
15
+ def initialize(hostname:, server:, address: nil, dohpath: '/dns-query{?dns}', port: 443)
16
16
  @hostname = hostname
17
17
  @server = server
18
18
  @address = address
data/lib/ddig/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ddig
4
- VERSION = "0.4.2"
4
+ VERSION = "0.4.3"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ddig
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taketo Takashima
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-04-16 00:00:00.000000000 Z
10
+ date: 2025-04-19 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: resolv