Add support for force_resolve to QUIC client
This commit is contained in:
parent
3fea1976c8
commit
a017574f74
|
@ -26,7 +26,7 @@ dependencies:
|
|||
version: ~> 0.1.2
|
||||
lsquic:
|
||||
github: omarroth/lsquic.cr
|
||||
version: ~> 0.1.5
|
||||
version: ~> 0.1.7
|
||||
|
||||
crystal: 0.31.1
|
||||
|
||||
|
|
|
@ -4523,9 +4523,10 @@ get "/api/v1/search/suggestions" do |env|
|
|||
query ||= ""
|
||||
|
||||
begin
|
||||
response = QUIC::Client.get(
|
||||
"https://suggestqueries.google.com/complete/search?hl=en&gl=#{region}&client=youtube&ds=yt&q=#{URI.encode_www_form(query)}&callback=suggestCallback"
|
||||
).body
|
||||
client = QUIC::Client.new("suggestqueries.google.com")
|
||||
client.family = CONFIG.force_resolve || Socket::Family::INET
|
||||
client.family = Socket::Family::INET if client.family == Socket::Family::UNSPEC
|
||||
response = client.get("/complete/search?hl=en&gl=#{region}&client=youtube&ds=yt&q=#{URI.encode_www_form(query)}&callback=suggestCallback").body
|
||||
|
||||
body = response[35..-2]
|
||||
body = JSON.parse(body).as_a
|
||||
|
|
|
@ -31,8 +31,10 @@ struct QUICPool
|
|||
begin
|
||||
response = yield conn
|
||||
rescue ex
|
||||
conn.destroy_engine
|
||||
conn.close
|
||||
conn = QUIC::Client.new(url)
|
||||
conn.family = (url.host == "www.youtube.com") ? CONFIG.force_resolve : Socket::Family::INET
|
||||
conn.family = Socket::Family::INET if conn.family == Socket::Family::UNSPEC
|
||||
conn.before_request { |r| add_yt_headers(r) } if url.host == "www.youtube.com"
|
||||
response = yield conn
|
||||
ensure
|
||||
|
@ -45,9 +47,11 @@ struct QUICPool
|
|||
|
||||
private def build_pool
|
||||
ConnectionPool(QUIC::Client).new(capacity: capacity, timeout: timeout) do
|
||||
client = QUIC::Client.new(url)
|
||||
client.before_request { |r| add_yt_headers(r) } if url.host == "www.youtube.com"
|
||||
client
|
||||
conn = QUIC::Client.new(url)
|
||||
conn.family = (url.host == "www.youtube.com") ? CONFIG.force_resolve : Socket::Family::INET
|
||||
conn.family = Socket::Family::INET if conn.family == Socket::Family::UNSPEC
|
||||
conn.before_request { |r| add_yt_headers(r) } if url.host == "www.youtube.com"
|
||||
conn
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue