Commit graph

352 commits

Author SHA1 Message Date
Jason A. Donenfeld 82d12e85bb Fix markdown 2018-05-22 16:47:15 +02:00
Jason A. Donenfeld d6b694e161 Add OpenBSD tun driver support 2018-05-22 16:21:05 +02:00
Jason A. Donenfeld 794e494802 Fix code duplication 2018-05-22 14:59:29 +02:00
Jason A. Donenfeld dd663a7ba4 Notes on FreeBSD limitations 2018-05-22 01:30:16 +02:00
Jason A. Donenfeld 8462c08cf2 Just in case darwin changes, we also shutdown 2018-05-22 01:27:29 +02:00
Jason A. Donenfeld b8c9e13c6e Call shutdown on route socket on freebsd 2018-05-22 01:26:47 +02:00
Filippo Valsorda bc05eb1c3c Minor main.go signal fixes
* Buffer the signal channel as it's non-blocking on the sender side
* Notify on SIGTERM instead of the uncatchable SIGKILL

License: MIT
Signed-off-by: Filippo Valsorda <valsorda@google.com>
2018-05-21 20:22:12 +02:00
Filippo Valsorda 7a527f7c89 Fix Sscanf use in tun_darwin
License: MIT
Signed-off-by: Filippo Valsorda <valsorda@google.com>
2018-05-21 20:21:31 +02:00
Filippo Valsorda 84f52ce0d6 Make successful tests silent
License: MIT
Signed-off-by: Filippo Valsorda <valsorda@google.com>
2018-05-21 20:21:00 +02:00
Filippo Valsorda 7bdc5eb54e Properly close DummyTUN to avoid deadlock in TestNoiseHandshake
License: MIT
Signed-off-by: Filippo Valsorda <valsorda@google.com>
2018-05-21 20:20:13 +02:00
Jason A. Donenfeld 1c666576d5 User cookie is closer to fwmark than setfib 2018-05-21 20:13:39 +02:00
Jason A. Donenfeld 2ae22ac65d Remove broken windows cruft 2018-05-21 19:00:58 +02:00
Jason A. Donenfeld ff3f2455e5 Rework freebsd support 2018-05-21 18:48:48 +02:00
Brady OBrien b962d7d791 Add FreeBSD support
Signed-off-by: Brady OBrien <brady.obrien128@gmail.com>
2018-05-21 17:31:22 +02:00
Jason A. Donenfeld 837a12c841 Close events channel when no status listener 2018-05-21 14:16:46 +02:00
Jason A. Donenfeld 7472930d4e Straighten out UAPI logging 2018-05-21 03:38:50 +02:00
Jason A. Donenfeld 6307bfcdf4 Close hack listener before closing channel 2018-05-21 03:31:46 +02:00
Jason A. Donenfeld e28d70f5b2 ratelimiter: do not run GC with nothing to do 2018-05-21 03:20:18 +02:00
Jason A. Donenfeld 84c5357cf3 Reasonable punctuation given the spacing 2018-05-21 02:50:39 +02:00
Jason A. Donenfeld acb5481246 Fix data races in timers 2018-05-20 06:50:07 +02:00
Jason A. Donenfeld 18f43705ec Fix race with closing event channel
There's still a tiny race on Linux, since the tun channel is written to
from two places.
2018-05-20 06:38:39 +02:00
Jason A. Donenfeld 058cedcf66 Style 2018-05-20 06:29:46 +02:00
Jason A. Donenfeld c5fa3de24c Remove unused mtu variable 2018-05-20 06:29:21 +02:00
Jason A. Donenfeld 1068d6b92b Give bind its own wait group
In a waitgroup, all waits must come after all adds
2018-05-20 06:29:21 +02:00
Jason A. Donenfeld 5e924e5407 Avoid deadlock when the mutex isn't required, since these are atomics
Maybe this fixes the "double lock issue" in
f73d2fb2d96bc3fbc8bc4cce452e3c19689de01e?
2018-05-20 06:29:21 +02:00
Jason A. Donenfeld b290cf05e3 Use proper status listener on Darwin 2018-05-20 06:29:21 +02:00
Jason A. Donenfeld b95a4c61a5 Reduce the hack listener to once a second 2018-05-20 04:03:11 +02:00
Jason A. Donenfeld a5b3340e5b Fix race in netlink peer correlator 2018-05-20 03:37:42 +02:00
Jason A. Donenfeld 7c21a3de0a Fix race in lock pending 2018-05-20 03:31:27 +02:00
Jason A. Donenfeld 0a68c1ab17 Fix race in stats 2018-05-20 03:26:46 +02:00
Jason A. Donenfeld e04f9543c0 Fix race in packetInNonceQueueIsAwaitingKey 2018-05-20 03:24:14 +02:00
Jason A. Donenfeld fa003b6933 Discourage building for Linux 2018-05-20 03:19:03 +02:00
Jason A. Donenfeld 75cdc5986a Revert "Temporary work around. Please revert me"
This reverts commit 4312a7c70a.
2018-05-19 02:40:22 +02:00
Jason A. Donenfeld 5a267f0b8c timers: no need to clear keepalive in persistent keepalive
We do this after sending the keepalive anyway.

