close socket when the connection is closed (#2)

Close socket when the connection is closed
This commit is contained in:
Van Huynh 2020-10-16 01:41:24 -07:00 committed by GitHub
parent 24dc58db99
commit 4855742c45
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 8 deletions

View File

@ -213,17 +213,24 @@ module QUIC
end
@engine_open = false
LibLsquic.engine_destroy(engine)
@socket.try &.close
@socket = nil
end
buffer = Bytes.new(0x600)
loop do
bytes_read = socket.read buffer
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_process_conns(engine)
begin
buffer = Bytes.new(0x600)
loop do
bytes_read = socket.read buffer
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_process_conns(engine)
end
rescue IO::Error
# may have already been closed
ensure
@socket.try &.close
@socket = nil
end
@socket.try &.close
@socket = nil
end
def socket : UDPSocket