]> git.ipfire.org Git - thirdparty/wireguard-go.git/commit
tun: NetlinkListener: don't send EventDown before sending EventUp
authorAvery Pennarun <apenwarr@tailscale.com>
Wed, 6 Nov 2019 08:28:02 +0000 (00:28 -0800)
committerJason A. Donenfeld <Jason@zx2c4.com>
Sat, 2 May 2020 07:46:42 +0000 (01:46 -0600)
commitc76b8184663e4b80ff8c26aafe9ec0ec91ff9116
tree67c435580a1cc71d0bea88cc82f8e6658e5714ea
parentde374bfb44945e241d93ca821f35f6e3078e506b
tun: NetlinkListener: don't send EventDown before sending EventUp

This works around a startup race condition when competing with
HackListener, which is trying to do the same job. If HackListener
detects that the tundev is running while there is still an event in the
netlink queue that says it isn't running, then the device receives a
string of events like
EventUp (HackListener)
EventDown (NetlinkListener)
EventUp (NetlinkListener)
Unfortunately, after the first EventDown, the device stops itself,
thinking incorrectly that the administrator has downed its tundev.

The device is ignoring the initial EventDown anyway, so just don't emit
it.

Signed-off-by: Avery Pennarun <apenwarr@tailscale.com>
tun/tun_linux.go