Query the Linux device for its MAC address.
authorEtienne Dechamps <etienne@edechamps.fr>
Sat, 4 Oct 2014 15:33:33 +0000 (16:33 +0100)
committerGuus Sliepen <guus@tinc-vpn.org>
Wed, 3 Dec 2014 13:49:09 +0000 (14:49 +0100)
commit790b107f668a886c3b335e68b9440ef5152a2844
tree9e56236d357f8460c991fa99e5e13df23acde283
parent9a366544c297d5c558800f9ffc301e2cb5a6a672
Query the Linux device for its MAC address.

On Linux, tinc doesn't know the MAC address of the TAP device until the
first read. This means that if no packets are sent through the
interface, tinc won't be able to figure out which MAC address to tag
incoming packets with. As a result, it is impossible to receive any
packet until at least one packet has been sent.

When IPv6 is disabled Linux does not spontanously send any packets
when the interface comes up. At first users wonder why the node is not
responding to ICMP pings, and then as soon as at least one packet is
sent through the interface, pings mysteriously start working, resulting
in user confusion.

This change fixes that problem by making sure tinc is aware of the
device's MAC address even before the first packet is sent.
src/linux/device.c