5
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2024-12-23 13:25:39 +00:00

correctly call peer.sendPacketsFrom in the switch

This commit is contained in:
Arceliar 2019-08-24 16:04:05 -05:00
parent 8c7e9ec7c0
commit 209d2ffea5
2 changed files with 5 additions and 6 deletions

View File

@ -224,9 +224,9 @@ func (p *peer) _handlePacket(packet []byte) {
}
switch pType {
case wire_Traffic:
p._handleTraffic(packet, pTypeLen)
p._handleTraffic(packet)
case wire_ProtocolTraffic:
p._handleTraffic(packet, pTypeLen)
p._handleTraffic(packet)
case wire_LinkProtocolTraffic:
p._handleLinkTraffic(packet)
default:
@ -236,7 +236,7 @@ func (p *peer) _handlePacket(packet []byte) {
// Called to handle traffic or protocolTraffic packets.
// In either case, this reads from the coords of the packet header, does a switch lookup, and forwards to the next node.
func (p *peer) _handleTraffic(packet []byte, pTypeLen int) {
func (p *peer) _handleTraffic(packet []byte) {
table := p.core.switchTable.getTable()
if _, isIn := table.elems[p.port]; !isIn && p.port != 0 {
// Drop traffic if the peer isn't in the switch

View File

@ -708,7 +708,7 @@ func (t *switchTable) _handleIn(packet []byte, idle map[switchPort]time.Time) bo
if best != nil {
// Send to the best idle next hop
delete(idle, best.port)
best.sendPacketsFrom(nil, [][]byte{packet})
best.sendPacketsFrom(t, [][]byte{packet})
return true
}
// Didn't find anyone idle to send it to
@ -822,8 +822,7 @@ func (t *switchTable) _handleIdle(port switchPort) bool {
}
}
if len(packets) > 0 {
// TODO rewrite if/when the switch becomes an actor
to.sendPacketsFrom(nil, packets)
to.sendPacketsFrom(t, packets)
return true
}
return false