Class: UringMachine::DNSResolver
- Inherits:
-
Object
- Object
- UringMachine::DNSResolver
- Defined in:
- lib/uringmachine/dns_resolver.rb
Overview
A basic DNS resolver implementation.
Instance Method Summary collapse
-
#initialize(machine) ⇒ void
constructor
Initializes the DNS resolver.
-
#resolve(hostname, type) ⇒ String
Resolves the given hostname.
Constructor Details
#initialize(machine) ⇒ void
Initializes the DNS resolver.
13 14 15 16 17 18 19 |
# File 'lib/uringmachine/dns_resolver.rb', line 13 def initialize(machine) @machine = machine @requests = UM::Queue.new @nameservers = get_nameservers @fiber = @machine.spin { handle_requests_loop } @last_id = 0 end |
Instance Method Details
#resolve(hostname, type) ⇒ String
Resolves the given hostname.
26 27 28 29 |
# File 'lib/uringmachine/dns_resolver.rb', line 26 def resolve(hostname, type) @machine.push(@requests, [hostname, type, Fiber.current]) @machine.yield end |