From b686119a6ffdfe363d983e5ec55f4e831ca58975 Mon Sep 17 00:00:00 2001 From: HoneyryderChuck Date: Wed, 24 Jan 2024 22:37:18 +0000 Subject: [PATCH] do not try to cast to Options all the time, trust the internal structure --- lib/httpx/connection.rb | 2 ++ lib/httpx/connection/http1.rb | 2 +- lib/httpx/connection/http2.rb | 2 +- lib/httpx/io/tcp.rb | 2 +- lib/httpx/io/unix.rb | 2 +- lib/httpx/plugins/proxy/socks4.rb | 2 +- lib/httpx/plugins/proxy/socks5.rb | 2 +- lib/httpx/resolver/resolver.rb | 2 +- lib/httpx/response.rb | 2 +- sig/connection.rbs | 4 ++-- sig/connection/http1.rbs | 2 +- sig/connection/http2.rbs | 2 +- sig/io/unix.rbs | 2 +- sig/resolver/resolver.rbs | 2 +- 14 files changed, 16 insertions(+), 14 deletions(-) diff --git a/lib/httpx/connection.rb b/lib/httpx/connection.rb index 9a10f8f0..cfb90cb9 100644 --- a/lib/httpx/connection.rb +++ b/lib/httpx/connection.rb @@ -48,6 +48,8 @@ module HTTPX attr_accessor :family def initialize(uri, options) + @origins = [uri.origin] + @origin = Utils.to_uri(uri.origin) @options = Options.new(options) @type = initialize_type(uri, @options) @origins = [uri.origin] diff --git a/lib/httpx/connection/http1.rb b/lib/httpx/connection/http1.rb index 8b22f0d6..01a95ffb 100644 --- a/lib/httpx/connection/http1.rb +++ b/lib/httpx/connection/http1.rb @@ -15,7 +15,7 @@ module HTTPX attr_accessor :max_concurrent_requests def initialize(buffer, options) - @options = Options.new(options) + @options = options @max_concurrent_requests = @options.max_concurrent_requests || MAX_REQUESTS @max_requests = @options.max_requests @parser = Parser::HTTP1.new(self) diff --git a/lib/httpx/connection/http2.rb b/lib/httpx/connection/http2.rb index 8ad7488d..5c6c22a6 100644 --- a/lib/httpx/connection/http2.rb +++ b/lib/httpx/connection/http2.rb @@ -25,7 +25,7 @@ module HTTPX attr_reader :streams, :pending def initialize(buffer, options) - @options = Options.new(options) + @options = options @settings = @options.http2_settings @pending = [] @streams = {} diff --git a/lib/httpx/io/tcp.rb b/lib/httpx/io/tcp.rb index a16ad73a..ac870563 100644 --- a/lib/httpx/io/tcp.rb +++ b/lib/httpx/io/tcp.rb @@ -17,7 +17,7 @@ module HTTPX @state = :idle @addresses = [] @hostname = origin.host - @options = Options.new(options) + @options = options @fallback_protocol = @options.fallback_protocol @port = origin.port @interests = :w diff --git a/lib/httpx/io/unix.rb b/lib/httpx/io/unix.rb index 349560cc..525ad809 100644 --- a/lib/httpx/io/unix.rb +++ b/lib/httpx/io/unix.rb @@ -12,7 +12,7 @@ module HTTPX @addresses = [] @hostname = origin.host @state = :idle - @options = Options.new(options) + @options = options @fallback_protocol = @options.fallback_protocol if @options.io @io = case @options.io diff --git a/lib/httpx/plugins/proxy/socks4.rb b/lib/httpx/plugins/proxy/socks4.rb index 471b2a2e..6e09b0a0 100644 --- a/lib/httpx/plugins/proxy/socks4.rb +++ b/lib/httpx/plugins/proxy/socks4.rb @@ -89,7 +89,7 @@ module HTTPX def initialize(buffer, options) @buffer = buffer - @options = Options.new(options) + @options = options end def close; end diff --git a/lib/httpx/plugins/proxy/socks5.rb b/lib/httpx/plugins/proxy/socks5.rb index 1fe8eeb4..ae286942 100644 --- a/lib/httpx/plugins/proxy/socks5.rb +++ b/lib/httpx/plugins/proxy/socks5.rb @@ -141,7 +141,7 @@ module HTTPX def initialize(buffer, options) @buffer = buffer - @options = Options.new(options) + @options = options end def close; end diff --git a/lib/httpx/resolver/resolver.rb b/lib/httpx/resolver/resolver.rb index 223c7360..4f95c944 100644 --- a/lib/httpx/resolver/resolver.rb +++ b/lib/httpx/resolver/resolver.rb @@ -33,7 +33,7 @@ module HTTPX def initialize(family, options) @family = family @record_type = RECORD_TYPES[family] - @options = Options.new(options) + @options = options end def close; end diff --git a/lib/httpx/response.rb b/lib/httpx/response.rb index 21fc1ec1..90d85e30 100644 --- a/lib/httpx/response.rb +++ b/lib/httpx/response.rb @@ -251,7 +251,7 @@ module HTTPX @request = request @response = request.response if request.response.is_a?(Response) @error = error - @options = Options.new(options) + @options = options log_exception(@error) end diff --git a/sig/connection.rbs b/sig/connection.rbs index 8145c02f..81cc7fee 100644 --- a/sig/connection.rbs +++ b/sig/connection.rbs @@ -93,9 +93,9 @@ module HTTPX private - def initialize: (http_uri uri, options) -> void + def initialize: (http_uri uri, Options options) -> void - def initialize_type: (http_uri uri, Options) -> io_type + def initialize_type: (http_uri uri, Options options) -> io_type def connect: () -> void diff --git a/sig/connection/http1.rbs b/sig/connection/http1.rbs index 5e576b52..d920bc4b 100644 --- a/sig/connection/http1.rbs +++ b/sig/connection/http1.rbs @@ -58,7 +58,7 @@ module HTTPX private - def initialize: (Buffer, options) -> untyped + def initialize: (Buffer buffer, Options options) -> untyped def manage_connection: (Request request, Response response) -> void diff --git a/sig/connection/http2.rbs b/sig/connection/http2.rbs index d35cd7de..64b7de4a 100644 --- a/sig/connection/http2.rbs +++ b/sig/connection/http2.rbs @@ -42,7 +42,7 @@ module HTTPX private - def initialize: (Buffer, options) -> untyped + def initialize: (Buffer buffer, Options options) -> untyped def send_pending: () -> void diff --git a/sig/io/unix.rbs b/sig/io/unix.rbs index a113730b..06df7726 100644 --- a/sig/io/unix.rbs +++ b/sig/io/unix.rbs @@ -15,7 +15,7 @@ module HTTPX @io: Socket - def initialize: (http_uri origin, String? path, options options) -> void + def initialize: (http_uri origin, String? path, Options options) -> void def connect: () -> void diff --git a/sig/resolver/resolver.rbs b/sig/resolver/resolver.rbs index 366a7684..274e36cb 100644 --- a/sig/resolver/resolver.rbs +++ b/sig/resolver/resolver.rbs @@ -26,7 +26,7 @@ module HTTPX def emit_resolved_connection: (Connection connection, Array[IPAddr] addresses, bool early_resolve) -> void - def initialize: (ip_family? family, options options) -> void + def initialize: (ip_family? family, Options options) -> void def early_resolve: (Connection connection, ?hostname: String) -> void