File: resolver.rbs

package info (click to toggle)
ruby-httpx 1.7.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,816 kB
  • sloc: ruby: 12,209; makefile: 4
file content (33 lines) | stat: -rw-r--r-- 1,079 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
module HTTPX
  type ipaddr = String | IPAddr | Resolv::IPv4 | Resolver::Entry

  module Resolver
    type dns_resource = singleton(Resolv::DNS::Resource)

    type dns_result = { "name" => String, "TTL" => Numeric, "alias" => String }
                    | { "name" => String, "TTL" => Numeric, "data" => String }

    RESOLVE_TIMEOUT: Array[Integer]

    self.@identifier_mutex: Thread::Mutex
    self.@identifier: Integer
    self.@hosts_resolver: Resolv::Hosts
    self.@supported_ip_families: Array[Integer]

    type dns_decoding_response = [:ok, Array[dns_result]] | [:decode_error, Resolv::DNS::DecodeError] | [:retriable_error | :dns_error, Integer] | Symbol

    def self?.supported_ip_families: () -> Array[ip_family]

    def self?.generate_id: () -> Integer

    def self?.encode_dns_query: (String hostname, ?type: dns_resource, ?message_id: Integer) -> String

    def self?.decode_dns_answer: (String) -> dns_decoding_response

    private

    def self?.id_synchronize: () { () -> void } -> void

    def find_supported_ip_families: () -> Array[Integer]
  end
end