Commit ff16ffe3 authored by u0x01's avatar u0x01

Mod: add pkg/errors alias

parent 69a7b1ba
...@@ -25,7 +25,7 @@ import ( ...@@ -25,7 +25,7 @@ import (
"github.com/AlexStocks/goext/net" "github.com/AlexStocks/goext/net"
log "github.com/dubbogo/log4go" log "github.com/dubbogo/log4go"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"github.com/pkg/errors" perrors "github.com/pkg/errors"
) )
const ( const (
...@@ -185,7 +185,7 @@ func (c *client) dialUDP() Session { ...@@ -185,7 +185,7 @@ func (c *client) dialUDP() Session {
} }
conn.SetReadDeadline(time.Now().Add(1e9)) conn.SetReadDeadline(time.Now().Add(1e9))
length, err = conn.Read(buf) length, err = conn.Read(buf)
if netErr, ok := errors.Cause(err).(net.Error); ok && netErr.Timeout() { if netErr, ok := perrors.Cause(err).(net.Error); ok && netErr.Timeout() {
err = nil err = nil
} }
if err != nil { if err != nil {
......
...@@ -24,7 +24,7 @@ import ( ...@@ -24,7 +24,7 @@ import (
log "github.com/dubbogo/log4go" log "github.com/dubbogo/log4go"
"github.com/golang/snappy" "github.com/golang/snappy"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"github.com/pkg/errors" perrors "github.com/pkg/errors"
"golang.org/x/net/ipv4" "golang.org/x/net/ipv4"
"golang.org/x/net/ipv6" "golang.org/x/net/ipv6"
) )
...@@ -32,7 +32,7 @@ import ( ...@@ -32,7 +32,7 @@ import (
var ( var (
launchTime = time.Now() launchTime = time.Now()
// ErrInvalidConnection = errors.New("connection has been closed.") // ErrInvalidConnection = perrors.New("connection has been closed.")
) )
///////////////////////////////////////// /////////////////////////////////////////
...@@ -193,10 +193,10 @@ func (t *writeFlusher) Write(p []byte) (int, error) { ...@@ -193,10 +193,10 @@ func (t *writeFlusher) Write(p []byte) (int, error) {
defer t.lock.Unlock() defer t.lock.Unlock()
n, err = t.flusher.Write(p) n, err = t.flusher.Write(p)
if err != nil { if err != nil {
return n, errors.WithStack(err) return n, perrors.WithStack(err)
} }
if err := t.flusher.Flush(); err != nil { if err := t.flusher.Flush(); err != nil {
return 0, errors.WithStack(err) return 0, perrors.WithStack(err)
} }
return n, nil return n, nil
...@@ -243,7 +243,7 @@ func (t *gettyTCPConn) read(p []byte) (int, error) { ...@@ -243,7 +243,7 @@ func (t *gettyTCPConn) read(p []byte) (int, error) {
currentTime = time.Now() currentTime = time.Now()
if currentTime.Sub(t.rLastDeadline) > (t.rTimeout >> 2) { if currentTime.Sub(t.rLastDeadline) > (t.rTimeout >> 2) {
if err = t.conn.SetReadDeadline(currentTime.Add(t.rTimeout)); err != nil { if err = t.conn.SetReadDeadline(currentTime.Add(t.rTimeout)); err != nil {
return 0, errors.WithStack(err) return 0, perrors.WithStack(err)
} }
t.rLastDeadline = currentTime t.rLastDeadline = currentTime
} }
...@@ -252,7 +252,7 @@ func (t *gettyTCPConn) read(p []byte) (int, error) { ...@@ -252,7 +252,7 @@ func (t *gettyTCPConn) read(p []byte) (int, error) {
length, err = t.reader.Read(p) length, err = t.reader.Read(p)
log.Debug("now:%s, length:%d, err:%s", currentTime, length, err) log.Debug("now:%s, length:%d, err:%s", currentTime, length, err)
atomic.AddUint32(&t.readBytes, uint32(length)) atomic.AddUint32(&t.readBytes, uint32(length))
return length, errors.WithStack(err) return length, perrors.WithStack(err)
//return length, err //return length, err
} }
...@@ -267,7 +267,7 @@ func (t *gettyTCPConn) Write(pkg interface{}) (int, error) { ...@@ -267,7 +267,7 @@ func (t *gettyTCPConn) Write(pkg interface{}) (int, error) {
) )
if p, ok = pkg.([]byte); !ok { if p, ok = pkg.([]byte); !ok {
return 0, errors.Errorf("illegal @pkg{%#v} type", pkg) return 0, perrors.Errorf("illegal @pkg{%#v} type", pkg)
} }
if t.compress == CompressNone && t.wTimeout > 0 { if t.compress == CompressNone && t.wTimeout > 0 {
// Optimization: update write deadline only if more than 25% // Optimization: update write deadline only if more than 25%
...@@ -276,7 +276,7 @@ func (t *gettyTCPConn) Write(pkg interface{}) (int, error) { ...@@ -276,7 +276,7 @@ func (t *gettyTCPConn) Write(pkg interface{}) (int, error) {
currentTime = time.Now() currentTime = time.Now()
if currentTime.Sub(t.wLastDeadline) > (t.wTimeout >> 2) { if currentTime.Sub(t.wLastDeadline) > (t.wTimeout >> 2) {
if err = t.conn.SetWriteDeadline(currentTime.Add(t.wTimeout)); err != nil { if err = t.conn.SetWriteDeadline(currentTime.Add(t.wTimeout)); err != nil {
return 0, errors.WithStack(err) return 0, perrors.WithStack(err)
} }
t.wLastDeadline = currentTime t.wLastDeadline = currentTime
} }
...@@ -286,7 +286,7 @@ func (t *gettyTCPConn) Write(pkg interface{}) (int, error) { ...@@ -286,7 +286,7 @@ func (t *gettyTCPConn) Write(pkg interface{}) (int, error) {
atomic.AddUint32(&t.writeBytes, (uint32)(len(p))) atomic.AddUint32(&t.writeBytes, (uint32)(len(p)))
} }
log.Debug("now:%s, length:%d, err:%s", currentTime, length, err) log.Debug("now:%s, length:%d, err:%s", currentTime, length, err)
return length, errors.WithStack(err) return length, perrors.WithStack(err)
//return length, err //return length, err
} }
...@@ -333,7 +333,7 @@ func setUDPSocketOptions(conn *net.UDPConn) error { ...@@ -333,7 +333,7 @@ func setUDPSocketOptions(conn *net.UDPConn) error {
err6 := ipv6.NewPacketConn(conn).SetControlMessage(ipv6.FlagDst|ipv6.FlagInterface, true) err6 := ipv6.NewPacketConn(conn).SetControlMessage(ipv6.FlagDst|ipv6.FlagInterface, true)
err4 := ipv4.NewPacketConn(conn).SetControlMessage(ipv4.FlagDst|ipv4.FlagInterface, true) err4 := ipv4.NewPacketConn(conn).SetControlMessage(ipv4.FlagDst|ipv4.FlagInterface, true)
if err6 != nil && err4 != nil { if err6 != nil && err4 != nil {
return errors.WithStack(err4) return perrors.WithStack(err4)
} }
return nil return nil
} }
...@@ -393,7 +393,7 @@ func (u *gettyUDPConn) read(p []byte) (int, *net.UDPAddr, error) { ...@@ -393,7 +393,7 @@ func (u *gettyUDPConn) read(p []byte) (int, *net.UDPAddr, error) {
currentTime = time.Now() currentTime = time.Now()
if currentTime.Sub(u.rLastDeadline) > (u.rTimeout >> 2) { if currentTime.Sub(u.rLastDeadline) > (u.rTimeout >> 2) {
if err = u.conn.SetReadDeadline(currentTime.Add(u.rTimeout)); err != nil { if err = u.conn.SetReadDeadline(currentTime.Add(u.rTimeout)); err != nil {
return 0, nil, errors.WithStack(err) return 0, nil, perrors.WithStack(err)
} }
u.rLastDeadline = currentTime u.rLastDeadline = currentTime
} }
...@@ -406,7 +406,7 @@ func (u *gettyUDPConn) read(p []byte) (int, *net.UDPAddr, error) { ...@@ -406,7 +406,7 @@ func (u *gettyUDPConn) read(p []byte) (int, *net.UDPAddr, error) {
} }
//return length, addr, err //return length, addr, err
return length, addr, errors.WithStack(err) return length, addr, perrors.WithStack(err)
} }
// write udp packet, @ctx should be of type UDPContext // write udp packet, @ctx should be of type UDPContext
...@@ -422,10 +422,10 @@ func (u *gettyUDPConn) Write(udpCtx interface{}) (int, error) { ...@@ -422,10 +422,10 @@ func (u *gettyUDPConn) Write(udpCtx interface{}) (int, error) {
) )
if ctx, ok = udpCtx.(UDPContext); !ok { if ctx, ok = udpCtx.(UDPContext); !ok {
return 0, errors.Errorf("illegal @udpCtx{%s} type, @udpCtx type:%T", udpCtx, udpCtx) return 0, perrors.Errorf("illegal @udpCtx{%s} type, @udpCtx type:%T", udpCtx, udpCtx)
} }
if buf, ok = ctx.Pkg.([]byte); !ok { if buf, ok = ctx.Pkg.([]byte); !ok {
return 0, errors.Errorf("illegal @udpCtx.Pkg{%#v} type", udpCtx) return 0, perrors.Errorf("illegal @udpCtx.Pkg{%#v} type", udpCtx)
} }
if u.ss.EndPoint().EndPointType() == UDP_ENDPOINT { if u.ss.EndPoint().EndPointType() == UDP_ENDPOINT {
peerAddr = ctx.PeerAddr peerAddr = ctx.PeerAddr
...@@ -441,7 +441,7 @@ func (u *gettyUDPConn) Write(udpCtx interface{}) (int, error) { ...@@ -441,7 +441,7 @@ func (u *gettyUDPConn) Write(udpCtx interface{}) (int, error) {
currentTime = time.Now() currentTime = time.Now()
if currentTime.Sub(u.wLastDeadline) > (u.wTimeout >> 2) { if currentTime.Sub(u.wLastDeadline) > (u.wTimeout >> 2) {
if err = u.conn.SetWriteDeadline(currentTime.Add(u.wTimeout)); err != nil { if err = u.conn.SetWriteDeadline(currentTime.Add(u.wTimeout)); err != nil {
return 0, errors.WithStack(err) return 0, perrors.WithStack(err)
} }
u.wLastDeadline = currentTime u.wLastDeadline = currentTime
} }
...@@ -452,7 +452,7 @@ func (u *gettyUDPConn) Write(udpCtx interface{}) (int, error) { ...@@ -452,7 +452,7 @@ func (u *gettyUDPConn) Write(udpCtx interface{}) (int, error) {
} }
log.Debug("WriteMsgUDP(peerAddr:%s) = {length:%d, error:%s}", peerAddr, length, err) log.Debug("WriteMsgUDP(peerAddr:%s) = {length:%d, error:%s}", peerAddr, length, err)
return length, errors.WithStack(err) return length, perrors.WithStack(err)
//return length, err //return length, err
} }
...@@ -529,7 +529,7 @@ func (w *gettyWSConn) handlePing(message string) error { ...@@ -529,7 +529,7 @@ func (w *gettyWSConn) handlePing(message string) error {
w.UpdateActive() w.UpdateActive()
} }
return errors.WithStack(err) return perrors.WithStack(err)
} }
func (w *gettyWSConn) handlePong(string) error { func (w *gettyWSConn) handlePong(string) error {
...@@ -550,7 +550,7 @@ func (w *gettyWSConn) read() ([]byte, error) { ...@@ -550,7 +550,7 @@ func (w *gettyWSConn) read() ([]byte, error) {
} }
} }
return b, errors.WithStack(e) return b, perrors.WithStack(e)
//return b, e //return b, e
} }
...@@ -567,7 +567,7 @@ func (w *gettyWSConn) updateWriteDeadline() error { ...@@ -567,7 +567,7 @@ func (w *gettyWSConn) updateWriteDeadline() error {
currentTime = time.Now() currentTime = time.Now()
if currentTime.Sub(w.wLastDeadline) > (w.wTimeout >> 2) { if currentTime.Sub(w.wLastDeadline) > (w.wTimeout >> 2) {
if err = w.conn.SetWriteDeadline(currentTime.Add(w.wTimeout)); err != nil { if err = w.conn.SetWriteDeadline(currentTime.Add(w.wTimeout)); err != nil {
return errors.WithStack(err) return perrors.WithStack(err)
} }
w.wLastDeadline = currentTime w.wLastDeadline = currentTime
} }
...@@ -585,25 +585,25 @@ func (w *gettyWSConn) Write(pkg interface{}) (int, error) { ...@@ -585,25 +585,25 @@ func (w *gettyWSConn) Write(pkg interface{}) (int, error) {
) )
if p, ok = pkg.([]byte); !ok { if p, ok = pkg.([]byte); !ok {
return 0, errors.Errorf("illegal @pkg{%#v} type", pkg) return 0, perrors.Errorf("illegal @pkg{%#v} type", pkg)
} }
w.updateWriteDeadline() w.updateWriteDeadline()
if err = w.conn.WriteMessage(websocket.BinaryMessage, p); err == nil { if err = w.conn.WriteMessage(websocket.BinaryMessage, p); err == nil {
atomic.AddUint32(&w.writeBytes, (uint32)(len(p))) atomic.AddUint32(&w.writeBytes, (uint32)(len(p)))
} }
return len(p), errors.WithStack(err) return len(p), perrors.WithStack(err)
//return len(p), err //return len(p), err
} }
func (w *gettyWSConn) writePing() error { func (w *gettyWSConn) writePing() error {
w.updateWriteDeadline() w.updateWriteDeadline()
return errors.WithStack(w.conn.WriteMessage(websocket.PingMessage, []byte{})) return perrors.WithStack(w.conn.WriteMessage(websocket.PingMessage, []byte{}))
} }
func (w *gettyWSConn) writePong(message []byte) error { func (w *gettyWSConn) writePong(message []byte) error {
w.updateWriteDeadline() w.updateWriteDeadline()
return errors.WithStack(w.conn.WriteMessage(websocket.PongMessage, message)) return perrors.WithStack(w.conn.WriteMessage(websocket.PongMessage, message))
} }
// close websocket connection // close websocket connection
......
...@@ -119,9 +119,9 @@ type Connection interface { ...@@ -119,9 +119,9 @@ type Connection interface {
///////////////////////////////////////// /////////////////////////////////////////
var ( var (
ErrSessionClosed = errors.New("session Already Closed") ErrSessionClosed = perrors.New("session Already Closed")
ErrSessionBlocked = errors.New("session Full Blocked") ErrSessionBlocked = perrors.New("session Full Blocked")
ErrNullPeerAddr = errors.New("peer address is nil") ErrNullPeerAddr = perrors.New("peer address is nil")
) )
type Session interface { type Session interface {
......
...@@ -16,6 +16,9 @@ require ( ...@@ -16,6 +16,9 @@ require (
github.com/mattn/go-colorable v0.1.1 // indirect github.com/mattn/go-colorable v0.1.1 // indirect
github.com/pkg/errors v0.8.1 github.com/pkg/errors v0.8.1
github.com/stretchr/testify v1.3.0 // indirect github.com/stretchr/testify v1.3.0 // indirect
go.uber.org/atomic v1.4.0 // indirect
go.uber.org/multierr v1.1.0 // indirect
go.uber.org/zap v1.10.0 // indirect
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53 golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce // indirect gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce // indirect
......
...@@ -40,6 +40,12 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN ...@@ -40,6 +40,12 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53 h1:kcXqo9vE6fsZY5X5Rd7R1l7fTgnWaDCVmln65REefiE= golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53 h1:kcXqo9vE6fsZY5X5Rd7R1l7fTgnWaDCVmln65REefiE=
......
...@@ -26,11 +26,11 @@ import ( ...@@ -26,11 +26,11 @@ import (
"github.com/AlexStocks/goext/time" "github.com/AlexStocks/goext/time"
log "github.com/dubbogo/log4go" log "github.com/dubbogo/log4go"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"github.com/pkg/errors" perrors "github.com/pkg/errors"
) )
var ( var (
errSelfConnect = errors.New("connect self!") errSelfConnect = perrors.New("connect self!")
serverFastFailTimeout = gxtime.TimeSecondDuration(1) serverFastFailTimeout = gxtime.TimeSecondDuration(1)
) )
...@@ -157,7 +157,7 @@ func (s *server) listenTCP() error { ...@@ -157,7 +157,7 @@ func (s *server) listenTCP() error {
streamListener, err = net.Listen("tcp", s.addr) streamListener, err = net.Listen("tcp", s.addr)
if err != nil { if err != nil {
return errors.Wrapf(err, "net.Listen(tcp, addr:%s))", s.addr) return perrors.Wrapf(err, "net.Listen(tcp, addr:%s))", s.addr)
} }
s.streamListener = streamListener s.streamListener = streamListener
...@@ -174,14 +174,14 @@ func (s *server) listenUDP() error { ...@@ -174,14 +174,14 @@ func (s *server) listenUDP() error {
localAddr, err = net.ResolveUDPAddr("udp", s.addr) localAddr, err = net.ResolveUDPAddr("udp", s.addr)
if err != nil { if err != nil {
return errors.Wrapf(err, "net.ResolveUDPAddr(udp, addr:%s)", s.addr) return perrors.Wrapf(err, "net.ResolveUDPAddr(udp, addr:%s)", s.addr)
} }
pktListener, err = net.ListenUDP("udp", localAddr) pktListener, err = net.ListenUDP("udp", localAddr)
if err != nil { if err != nil {
return errors.Wrapf(err, "net.ListenUDP((udp, localAddr:%#v)", localAddr) return perrors.Wrapf(err, "net.ListenUDP((udp, localAddr:%#v)", localAddr)
} }
// if err = setUDPSocketOptions(pktListener); err != nil { // if err = setUDPSocketOptions(pktListener); err != nil {
// return errors.Wrapf(err, "setUDPSocketOptions(pktListener:%#v)", pktListener) // return perrors.Wrapf(err, "setUDPSocketOptions(pktListener:%#v)", pktListener)
// } // }
s.pktListener = pktListener s.pktListener = pktListener
...@@ -193,9 +193,9 @@ func (s *server) listenUDP() error { ...@@ -193,9 +193,9 @@ func (s *server) listenUDP() error {
func (s *server) listen() error { func (s *server) listen() error {
switch s.endPointType { switch s.endPointType {
case TCP_SERVER, WS_SERVER, WSS_SERVER: case TCP_SERVER, WS_SERVER, WSS_SERVER:
return errors.WithStack(s.listenTCP()) return perrors.WithStack(s.listenTCP())
case UDP_ENDPOINT: case UDP_ENDPOINT:
return errors.WithStack(s.listenUDP()) return perrors.WithStack(s.listenUDP())
} }
return nil return nil
...@@ -204,7 +204,7 @@ func (s *server) listen() error { ...@@ -204,7 +204,7 @@ func (s *server) listen() error {
func (s *server) accept(newSession NewSessionCallback) (Session, error) { func (s *server) accept(newSession NewSessionCallback) (Session, error) {
conn, err := s.streamListener.Accept() conn, err := s.streamListener.Accept()
if err != nil { if err != nil {
return nil, errors.WithStack(err) return nil, perrors.WithStack(err)
} }
if gxnet.IsSameAddr(conn.RemoteAddr(), conn.LocalAddr()) { if gxnet.IsSameAddr(conn.RemoteAddr(), conn.LocalAddr()) {
log.Warn("conn.localAddr{%s} == conn.RemoteAddr", conn.LocalAddr().String(), conn.RemoteAddr().String()) log.Warn("conn.localAddr{%s} == conn.RemoteAddr", conn.LocalAddr().String(), conn.RemoteAddr().String())
...@@ -215,7 +215,7 @@ func (s *server) accept(newSession NewSessionCallback) (Session, error) { ...@@ -215,7 +215,7 @@ func (s *server) accept(newSession NewSessionCallback) (Session, error) {
err = newSession(ss) err = newSession(ss)
if err != nil { if err != nil {
conn.Close() conn.Close()
return nil, errors.WithStack(err) return nil, perrors.WithStack(err)
} }
return ss, nil return ss, nil
......
...@@ -22,7 +22,7 @@ import ( ...@@ -22,7 +22,7 @@ import (
import ( import (
log "github.com/dubbogo/log4go" log "github.com/dubbogo/log4go"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"github.com/pkg/errors" perrors "github.com/pkg/errors"
) )
import ( import (
...@@ -337,7 +337,7 @@ func (s *session) WritePkg(pkg interface{}, timeout time.Duration) error { ...@@ -337,7 +337,7 @@ func (s *session) WritePkg(pkg interface{}, timeout time.Duration) error {
s.incWritePkgNum() s.incWritePkgNum()
// gxlog.CError("after incWritePkgNum, ss:%s", s.Stat()) // gxlog.CError("after incWritePkgNum, ss:%s", s.Stat())
} }
return errors.WithStack(err) return perrors.WithStack(err)
} }
select { select {
case s.wQ <- pkg: case s.wQ <- pkg:
...@@ -359,7 +359,7 @@ func (s *session) WriteBytes(pkg []byte) error { ...@@ -359,7 +359,7 @@ func (s *session) WriteBytes(pkg []byte) error {
// s.conn.SetWriteTimeout(time.Now().Add(s.wTimeout)) // s.conn.SetWriteTimeout(time.Now().Add(s.wTimeout))
if _, err := s.Connection.Write(pkg); err != nil { if _, err := s.Connection.Write(pkg); err != nil {
return errors.Wrapf(err, "s.Connection.Write(pkg len:%d)", len(pkg)) return perrors.Wrapf(err, "s.Connection.Write(pkg len:%d)", len(pkg))
} }
s.incWritePkgNum() s.incWritePkgNum()
...@@ -400,7 +400,7 @@ func (s *session) WriteBytesArray(pkgs ...[]byte) error { ...@@ -400,7 +400,7 @@ func (s *session) WriteBytesArray(pkgs ...[]byte) error {
// return s.Connection.Write(arr) // return s.Connection.Write(arr)
if err = s.WriteBytes(arr); err != nil { if err = s.WriteBytes(arr); err != nil {
return errors.WithStack(err) return perrors.WithStack(err)
} }
num := len(pkgs) - 1 num := len(pkgs) - 1
...@@ -603,7 +603,7 @@ func (s *session) handleTCPPackage() error { ...@@ -603,7 +603,7 @@ func (s *session) handleTCPPackage() error {
// s.conn.SetReadTimeout(time.Now().Add(s.rTimeout)) // s.conn.SetReadTimeout(time.Now().Add(s.rTimeout))
bufLen, err = conn.read(buf) bufLen, err = conn.read(buf)
if err != nil { if err != nil {
if netError, ok = errors.Cause(err).(net.Error); ok && netError.Timeout() { if netError, ok = perrors.Cause(err).(net.Error); ok && netError.Timeout() {
break break
} }
log.Error("%s, [session.conn.read] = error:%+v", s.sessionToken(), err) log.Error("%s, [session.conn.read] = error:%+v", s.sessionToken(), err)
...@@ -627,7 +627,7 @@ func (s *session) handleTCPPackage() error { ...@@ -627,7 +627,7 @@ func (s *session) handleTCPPackage() error {
// pkg, err = s.pkgHandler.Read(s, pktBuf) // pkg, err = s.pkgHandler.Read(s, pktBuf)
pkg, pkgLen, err = s.reader.Read(s, pktBuf.Bytes()) pkg, pkgLen, err = s.reader.Read(s, pktBuf.Bytes())
if err == nil && s.maxMsgLen > 0 && pkgLen > int(s.maxMsgLen) { if err == nil && s.maxMsgLen > 0 && pkgLen > int(s.maxMsgLen) {
err = errors.Errorf("pkgLen %d > session max message len %d", pkgLen, s.maxMsgLen) err = perrors.Errorf("pkgLen %d > session max message len %d", pkgLen, s.maxMsgLen)
} }
if err != nil { if err != nil {
log.Warn("%s, [session.handleTCPPackage] = len{%d}, error:%+v", log.Warn("%s, [session.handleTCPPackage] = len{%d}, error:%+v",
...@@ -649,7 +649,7 @@ func (s *session) handleTCPPackage() error { ...@@ -649,7 +649,7 @@ func (s *session) handleTCPPackage() error {
} }
} }
return errors.WithStack(err) return perrors.WithStack(err)
} }
// get package from udp packet // get package from udp packet
...@@ -679,13 +679,13 @@ func (s *session) handleUDPPackage() error { ...@@ -679,13 +679,13 @@ func (s *session) handleUDPPackage() error {
bufLen, addr, err = conn.read(buf) bufLen, addr, err = conn.read(buf)
log.Debug("conn.read() = bufLen:%d, addr:%#v, err:%+v", bufLen, addr, err) log.Debug("conn.read() = bufLen:%d, addr:%#v, err:%+v", bufLen, addr, err)
if netError, ok = errors.Cause(err).(net.Error); ok && netError.Timeout() { if netError, ok = perrors.Cause(err).(net.Error); ok && netError.Timeout() {
continue continue
} }
if err != nil { if err != nil {
log.Error("%s, [session.handleUDPPackage] = len{%d}, error{%+s}", log.Error("%s, [session.handleUDPPackage] = len{%d}, error{%+s}",
s.sessionToken(), bufLen, err) s.sessionToken(), bufLen, err)
err = errors.Wrapf(err, "conn.read()") err = perrors.Wrapf(err, "conn.read()")
break break
} }
...@@ -702,7 +702,7 @@ func (s *session) handleUDPPackage() error { ...@@ -702,7 +702,7 @@ func (s *session) handleUDPPackage() error {
pkg, pkgLen, err = s.reader.Read(s, buf[:bufLen]) pkg, pkgLen, err = s.reader.Read(s, buf[:bufLen])
log.Debug("s.reader.Read() = pkg:%#v, pkgLen:%d, err:%+v", pkg, pkgLen, err) log.Debug("s.reader.Read() = pkg:%#v, pkgLen:%d, err:%+v", pkg, pkgLen, err)
if err == nil && s.maxMsgLen > 0 && bufLen > int(s.maxMsgLen) { if err == nil && s.maxMsgLen > 0 && bufLen > int(s.maxMsgLen) {
err = errors.Errorf("Message Too Long, bufLen %d, session max message len %d", bufLen, s.maxMsgLen) err = perrors.Errorf("Message Too Long, bufLen %d, session max message len %d", bufLen, s.maxMsgLen)
} }
if err != nil { if err != nil {
log.Warn("%s, [session.handleUDPPackage] = len{%d}, error:%+v", log.Warn("%s, [session.handleUDPPackage] = len{%d}, error:%+v",
...@@ -718,7 +718,7 @@ func (s *session) handleUDPPackage() error { ...@@ -718,7 +718,7 @@ func (s *session) handleUDPPackage() error {
s.rQ <- UDPContext{Pkg: pkg, PeerAddr: addr} s.rQ <- UDPContext{Pkg: pkg, PeerAddr: addr}
} }
return errors.WithStack(err) return perrors.WithStack(err)
} }
// get package from websocket stream // get package from websocket stream
...@@ -739,20 +739,20 @@ func (s *session) handleWSPackage() error { ...@@ -739,20 +739,20 @@ func (s *session) handleWSPackage() error {
break break
} }
pkg, err = conn.read() pkg, err = conn.read()
if netError, ok = errors.Cause(err).(net.Error); ok && netError.Timeout() { if netError, ok = perrors.Cause(err).(net.Error); ok && netError.Timeout() {
continue continue
} }
if err != nil { if err != nil {
log.Warn("%s, [session.handleWSPackage] = error{%+s}", log.Warn("%s, [session.handleWSPackage] = error{%+s}",
s.sessionToken(), err) s.sessionToken(), err)
// s.errFlag = true // s.errFlag = true
return errors.WithStack(err) return perrors.WithStack(err)
} }
s.UpdateActive() s.UpdateActive()
if s.reader != nil { if s.reader != nil {
unmarshalPkg, length, err = s.reader.Read(s, pkg) unmarshalPkg, length, err = s.reader.Read(s, pkg)
if err == nil && s.maxMsgLen > 0 && length > int(s.maxMsgLen) { if err == nil && s.maxMsgLen > 0 && length > int(s.maxMsgLen) {
err = errors.Errorf("Message Too Long, length %d, session max message len %d", length, s.maxMsgLen) err = perrors.Errorf("Message Too Long, length %d, session max message len %d", length, s.maxMsgLen)
} }
if err != nil { if err != nil {
log.Warn("%s, [session.handleWSPackage] = len{%d}, error:%+v", log.Warn("%s, [session.handleWSPackage] = len{%d}, error:%+v",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment