diff --git a/net/lux_router.go b/net/lux_router.go index 032abe5..9fdef55 100644 --- a/net/lux_router.go +++ b/net/lux_router.go @@ -209,15 +209,17 @@ func channelReceiver(r *LuxRouter, channel *LuxChannel) { var dgram LuxDatagram var err error - select { - case <-channel.control: - return - default: - dgram, err = channel.Recv() - if err == nil { - dgramChan <- dgram - } else { + for { + select { + case <-channel.control: return + default: + dgram, err = channel.Recv() + if err == nil { + dgramChan <- dgram + } else { + return + } } } } @@ -340,6 +342,7 @@ func (r *LuxRouter) Recv() (LuxPacket, error) { } // packet arrived to right route and successfully decrypted + packet.ChannelType = dgram.Channel.Type return packet, nil } else { // first time seeing peer - bruteforce keys from keystore