]>
git.ipfire.org Git - thirdparty/wireguard-go.git/log 
Tobias Klauser  [Thu, 23 Sep 2021 10:07:19 +0000  (12:07 +0200)]  
tun: make operateonfd.go build tags more specificSigned-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Tobias Klauser  [Thu, 23 Sep 2021 10:05:13 +0000  (12:05 +0200)]  
tun: avoid leaking sock fd in CreateTUN error casesSigned-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Sun, 5 Sep 2021 14:00:43 +0000  (16:00 +0200)]  
global: add new go 1.17 build commentsSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 5 Aug 2021 12:56:48 +0000  (14:56 +0200)]  
memmod: register exception handler tablesSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Wed, 28 Jul 2021 23:27:40 +0000  (01:27  +0200)]  
memmod: fix protected delayed load the right waySigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Wed, 28 Jul 2021 23:01:46 +0000  (01:01  +0200)]  
memmod: disable protected delayed load for nowSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Wed, 23 Jun 2021 23:19:29 +0000  (01:19  +0200)]  
ipc: allow admins but require high integrity labelSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 4 Jun 2021 14:33:28 +0000  (16:33 +0200)]  
device: zero out allowedip node pointers when removingSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 3 Jun 2021 16:22:50 +0000  (18:22 +0200)]  
device: limit allowedip fuzzer a to 4 times throughSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 3 Jun 2021 14:12:29 +0000  (16:12 +0200)]  
device: simplify allowedips lookup signatureSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 3 Jun 2021 13:40:09 +0000  (15:40 +0200)]  
device: remove nodes by peer in O(1) instead of O(n)Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 3 Jun 2021 12:50:28 +0000  (14:50 +0200)]  
device: remove recursion from insertion and connect parent pointersSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 3 Jun 2021 11:51:03 +0000  (13:51 +0200)]  
device: reduce size of trie structSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Josh Bleecher Snyder  [Sat, 3 Apr 2021 17:15:59 +0000  (10:15 -0700)]  
go.mod: bump golang.org/x/sys againSigned-off-by: Josh Bleecher Snyder <josharian@gmail.com> 
Jason A. Donenfeld  [Fri, 21 May 2021 22:57:42 +0000  (00:57  +0200)]  
device: allow reducing queue constants on iOSRequested-by: Josh Bleecher Snyder <josh@tailscale.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 20 May 2021 16:26:01 +0000  (18:26 +0200)]  
tun: linux: account for interface removal from outsideSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 20 May 2021 16:09:55 +0000  (18:09 +0200)]  
conn: linux: protect read fdsFixes: 10533c3 ("all: make conn.Bind.Open return a slice of receive functions") Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 20 May 2021 15:56:36 +0000  (17:56 +0200)]  
rwcancel: use ordinary os.ErrClosed instead of custom errorSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 20 May 2021 15:42:34 +0000  (17:42 +0200)]  
rwcancel: use poll instead of selectSuggested-by: Lennart Poettering <lennart@poettering.net> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 13 May 2021 23:07:55 +0000  (01:07  +0200)]  
device: optimize Peer.String even moreSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Josh Bleecher Snyder  [Thu, 13 May 2021 22:30:18 +0000  (15:30 -0700)]  
device: optimize Peer.StringSigned-off-by: Josh Bleecher Snyder <josh@tailscale.com> 
Jason A. Donenfeld  [Tue, 11 May 2021 14:47:17 +0000  (16:47 +0200)]  
conn: windows: set count=0 on retryReported-by: Sascha Dierberg <dierberg@dresearch-fe.de> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Mon, 10 May 2021 20:23:32 +0000  (22:23 +0200)]  
main: replace crlf on windows in fmt testSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 7 May 2021 10:56:10 +0000  (12:56 +0200)]  
main: check that code is formatted in unit testSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 7 May 2021 10:21:27 +0000  (12:21 +0200)]  
tun: formatSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 7 May 2021 10:21:21 +0000  (12:21 +0200)]  
device: add ID to repeated routinesSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 7 May 2021 10:17:41 +0000  (12:17 +0200)]  
device: remove unusual ... in messagesSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 7 May 2021 07:39:06 +0000  (09:39 +0200)]  
device: avoid verbose log line during ordinary shutdown sequenceSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 7 May 2021 07:26:24 +0000  (09:26 +0200)]  
tun: windows: set event before waiting
In 
097af6e  ("tun: windows: protect reads from closing") we made sure no
functions are running when End() is called, to avoid a UaF. But we still
need to kick that event somehow, so that Read() is allowed to exit, in
order to release the lock. So this commit calls SetEvent, while moving
the closing boolean to be atomic so it can be modified without locks,
and then moves to a WaitGroup for the RCU-like pattern.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 7 May 2021 07:17:35 +0000  (09:17 +0200)]  
tun: windows: rearrange struct to avoid alignment trap on 32bitSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 7 May 2021 07:10:41 +0000  (09:10 +0200)]  
tun: windows: check alignment in unit testSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Josh Bleecher Snyder  [Tue, 27 Apr 2021 17:15:15 +0000  (10:15 -0700)]  
device: log all errors received by RoutineReceiveIncomingSigned-off-by: Josh Bleecher Snyder <josharian@gmail.com> 
Jason A. Donenfeld  [Thu, 6 May 2021 09:03:04 +0000  (11:03 +0200)]  
tun/netstack: update go mod and remove GSO argumentReported-by: John Xiong <xiaoyang1258@yeah.net> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Wed, 5 May 2021 09:42:45 +0000  (11:42 +0200)]  
tun: windows: send MTU update when forced MTU changesSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Tue, 27 Apr 2021 02:22:45 +0000  (22:22 -0400)]  
tun: windows: protect reads from closingReported-by: Joshua Sjoding <joshua.sjoding@scjalliance.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Tue, 27 Apr 2021 02:07:03 +0000  (22:07 -0400)]  
conn: windows: do not error out when receiving UDP jumbogramReported-by: Sascha Dierberg <sascha.dierberg@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Sat, 24 Apr 2021 17:07:27 +0000  (13:07 -0400)]  
version: bump snapshotSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Mon, 19 Apr 2021 21:10:23 +0000  (15:10 -0600)]  
tun: freebsd: avoid OOB writesSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Mon, 19 Apr 2021 21:01:36 +0000  (15:01 -0600)]  
tun: freebsd: become controlling process when reopening tun FDSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Mon, 19 Apr 2021 20:54:59 +0000  (14:54 -0600)]  
tun: freebsd: restructure and cleanupSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Mon, 19 Apr 2021 02:26:32 +0000  (20:26 -0600)]  
tun: freebsd: remove horrific hack for getting tunnel nameSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Mon, 19 Apr 2021 02:09:04 +0000  (20:09 -0600)]  
tun: freebsd: set IFF_MULTICAST for routing daemonsSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 16 Apr 2021 05:32:44 +0000  (23:32 -0600)]  
main: print kernel warning on OpenBSD and FreeBSD tooSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Mon, 12 Apr 2021 22:19:35 +0000  (16:19 -0600)]  
device: don't defer unlocking from loopSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 9 Apr 2021 23:21:35 +0000  (17:21 -0600)]  
conn: reconstruct v4 vs v6 receive function based on symtabSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Kristupas AntanavicÌŒius  [Mon, 12 Apr 2021 11:50:58 +0000  (14:50 +0300)]  
device: allocate new buffer in receive death spiral
Note: this bug is "hidden" by avoiding "death spiral" code path by
6228659  ("device: handle broader range of errors in RoutineReceiveIncoming").
If the code reached "death spiral" mechanism, there would be multiple
double frees happening. This results in a deadlock on iOS, because the
pools are fixed size and goroutine might stop until somebody makes
space in the pool.
This was almost 100% repro on the new ARM Macbooks:
- Build with 'ios' tag for Mac. This will enable bounded pools.
- Somehow call device.IpcSet at least couple of times (update config)
- device.BindUpdate() would be triggered
- RoutineReceiveIncoming would enter "death spiral".
- RoutineReceiveIncoming would stall on double free (pool is already
  full)
- The stuck routine would deadlock 'device.closeBindLocked()' function
  on line 'netc.stopping.Wait()'
Signed-off-by: Kristupas AntanavicÌŒius <kristupas.antanavicius@nordsec.com> 
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Sat, 10 Apr 2021 00:08:48 +0000  (18:08 -0600)]  
conn: windows: reset ring to starting position after freeSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 9 Apr 2021 00:17:59 +0000  (18:17 -0600)]  
conn: windows: compare head and tail properlyReported-by: Joshua Sjoding <joshua.sjoding@scjalliance.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Tue, 6 Apr 2021 17:45:10 +0000  (11:45 -0600)]  
winrio: test that IOCP-based RIO is supportedSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Josh Bleecher Snyder  [Wed, 31 Mar 2021 20:55:18 +0000  (13:55 -0700)]  
all: make conn.Bind.Open return a slice of receive functionsSigned-off-by: Josh Bleecher Snyder <josharian@gmail.com> 
Jason A. Donenfeld  [Fri, 2 Apr 2021 16:36:41 +0000  (10:36 -0600)]  
conn: winrio: pass key parameter into structSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Josh Bleecher Snyder  [Tue, 30 Mar 2021 19:36:59 +0000  (12:36 -0700)]  
device: handle broader range of errors in RoutineReceiveIncomingSigned-off-by: Josh Bleecher Snyder <josharian@gmail.com> 
Josh Bleecher Snyder  [Mon, 29 Mar 2021 20:27:21 +0000  (13:27 -0700)]  
conn: document retry loop in StdNetBind.OpenSigned-off-by: Josh Bleecher Snyder <josharian@gmail.com> 
Josh Bleecher Snyder  [Mon, 29 Mar 2021 20:21:06 +0000  (13:21 -0700)]  
conn: use local ipvN vars in StdNetBind.OpenSigned-off-by: Josh Bleecher Snyder <josharian@gmail.com> 
Josh Bleecher Snyder  [Mon, 29 Mar 2021 20:11:11 +0000  (13:11 -0700)]  
conn: unify code in StdNetBind.SendSigned-off-by: Josh Bleecher Snyder <josharian@gmail.com> 
Josh Bleecher Snyder  [Mon, 29 Mar 2021 19:36:09 +0000  (12:36 -0700)]  
device: rename unsafeCloseBind to closeBindLockedSigned-off-by: Josh Bleecher Snyder <josharian@gmail.com> 
Jason A. Donenfeld  [Tue, 23 Mar 2021 19:07:19 +0000  (13:07 -0600)]  
version: bump snapshot
Jason A. Donenfeld  [Tue, 23 Mar 2021 18:41:34 +0000  (12:41 -0600)]  
tun: freebsd: use broadcast mode instead of PPP modeSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 11 Mar 2021 16:29:10 +0000  (09:29 -0700)]  
device: signal to close device in separate routineSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 11 Mar 2021 16:23:11 +0000  (09:23 -0700)]  
tun: linux: do not spam events every second from hack listenerSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Kay Diam  [Sun, 7 Mar 2021 16:21:31 +0000  (17:21 +0100)]  
tun: freebsd: allow empty namesSigned-off-by: Kay Diam <kay.diam@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Wed, 3 Mar 2021 11:26:59 +0000  (12:26 +0100)]  
winpipe: move syscalls into x/sysSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Wed, 3 Mar 2021 14:05:19 +0000  (15:05 +0100)]  
memmod: use resource functions from x/sysSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Wed, 3 Mar 2021 13:38:26 +0000  (14:38 +0100)]  
memmod: do not use IsBadReadPtrSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Sat, 6 Mar 2021 16:20:46 +0000  (09:20 -0700)]  
conn: linux: unexport mutexSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 5 Mar 2021 22:06:08 +0000  (15:06 -0700)]  
mod: bump x/sysSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Sat, 6 Mar 2021 16:03:28 +0000  (09:03 -0700)]  
mod: rename COPYING to LICENSE
Otherwise the netstack module doesn't show up on the package site.
https://github.com/golang/go/issues/43817#issuecomment-
764987580 
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Sat, 6 Mar 2021 15:21:18 +0000  (08:21 -0700)]  
tun/netstack: bump deps and apiSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 25 Feb 2021 11:28:53 +0000  (12:28 +0100)]  
device: get rid of peers.empty boolean in timersActiveSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Mon, 22 Feb 2021 17:47:41 +0000  (18:47 +0100)]  
conn: implement RIO for fast Windows UDP socketsSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Mon, 22 Feb 2021 14:43:08 +0000  (15:43 +0100)]  
global: remove TODO name graffitiSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Mon, 22 Feb 2021 03:30:31 +0000  (04:30  +0100)]  
device: test up/down using virtual connSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Mon, 22 Feb 2021 01:57:41 +0000  (02:57  +0100)]  
device: cleanup unused test componentsSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Mon, 22 Feb 2021 01:01:50 +0000  (02:01  +0100)]  
conn: make binds replacableSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Mon, 22 Feb 2021 14:12:03 +0000  (15:12 +0100)]  
device: disable waitpool testsSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Brad Fitzpatrick  [Thu, 18 Feb 2021 22:53:22 +0000  (14:53 -0800)]  
tun: make NativeTun.Close well behaved, not crash on double closeSigned-off-by: Brad Fitzpatrick <bradfitz@tailscale.com> 
Brad Fitzpatrick  [Thu, 18 Feb 2021 22:42:04 +0000  (14:42 -0800)]  
README: bump document Go requirement to 1.16Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com> 
Jason A. Donenfeld  [Wed, 17 Feb 2021 21:19:27 +0000  (22:19 +0100)]  
global: stop using ioutilSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Tue, 16 Feb 2021 20:05:25 +0000  (21:05 +0100)]  
conn: bump to 1.16 and get rid of NetErrClosed hackSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 12 Feb 2021 17:00:59 +0000  (18:00 +0100)]  
version: bump snapshotSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Fri, 12 Feb 2021 16:59:50 +0000  (17:59 +0100)]  
device: remove old version fileSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Thu, 11 Feb 2021 14:48:56 +0000  (15:48 +0100)]  
gitignore: remove old hacksSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Wed, 10 Feb 2021 17:19:11 +0000  (18:19 +0100)]  
device: use container/list instead of open coding itSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Wed, 10 Feb 2021 00:01:37 +0000  (01:01  +0100)]  
device: retry Up() in up/down testSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Tue, 9 Feb 2021 23:43:31 +0000  (00:43  +0100)]  
conn: close old fd before trying againSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Tue, 9 Feb 2021 23:39:28 +0000  (00:39  +0100)]  
device: flush peer queues before starting deviceSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Tue, 9 Feb 2021 23:21:12 +0000  (00:21  +0100)]  
device: create peer queues at peer creation timeSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Tue, 9 Feb 2021 23:12:23 +0000  (00:12  +0100)]  
device: return error from Up() and Down()Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Tue, 9 Feb 2021 19:18:21 +0000  (20:18 +0100)]  
rwcancel: add an explicit close callSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Tue, 9 Feb 2021 18:54:00 +0000  (19:54 +0100)]  
rwcancel: use errors.Is for unwrappingSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Tue, 9 Feb 2021 18:48:27 +0000  (19:48 +0100)]  
tun: use errors.Is for unwrappingSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Tue, 9 Feb 2021 18:46:57 +0000  (19:46 +0100)]  
conn: use errors.Is for unwrappingSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Jason A. Donenfeld  [Tue, 9 Feb 2021 18:26:45 +0000  (19:26 +0100)]  
device: handshake routine writes into encryption queueSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Josh Bleecher Snyder  [Tue, 9 Feb 2021 17:53:00 +0000  (09:53 -0800)]  
device: make RoutineReadFromTUN keep encryption queue aliveSigned-off-by: Josh Bleecher Snyder <josh@tailscale.com> 
Jason A. Donenfeld  [Tue, 9 Feb 2021 17:45:12 +0000  (18:45 +0100)]  
conn: try harder to have v4 and v6 ports agreeSigned-off-by: Jason A. Donenfeld <Jason@zx2c4.com> 
Josh Bleecher Snyder  [Tue, 9 Feb 2021 17:08:17 +0000  (09:08 -0800)]  
device: only allocate peer queues onceSigned-off-by: Josh Bleecher Snyder <josh@tailscale.com> 
Josh Bleecher Snyder  [Tue, 9 Feb 2021 16:27:48 +0000  (08:27 -0800)]  
device: clarify device.state.state docs (again)Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com> 
Josh Bleecher Snyder  [Tue, 9 Feb 2021 16:20:11 +0000  (08:20 -0800)]  
device: run fewer iterations in TestUpDownSigned-off-by: Josh Bleecher Snyder <josh@tailscale.com> 
Josh Bleecher Snyder  [Tue, 9 Feb 2021 16:18:47 +0000  (08:18 -0800)]  
device: run fewer trials in TestWaitPool when race detector enabledSigned-off-by: Josh Bleecher Snyder <josh@tailscale.com> 
Josh Bleecher Snyder  [Tue, 9 Feb 2021 16:15:21 +0000  (08:15 -0800)]  
device: remove nil elem check in finalizersSigned-off-by: Josh Bleecher Snyder <josh@tailscale.com>