mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-12-06 00:00:28 -05:00
allow early resolve errors to bubble up the session just like lack of nameserver
This commit is contained in:
parent
b6611ec321
commit
6106f5cd43
@ -65,20 +65,28 @@ module HTTPX
|
||||
unless connection.state == :closed ||
|
||||
# double emission check
|
||||
(connection.addresses && addresses.intersect?(connection.addresses))
|
||||
emit_resolved_connection(connection, addresses)
|
||||
emit_resolved_connection(connection, addresses, early_resolve)
|
||||
end
|
||||
end
|
||||
else
|
||||
emit_resolved_connection(connection, addresses)
|
||||
emit_resolved_connection(connection, addresses, early_resolve)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def emit_resolved_connection(connection, addresses)
|
||||
connection.addresses = addresses
|
||||
def emit_resolved_connection(connection, addresses, early_resolve)
|
||||
begin
|
||||
connection.addresses = addresses
|
||||
|
||||
emit(:resolve, connection)
|
||||
emit(:resolve, connection)
|
||||
rescue StandardError => e
|
||||
if early_resolve
|
||||
throw(:resolve_error, e)
|
||||
else
|
||||
emit(:error, connection, e)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def early_resolve(connection, hostname: connection.origin.host)
|
||||
|
||||
@ -22,7 +22,7 @@ module HTTPX
|
||||
|
||||
private
|
||||
|
||||
def emit_resolved_connection: (Connection connection, Array[IPAddr] addresses) -> void
|
||||
def emit_resolved_connection: (Connection connection, Array[IPAddr] addresses, bool early_resolve) -> void
|
||||
|
||||
def initialize: (ip_family? family, options options) -> void
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user