EtherGuard-VPN/device
Josh Bleecher Snyder b42e32047d device: call wg.Add outside the goroutine
One of the first rules of WaitGroups is that you call wg.Add
outside of a goroutine, not inside it. Fix this embarrassing mistake.

This prevents an extremely rare race condition (2 per 100,000 runs)
which could occur when attempting to start a new peer
concurrently with shutting down a device.

Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2021-01-07 14:49:44 +01:00
..
allowedips_rand_test.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
allowedips_test.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
allowedips.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
bind_test.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
constants.go replay: account for fqcodel reordering 2020-05-19 17:46:35 -06:00
cookie_test.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
cookie.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
device_test.go device: fix races from changing private_key 2021-01-07 14:49:44 +01:00
device.go device: add missing colon to error line 2021-01-07 14:49:44 +01:00
endpoint_test.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
indextable.go device: remove some unnecessary unsafe 2020-07-15 06:59:44 +10:00
ip.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
kdf_test.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
keypair.go device: fix races from changing private_key 2021-01-07 14:49:44 +01:00
logger.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
misc.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
mobilequirks.go device: format a few things 2020-11-06 18:01:27 +01:00
noise_test.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
noise-helpers.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
noise-protocol.go device: fix races from changing private_key 2021-01-07 14:49:44 +01:00
noise-types.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
peer_test.go device: avoid copying lock in tests 2020-12-08 14:25:10 -08:00
peer.go device: call wg.Add outside the goroutine 2021-01-07 14:49:44 +01:00
pools.go device: always name *Queue*Element variables elem 2021-01-07 14:49:44 +01:00
queueconstants_android.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
queueconstants_default.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
queueconstants_ios.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
receive.go device: remove QueueInboundElement leak with stopped peers 2021-01-07 14:49:44 +01:00
send.go device: call wg.Add outside the goroutine 2021-01-07 14:49:44 +01:00
sticky_default.go device: do not include sticky sockets on android 2020-06-07 01:50:20 -06:00
sticky_linux.go device: use RTMGRP_IPV4_ROUTE to specify multicast groups mask 2020-07-13 17:58:10 -06:00
timers.go device: fix data race in peer.timersActive 2021-01-07 14:49:44 +01:00
tun_test.go global: update header comments and modules 2020-05-02 02:08:26 -06:00
tun.go device: remove starting waitgroups 2021-01-07 14:49:44 +01:00
uapi.go device: simplify UAPI helper methods 2021-01-07 14:49:44 +01:00
version.go version: bump snapshot 2020-11-18 14:24:17 +01:00