mirror of
https://gitea.invidious.io/iv-org/lsquic.cr
synced 2024-08-15 00:43:31 +00:00
Correctly rescue closed socket
This commit is contained in:
parent
53c90d4b1c
commit
60c4020fd9
1 changed files with 8 additions and 3 deletions
|
@ -207,7 +207,11 @@ module QUIC
|
||||||
|
|
||||||
buffer = Bytes.new(0x600)
|
buffer = Bytes.new(0x600)
|
||||||
loop do
|
loop do
|
||||||
bytes_read = socket.read buffer
|
begin
|
||||||
|
bytes_read = socket.read buffer
|
||||||
|
rescue ex
|
||||||
|
break
|
||||||
|
end
|
||||||
break if !@engine_open
|
break if !@engine_open
|
||||||
LibLsquic.engine_packet_in(engine, buffer[0, bytes_read], bytes_read, socket.local_address, socket.remote_address, Box.box(socket), 0) if bytes_read != 0
|
LibLsquic.engine_packet_in(engine, buffer[0, bytes_read], bytes_read, socket.local_address, socket.remote_address, Box.box(socket), 0) if bytes_read != 0
|
||||||
LibLsquic.engine_process_conns(engine)
|
LibLsquic.engine_process_conns(engine)
|
||||||
|
@ -217,8 +221,7 @@ module QUIC
|
||||||
end
|
end
|
||||||
|
|
||||||
def socket : UDPSocket
|
def socket : UDPSocket
|
||||||
socket = @socket
|
return @socket.as(UDPSocket) if @socket
|
||||||
return socket.not_nil! if @socket
|
|
||||||
|
|
||||||
socket = UDPSocket.new @family
|
socket = UDPSocket.new @family
|
||||||
case @family
|
case @family
|
||||||
|
@ -494,6 +497,8 @@ module QUIC
|
||||||
def close
|
def close
|
||||||
@stream_channel.send nil
|
@stream_channel.send nil
|
||||||
Fiber.yield
|
Fiber.yield
|
||||||
|
@socket.try &.close
|
||||||
|
@socket = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
private def new_request(method, path, headers, body : BodyType)
|
private def new_request(method, path, headers, body : BodyType)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue