minor changes

This commit is contained in:
soypat
2025-06-07 09:36:10 -03:00
parent c635bde512
commit c76fde4677
2 changed files with 13 additions and 8 deletions
+11 -6
View File
@@ -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
} }
} }
} }
+2 -2
View File
@@ -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) {