conn: reconstruct v4 vs v6 receive function based on symtab

This is kind of gross but it's better than the alternatives.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld
2021-04-09 17:21:35 -06:00
parent d2fd0c0cc0
commit 54dbe2471f
4 changed files with 69 additions and 15 deletions

View File

@@ -69,14 +69,15 @@ func (peer *Peer) keepKeyFreshReceiving() {
* IPv4 and IPv6 (separately)
*/
func (device *Device) RoutineReceiveIncoming(recv conn.ReceiveFunc) {
recvName := recv.PrettyName()
defer func() {
device.log.Verbosef("Routine: receive incoming %p - stopped", recv)
device.log.Verbosef("Routine: receive incoming %s - stopped", recvName)
device.queue.decryption.wg.Done()
device.queue.handshake.wg.Done()
device.net.stopping.Done()
}()
device.log.Verbosef("Routine: receive incoming %p - started", recv)
device.log.Verbosef("Routine: receive incoming %s - started", recvName)
// receive datagrams until conn is closed