socketError stored with stack

This commit is contained in:
xtaci
2019-05-10 13:45:34 +08:00
parent be79ecbbdc
commit 2a54490895
5 changed files with 16 additions and 10 deletions
+4 -2
View File
@@ -4,6 +4,8 @@ package kcp
import (
"sync/atomic"
"github.com/pkg/errors"
)
func (s *UDPSession) readLoop() {
@@ -25,7 +27,7 @@ func (s *UDPSession) readLoop() {
atomic.AddUint64(&DefaultSnmp.InErrs, 1)
}
} else {
s.socketError.Store(err)
s.socketError.Store(errors.WithStack(err))
s.Close()
return
}
@@ -42,7 +44,7 @@ func (l *Listener) monitor() {
atomic.AddUint64(&DefaultSnmp.InErrs, 1)
}
} else {
l.socketError.Store(err)
l.socketError.Store(errors.WithStack(err))
l.Close()
return
}
+3 -2
View File
@@ -6,6 +6,7 @@ import (
"net"
"sync/atomic"
"github.com/pkg/errors"
"golang.org/x/net/ipv4"
"golang.org/x/net/ipv6"
)
@@ -52,7 +53,7 @@ func (s *UDPSession) readLoop() {
s.packetInput(msg.Buffers[0][:msg.N])
}
} else {
s.socketError.Store(err)
s.socketError.Store(errors.WithStack(err))
s.Close()
return
}
@@ -85,7 +86,7 @@ func (l *Listener) monitor() {
}
}
} else {
l.socketError.Store(err)
s.socketError.Store(errors.WithStack(err))
l.Close()
return
}
+2 -2
View File
@@ -337,7 +337,7 @@ func (s *UDPSession) Close() error {
s.l.closeSession(s.remote)
} else { // client socket close
if err := s.conn.Close(); err != nil {
s.socketError.Store(err)
s.socketError.Store(errors.WithStack(err))
}
}
close(s.die)
@@ -828,7 +828,7 @@ func (l *Listener) Close() (err error) {
var once bool
l.dieOnce.Do(func() {
if err := l.conn.Close(); err != nil {
l.socketError.Store(err)
l.socketError.Store(errors.WithStack(err))
}
close(l.die)
once = true
+4 -2
View File
@@ -4,6 +4,8 @@ package kcp
import (
"sync/atomic"
"github.com/pkg/errors"
)
func (s *UDPSession) txLoop() {
@@ -16,7 +18,7 @@ func (s *UDPSession) txLoop() {
nbytes += n
xmitBuf.Put(txqueue[k].Buffers[0])
} else {
s.socketError.Store(err)
s.socketError.Store(errors.WithStack(err))
s.Close()
return
}
@@ -39,7 +41,7 @@ func (l *Listener) txLoop() {
nbytes += n
xmitBuf.Put(txqueue[k].Buffers[0])
} else {
l.socketError.Store(err)
l.socketError.Store(errors.WithStack(err))
l.Close()
return
}
+3 -2
View File
@@ -6,6 +6,7 @@ import (
"net"
"sync/atomic"
"github.com/pkg/errors"
"golang.org/x/net/ipv4"
"golang.org/x/net/ipv6"
)
@@ -30,7 +31,7 @@ func (s *UDPSession) txLoop() {
if n, err := conn.WriteBatch(vec, 0); err == nil {
vec = vec[n:]
} else {
s.socketError.Store(err)
s.socketError.Store(errors.WithStack(err))
s.Close()
return
}
@@ -70,7 +71,7 @@ func (l *Listener) txLoop() {
if n, err := conn.WriteBatch(vec, 0); err == nil {
vec = vec[n:]
} else {
l.socketError.Store(err)
s.socketError.Store(errors.WithStack(err))
l.Close()
return
}