Correct closing of connections

This commit is contained in:
9seconds
2019-10-10 21:07:55 +03:00
parent d10729490d
commit 56cf90b13d
3 changed files with 16 additions and 9 deletions
+8 -5
View File
@@ -32,17 +32,20 @@ func middleConnection(request *protocol.TelegramRequest) error {
go middlePipe(telegramConn, clientConn, wg, request.Logger)
go middlePipe(clientConn, telegramConn, wg, request.Logger)
<-request.Ctx.Done()
wg.Wait()
return request.Ctx.Err()
return nil
}
func middlePipe(dst conntypes.PacketAckWriter,
src conntypes.PacketAckReader,
func middlePipe(dst conntypes.PacketAckWriteCloser,
src conntypes.PacketAckReadCloser,
wg *sync.WaitGroup,
logger *zap.SugaredLogger) {
defer wg.Done()
defer func() {
dst.Close()
src.Close()
wg.Done()
}()
for {
acks := conntypes.ConnectionAcks{}