mirror of
https://github.com/soypat/lneto.git
synced 2026-08-21 15:09:05 +00:00
minor changes
This commit is contained in:
+11
-6
@@ -28,6 +28,7 @@ type StackNode interface {
|
|||||||
Demux(carrierData []byte, frameOffset int) error
|
Demux(carrierData []byte, frameOffset int) error
|
||||||
LocalPort() uint16
|
LocalPort() uint16
|
||||||
Protocol() uint64
|
Protocol() uint64
|
||||||
|
// Connect
|
||||||
ConnectionID() *uint64
|
ConnectionID() *uint64
|
||||||
// SetFlagPending(flagPending func(numPendingEncapsulations int))
|
// SetFlagPending(flagPending func(numPendingEncapsulations int))
|
||||||
}
|
}
|
||||||
@@ -50,15 +51,19 @@ var (
|
|||||||
_ = net.ErrClosed
|
_ = net.ErrClosed
|
||||||
)
|
)
|
||||||
|
|
||||||
func handleNodeError(nodes *[]node, nodeIdx int, err error) {
|
func handleNodeError(nodesPtr *[]node, nodeIdx int, err error) {
|
||||||
|
if nodeIdx >= len(*nodesPtr) {
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
badConnID := (*nodes)[nodeIdx].connID != nil && *(*nodes)[nodeIdx].connID != (*nodes)[nodeIdx].currConnID
|
nodes := *nodesPtr
|
||||||
if err == net.ErrClosed || (*nodes)[nodeIdx].lastErrs[0] == err || (*nodes)[nodeIdx].lastErrs[1] == err || badConnID {
|
badConnID := nodes[nodeIdx].connID != nil && *nodes[nodeIdx].connID != nodes[nodeIdx].currConnID
|
||||||
*nodes = slices.Delete(*nodes, nodeIdx, nodeIdx+1)
|
if err == net.ErrClosed || nodes[nodeIdx].lastErrs[0] == err || nodes[nodeIdx].lastErrs[1] == err || badConnID {
|
||||||
|
*nodesPtr = slices.Delete(nodes, nodeIdx, nodeIdx+1)
|
||||||
} else {
|
} else {
|
||||||
// Advance Queue of errors
|
// Advance Queue of errors
|
||||||
(*nodes)[nodeIdx].lastErrs[1] = (*nodes)[nodeIdx].lastErrs[0]
|
nodes[nodeIdx].lastErrs[1] = nodes[nodeIdx].lastErrs[0]
|
||||||
(*nodes)[nodeIdx].lastErrs[0] = err
|
nodes[nodeIdx].lastErrs[0] = err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type StackPort struct {
|
type StackPort struct {
|
||||||
|
connID uint64
|
||||||
|
protocol uint64
|
||||||
handlers []node
|
handlers []node
|
||||||
dstPortOff int
|
dstPortOff int
|
||||||
protocol uint64
|
|
||||||
connID uint64
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ps *StackPort) Reset(protocol uint64, dstPortOffset int) {
|
func (ps *StackPort) Reset(protocol uint64, dstPortOffset int) {
|
||||||
|
|||||||
Reference in New Issue
Block a user