diff --git a/src/yggdrasil/switch.go b/src/yggdrasil/switch.go index 4b3c2118..e5db8ca9 100644 --- a/src/yggdrasil/switch.go +++ b/src/yggdrasil/switch.go @@ -624,8 +624,10 @@ func (t *switchTable) handleIdle(port switchPort, stacks map[string][][]byte) bo var bestSize int for streamID, packets := range stacks { // Filter over the streams that this node is closer to + // Keep the one with the smallest queue packet := packets[len(packets)-1] - if (bestSize == 0 || len(packets) < bestSize) && t.portIsCloser(packet, port) { + coords := switch_getPacketCoords(packet) + if (bestSize == 0 || len(packets) < bestSize) && t.portIsCloser(coords, port) { best = streamID bestSize = len(packets) }