This is something of a regression, though, since before we'd cancel and
then send, but now we send and then cancel, so it introduces a potential
race, but hopefully that isn't too big of a deal.

Kernel module commit a24b3e6e15ae1ea1291666e5da910caf43eedbaf
2018-05-19 02:40:22 +02:00
Jason A. Donenfeld 870734ab5e timers: clear send_keepalive timer on sending handshake response
We reorganize this into also doing so on sending keepalives itself,
which means the state machine is much more consistent, even if this was
already implied.

Kernel module commit 30290ef1d2581a3e6ee8ffcdb05d580cfba976be
2018-05-19 02:40:22 +02:00
Mathias Hall-Andersen 2a432523ed Listen for flush in outer select
Now listen for flushNonceQueue signal in outer select during
the RoutineNonce routine. This is needed to handle the edge case
where the queue is flushed, but no packets are in the nonce queue.
Since the signal has capacity 1 this signal will remain and potentially
flush the queue at a later time, with packets meant for transmission.
2018-05-19 02:40:22 +02:00
Mathias Hall-Andersen 38accea986 Add copyright headers 2018-05-19 02:40:22 +02:00
Jason A. Donenfeld 125976edce Avoid using v6-mapped-v4 2018-05-18 05:02:35 +02:00
Jason A. Donenfeld 52d797ce1a Style 2018-05-18 04:51:02 +02:00
Jason A. Donenfeld 711f929879 Fill out readme 2018-05-17 16:55:45 +02:00
Jason A. Donenfeld 846d721dfd Finer-grained start-stop synchronization 2018-05-16 22:20:15 +02:00
Jason A. Donenfeld 23eca94508 Fix dir permissions 2018-05-15 19:57:43 +02:00
Jason A. Donenfeld 4312a7c70a Temporary work around. Please revert me 2018-05-15 19:56:06 +02:00
Jason A. Donenfeld 207fd644e8 Lock timers on modification 2018-05-15 18:44:00 +02:00
Jason A. Donenfeld ab02aacdd6 Avoid vendoring tooling as much as possible 2018-05-15 15:27:46 +02:00
Jason A. Donenfeld 0e4ebfa194 Add vendoring for Homebrew 2018-05-15 14:49:52 +02:00
Jason A. Donenfeld cf161f270e Do not send keepalive if closed 2018-05-15 13:29:52 +02:00
Jason A. Donenfeld 27091c3284 Fix refactoring mistakes 2018-05-15 06:28:42 +02:00
Jason A. Donenfeld 08d7602dc3 Improve makefile 2018-05-15 02:16:51 +02:00
Jason A. Donenfeld 115a2e3946 Use /dev/null as place holder 2018-05-14 20:06:33 +02:00