mirror of
https://gitea.invidious.io/iv-org/lsquic.cr
synced 2024-08-15 00:43:31 +00:00
Fix binding for IPv6
This commit is contained in:
parent
fd48ef3471
commit
bc101423fa
1 changed files with 12 additions and 3 deletions
|
@ -124,7 +124,7 @@ module QUIC
|
||||||
ENGINE_FLAGS = LibLsquic::LSENG_HTTP
|
ENGINE_FLAGS = LibLsquic::LSENG_HTTP
|
||||||
LibLsquic.global_init(ENGINE_FLAGS & LibLsquic::LSENG_SERVER ? LibLsquic::GLOBAL_SERVER : LibLsquic::GLOBAL_CLIENT)
|
LibLsquic.global_init(ENGINE_FLAGS & LibLsquic::LSENG_SERVER ? LibLsquic::GLOBAL_SERVER : LibLsquic::GLOBAL_CLIENT)
|
||||||
|
|
||||||
property family : Socket::Family = Socket::Family::UNSPEC
|
property family : Socket::Family = Socket::Family::INET
|
||||||
|
|
||||||
# The set of possible valid body types.
|
# The set of possible valid body types.
|
||||||
alias BodyType = String | Bytes | IO | Nil
|
alias BodyType = String | Bytes | IO | Nil
|
||||||
|
@ -213,8 +213,16 @@ module QUIC
|
||||||
socket = @socket
|
socket = @socket
|
||||||
return socket.not_nil! if @socket
|
return socket.not_nil! if @socket
|
||||||
|
|
||||||
socket = UDPSocket.new
|
socket = UDPSocket.new @family
|
||||||
socket.bind Socket::IPAddress.new("0.0.0.0", 0)
|
case @family
|
||||||
|
when Socket::Family::INET
|
||||||
|
socket.bind Socket::IPAddress.new("0.0.0.0", 0)
|
||||||
|
when Socket::Family::INET6
|
||||||
|
socket.bind Socket::IPAddress.new("::", 0)
|
||||||
|
else
|
||||||
|
socket.bind Socket::IPAddress.new("0.0.0.0", 0)
|
||||||
|
end
|
||||||
|
|
||||||
Socket::Addrinfo.udp(@host, @port, timeout: @dns_timeout, family: @family) do |addrinfo|
|
Socket::Addrinfo.udp(@host, @port, timeout: @dns_timeout, family: @family) do |addrinfo|
|
||||||
socket.connect(addrinfo, timeout: @connect_timeout) do |error|
|
socket.connect(addrinfo, timeout: @connect_timeout) do |error|
|
||||||
close
|
close
|
||||||
|
@ -477,6 +485,7 @@ module QUIC
|
||||||
|
|
||||||
def close
|
def close
|
||||||
@stream_channel.send nil
|
@stream_channel.send nil
|
||||||
|
Fiber.yield
|
||||||
end
|
end
|
||||||
|
|
||||||
private def new_request(method, path, headers, body : BodyType)
|
private def new_request(method, path, headers, body : BodyType)
|
||||||
|
|
Loading…
Reference in a new issue