dps 0.0.9 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dps.rb +11 -1
  3. data/lib/dps/dns.rb +22 -12
  4. data/lib/dps/version.rb +1 -1
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe6edaca6bd54be5b2d4209106faad950c85d5e24723bd754924c6299b922c52
4
- data.tar.gz: 846bfda91b9f26aa9319ad02783fe122fde0562b15fda31a38a8e1234751ddcd
3
+ metadata.gz: 591288310761ee808b58e9583dd14a51e14c32d1c6341d859d6560ce64e95cbc
4
+ data.tar.gz: 97e68d49c04562388eba7024b7d5c2a1ca49499543658f09e7f8032baf041dc3
5
5
  SHA512:
6
- metadata.gz: 6a3882d7661bc5efcf9751d5bd3954a91fedce55d3a02a7137244d234b8312a2fc8cd3c2677a82c5e81db376df77ddc23d424d7285e10bec02c405823001bf9a
7
- data.tar.gz: f68a33510f5fc4fbb285da2b2fcd6f5decf5ff494bb2e7e0e90630d30f07df5e4347cec7593d2e329f11c266696f376046f526f3182ddca39cf2b21e5e11d145
6
+ metadata.gz: 42a5e910ec0bcab2af1546396cce787ec34bc6a3c89d89251430f977845f870b588c33dda841b2bf89671f69d0e4aa5f644bd64dbc90fa3a293140d28f0cb7bd
7
+ data.tar.gz: 738d3a83c035de076664321ea784c6fb05fb31d54f006d08e3433cf633222a10150e349e9c0a65ee0cb5a8bfd6468c8be048721e1b92cd19f5bca1cd1e2ab14f
data/lib/dps.rb CHANGED
@@ -7,11 +7,21 @@ module Dps
7
7
  class Error < StandardError; end
8
8
  class ProcNotSetError < StandardError; end
9
9
 
10
+ mattr_accessor :dns_nameservers
10
11
  mattr_accessor :endpoints
11
12
  mattr_accessor :domains
12
13
  mattr_accessor :new_payment_endpoints_renderers
14
+
13
15
  self.new_payment_endpoints_renderers = {}
14
-
16
+ self.dns_nameservers = [
17
+ '1.1.1.1', # Cloudflare
18
+ '1.0.0.1', # Cloudflare
19
+ '84.200.69.80', # DNS Watch
20
+ '84.200.70.40', # DNS Watch
21
+ '91.239.100.100', # UncensoredDNS
22
+ '89.233.43.71', # UncensoredDNS
23
+ ]
24
+
15
25
  def self.setup
16
26
  yield(self)
17
27
  end
@@ -6,22 +6,20 @@ module Dps
6
6
  class << self
7
7
  def get_records(domain)
8
8
  get_txt_records(domain).
9
- collect { |value| decode_txt_record(value) }.select(&:valid?)
9
+ collect { |value| decode_txt_record(value) }.
10
+ select(&:valid?)
10
11
  end
11
12
 
12
13
  def decode_txt_record(value)
13
14
  parts = value.gsub('"', '').split
14
15
 
15
- # Reverse since Ruby #pop starts from end of list.
16
- parts.reverse!
17
- action = parts.pop
18
- parts.reverse!
19
-
20
- case action
16
+ head, tail = head_and_tail(parts)
17
+
18
+ case head
21
19
  when "dps:endpoint"
22
- Endpoint.new(parts)
20
+ Endpoint.new(tail)
23
21
  else
24
- InvalidRecord.new("Unexpected action '#{action}'")
22
+ InvalidRecord.new("Unexpected action '#{head}'")
25
23
  end
26
24
  end
27
25
 
@@ -39,15 +37,27 @@ module Dps
39
37
 
40
38
  private
41
39
 
40
+ def head_and_tail(array)
41
+ head = array[0]
42
+ tail = array[1, array.length - 1]
43
+ [head, tail]
44
+ end
45
+
46
+ def dnsruby_config
47
+ {
48
+ nameserver: Dps.dns_nameservers
49
+ }
50
+ end
51
+
42
52
  def get_txt_records(domain)
43
53
  result = []
44
54
 
45
- ::Dnsruby::DNS.open do |dns|
55
+ Dnsruby::DNS.open(dnsruby_config) do |dns|
46
56
  begin
47
- record = dns.getresource(domain, "TXT")
57
+ record = dns.getresource(domain, Dnsruby::Types::TXT)
48
58
  result << record.data
49
59
  rescue Dnsruby::NXDomain => e
50
- raise InvalidRecord.new("Invalid domain.")
60
+ raise StandardError.new("Invalid domain '#{domain}'.")
51
61
  end
52
62
  end
53
63
 
@@ -1,3 +1,3 @@
1
1
  module Dps
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.11"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mat Holroyd
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-21 00:00:00.000000000 Z
11
+ date: 2019-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dnsruby