mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-10-05 00:02:38 -04:00
during interest calculation A quirk was found whereby a connection which failed while connecting (such as the badssl test) was properly unregistered from the pool, was however kept in the selectables selector pool, because if this operation happening during the interest calculation pool, and the var substitution being performed right afterwards, leaving the pool and selector out of sync and causing all sorts of miscalculations around timers later on.
65 lines
1.4 KiB
Plaintext
65 lines
1.4 KiB
Plaintext
module HTTPX
|
|
module Resolver
|
|
class Native
|
|
extend Forwardable
|
|
include ResolverMixin
|
|
include _ToIO
|
|
|
|
DEFAULTS: Hash[Symbol, untyped]
|
|
DNS_PORT: Integer
|
|
|
|
@options: Options
|
|
@ns_index: Integer
|
|
@resolver_options: Hash[Symbol, untyped]
|
|
@nameserver: String
|
|
@_timeouts: Array[Numeric]
|
|
@timeouts: Hash[String, Array[Numeric]]
|
|
@_record_types: Hash[String, Hash["A" | "AAAA", dns_resource]]
|
|
@connections: Array[Connection]
|
|
@queries: Hash[String, Connection]
|
|
@read_buffer: String
|
|
@write_buffer: Buffer
|
|
|
|
attr_reader state: Symbol
|
|
|
|
def closed?: () -> bool
|
|
|
|
def empty?: () -> bool
|
|
|
|
def close: () -> void
|
|
|
|
def call: () -> void
|
|
|
|
def interests: () -> io_interests
|
|
|
|
def <<: (Connection) -> void
|
|
|
|
def timeout: () -> Numeric?
|
|
|
|
private
|
|
|
|
def initialize: (options) -> untyped
|
|
|
|
def calculate_interests: () -> (:r | :w)
|
|
|
|
def consume: () -> void
|
|
|
|
def do_retry: () -> void
|
|
|
|
def dread: (Integer) -> void
|
|
| () -> void
|
|
|
|
def dwrite: () -> void
|
|
|
|
def parse: (String) -> void
|
|
|
|
def resolve: (?Connection connection, ?String hostname) -> void
|
|
|
|
def build_socket: () -> void
|
|
|
|
def transition: (Symbol nextstate) -> void
|
|
|
|
def handle_error: (NativeResolveError | StandardError) -> void
|
|
end
|
|
end
|
|
end |