class Durian::Resolver

Defined in:

durian/resolver.cr

Constant Summary

IPAddressRecordFlags = [RecordFlag::A, RecordFlag::AAAA]

Constructors

Class Method Summary

Instance Method Summary

Constructor Detail

def self.new(dnsServers : Array(Tuple(Socket::IPAddress, Protocol))) #

[View source]
def self.new(dnsServer : Socket::IPAddress = Socket::IPAddress.new("8.8.8.8", 53), protocol : Protocol = Protocol::UDP) #

[View source]

Class Method Detail

def self.fetch_ip_cache(host : String, port : Int32, ip_cache : Cache::IPAddress | Nil) #

[View source]
def self.get_tcp_socket!(host : String, port : Int32, resolver : Resolver, connect_timeout : Int | Float | Nil = nil) : ::TCPSocket #

[View source]
def self.get_udp_socket!(host : String, port : Int32, resolver : Resolver) : UDPSocket #

[View source]
def self.getaddrinfo!(host : String, port : Int32, resolver : Resolver) : Tuple(Fetch, Socket::IPAddress) #

[View source]
def self.getaddrinfo_all(host : String, port : Int32, ip_cache : Cache::IPAddress | Nil = nil, dnsServer : Socket::IPAddress = Socket::IPAddress.new("8.8.8.8", 53), protocol : Protocol = Protocol::UDP, &block : Tuple(Fetch, Array(Socket::IPAddress)) -> ) #

[View source]
def self.getaddrinfo_all(host : String, port : Int32, ip_cache : Cache::IPAddress | Nil = nil, dnsServer : Socket::IPAddress = Socket::IPAddress.new("8.8.8.8", 53), protocol : Protocol = Protocol::UDP) : Tuple(Fetch, Array(Socket::IPAddress)) #

[View source]
def self.getaddrinfo_all(host : String, port : Int32, ip_cache : Cache::IPAddress | Nil, dnsServers : Array(Tuple(Socket::IPAddress, Protocol)), &block : Tuple(Fetch, Array(Socket::IPAddress)) -> ) #

[View source]
def self.getaddrinfo_all(host : String, port : Int32, ip_cache : Cache::IPAddress | Nil, dnsServers : Array(Tuple(Socket::IPAddress, Protocol))) : Tuple(Fetch, Array(Socket::IPAddress)) #

[View source]
def self.getaddrinfo_all(host : String, port : Int32, resolver : Resolver, &block : Tuple(Fetch, Array(Socket::IPAddress)) -> ) #

[View source]
def self.getaddrinfo_all(host : String, port : Int32, resolver : Resolver) : Tuple(Fetch, Array(Socket::IPAddress)) #

[View source]

Instance Method Detail

def cache : Durian::Cache? #

[View source]
def cache=(value : Cache) #

[View source]
def cache_expires?(host, flags : Array(RecordFlag)) #

[View source]
def dnsServers : Array(Tuple(Socket::IPAddress, Protocol)) #

[View source]
def dnsServers=(dnsServers : Array(Tuple(Socket::IPAddress, Protocol))) #

[View source]
def fetch_cache(host, flags : Array(RecordFlag), resolve_response : ResolveResponse) #

[View source]
def fetch_raw_cache(host, flag : RecordFlag) #

[View source]
def get_socket_protocol(socket : NetworkClient) #

[View source]
def ip_cache : Durian::Cache::IPAddress? #

[View source]
def ip_cache=(value : Cache::IPAddress) #

[View source]
def mapping?(host : String, port : Int32 | Nil = 0) : Option::Mapping | Nil #

[View source]
def mapping_local?(item, port : Int32 = 0) : Array(Socket::IPAddress) | Nil #

[View source]
def mapping_to?(item, port : Int32 = 0) : Tuple(String, Int32) | Nil #

[View source]
def mismatch_retry #

[View source]
def option : Option #

[View source]
def option=(option : Option) #

[View source]
def random : Random #

[View source]
def random=(random : Random) #

[View source]
def resolve(host, flag : RecordFlag, strict_answer : Bool = false, &callback : ResolveResponse -> ) #

[View source]
def resolve(host, flags : Array(RecordFlag), strict_answer : Bool = false, &callback : ResolveResponse -> ) #

[View source]
def resolve_by_flag!(specify : Array(Tuple(Socket::IPAddress, Protocol)) | Nil, host : String, flag : RecordFlag, strict_answer : Bool = false) : Packet::Response | Nil #

[View source]
def resolve_by_flag!(socket : NetworkClient, host : String, flag : RecordFlag, strict_answer : Bool = false) : Packet::Response | Nil #

[View source]
def resolve_task(specify : Array(Tuple(Socket::IPAddress, Protocol)) | Nil, host : String, task : ResolveTask) #

[View source]
def run #

[View source]
def set_cache(host, packet : Packet::Response, flag : RecordFlag) #

[View source]
def specify?(host : String, port : Int32 | Nil = 0) : Option::Specify | Nil #

[View source]
def tasks : Immutable::Map(String, Immutable::Map(String, ResolveTask)) #

[View source]
def tasks=(tasks : Immutable::Map(String, Immutable::Map(String, ResolveTask))) #

[View source]
def to_ip_address(host : String) #

[View source]