server: add error to OnSessionClose()

This commit is contained in:
aler9
2021-05-04 15:51:35 +02:00
committed by Alessandro Ros
parent 6f749e6ba8
commit 9d42a63102
9 changed files with 99 additions and 79 deletions

View File

@@ -168,25 +168,28 @@ func (sc *ServerConn) run() {
}()
}()
var err error
select {
case err = <-readDone:
if sc.tcpFrameEnabled {
sc.tcpFrameWriteBuffer.Close()
<-sc.tcpFrameBackgroundWriteDone
}
sc.nconn.Close()
sc.s.connClose <- sc
<-sc.terminate
err := func() error {
select {
case err := <-readDone:
if sc.tcpFrameEnabled {
sc.tcpFrameWriteBuffer.Close()
<-sc.tcpFrameBackgroundWriteDone
}
sc.nconn.Close()
sc.s.connClose <- sc
<-sc.terminate
return err
case <-sc.terminate:
if sc.tcpFrameEnabled {
sc.tcpFrameWriteBuffer.Close()
<-sc.tcpFrameBackgroundWriteDone
case <-sc.terminate:
if sc.tcpFrameEnabled {
sc.tcpFrameWriteBuffer.Close()
<-sc.tcpFrameBackgroundWriteDone
}
sc.nconn.Close()
<-readDone
return liberrors.ErrServerTerminated{}
}
sc.nconn.Close()
err = <-readDone
}
}()
if sc.tcpFrameEnabled {
sc.s.sessionClose <- sc.tcpFrameLinkedSession