stasatdaglabs 8a4ece1101
[NOD-1223] Reorganize project (#868)
* [NOD-1223] Move all network stuff into a new network package.

* [NOD-1223] Delete the unused package testutil.

* [NOD-1223] Move infrastructure stuff into a new instrastructure package.

* [NOD-1223] Move domain stuff into a new domain package.
2020-08-13 17:27:25 +03:00

32 lines
798 B
Go

package flowcontext
import (
"errors"
"sync/atomic"
"github.com/kaspanet/kaspad/network/netadapter/router"
"github.com/kaspanet/kaspad/network/protocol/protocolerrors"
)
// HandleError handles an error from a flow,
// It sends the error to errChan if isStopping == 0 and increments isStopping
//
// If this is ErrRouteClosed - ignores the error
// If this is ProtocolError - logs the error
// Otherwise - panics
func (*FlowContext) HandleError(err error, flowName string, isStopping *uint32, errChan chan<- error) {
if errors.Is(err, router.ErrRouteClosed) {
return
}
if protocolErr := &(protocolerrors.ProtocolError{}); !errors.As(err, &protocolErr) {
panic(err)
}
log.Errorf("error from %s: %+v", flowName, err)
if atomic.AddUint32(isStopping, 1) == 1 {
errChan <- err
}
}