mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-10-04 00:00:37 -04:00
refining soomme signatures
This commit is contained in:
parent
5b5a360cb8
commit
387798fc1a
40
examples/resolv_tcp.rb
Normal file
40
examples/resolv_tcp.rb
Normal file
@ -0,0 +1,40 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "resolv"
|
||||
require "httpx"
|
||||
|
||||
host = "127.0.0.11"
|
||||
port = 53
|
||||
|
||||
# srv_hostname = "aerserv-bc-us-east.bidswitch.net"
|
||||
record_type = Resolv::DNS::Resource::IN::A
|
||||
|
||||
# # addresses = nil
|
||||
# # Resolv::DNS.open(nameserver: host) do |dns|
|
||||
# # require "pry-byebug"; binding.pry
|
||||
# # addresses = dns.getresources(srv_hostname, record_type)
|
||||
# # end
|
||||
|
||||
# message_id = 1
|
||||
# buffer = HTTPX::Resolver.encode_dns_query(srv_hostname, type: record_type, message_id: message_id)
|
||||
|
||||
# io = TCPSocket.new(host, port)
|
||||
# buffer[0, 2] = [buffer.size, message_id].pack("nn")
|
||||
# io.write(buffer.to_s)
|
||||
# data, _ = io.readpartial(2048)
|
||||
# size = data[0, 2].unpack1("n")
|
||||
# answer = data[2..-1]
|
||||
# answer << io.readpartial(size) if size > answer.bytesize
|
||||
|
||||
# addresses = HTTPX::Resolver.decode_dns_answer(answer)
|
||||
|
||||
# puts "(#{srv_hostname}) addresses: #{addresses}"
|
||||
|
||||
srv_hostname = "www.sfjewjfwigiewpgwwg-native-1.com"
|
||||
socket = UDPSocket.new
|
||||
buffer = HTTPX::Resolver.encode_dns_query(srv_hostname, type: record_type)
|
||||
socket.send(buffer.to_s, 0, host, port)
|
||||
recv, _ = socket.recvfrom(512)
|
||||
puts "received #{recv.bytesize} bytes..."
|
||||
addresses = HTTPX::Resolver.decode_dns_answer(recv)
|
||||
puts "(#{srv_hostname}) addresses: #{addresses}"
|
@ -288,13 +288,14 @@ module HTTPX
|
||||
connection = @queries.delete(name)
|
||||
|
||||
unless connection
|
||||
orig_name = name
|
||||
# absolute name
|
||||
name_labels = Resolv::DNS::Name.create(name).to_a
|
||||
name = @queries.each_key.first { |hname| name_labels == Resolv::DNS::Name.create(hname).to_a }
|
||||
|
||||
# probably a retried query for which there's an answer
|
||||
unless name
|
||||
@timeouts.delete(name)
|
||||
@timeouts.delete(orig_name)
|
||||
return
|
||||
end
|
||||
|
||||
|
@ -11,7 +11,8 @@ module HTTPX
|
||||
|
||||
@options: Options
|
||||
@ns_index: Integer
|
||||
@nameserver: Array[String]?
|
||||
@nameserver: Array[String]
|
||||
@socket_type: :udp | :tcp
|
||||
@ndots: Integer
|
||||
@start_timeout: Float?
|
||||
@search: Array[String]
|
||||
|
@ -6,8 +6,6 @@ module HTTPX
|
||||
|
||||
RECORD_TYPES: Hash[Integer, singleton(Resolv::DNS::Resource)]
|
||||
|
||||
attr_reader family: ip_family?
|
||||
|
||||
@record_type: singleton(Resolv::DNS::Resource)
|
||||
@options: Options
|
||||
@resolver_options: Hash[Symbol, untyped]
|
||||
|
@ -5,6 +5,8 @@ module HTTPX
|
||||
|
||||
@resolver: Resolv::DNS
|
||||
|
||||
attr_reader family: nil
|
||||
|
||||
def <<: (Connection) -> void
|
||||
|
||||
private
|
||||
|
Loading…
x
Reference in New Issue
Block a user