Commit Graph

580 Commits

Author SHA1 Message Date
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
Jason A. Donenfeld
28c7eb4335 Print utun name on darwin 2018-05-14 19:33:35 +02:00
Jason A. Donenfeld
7a1a537f43 Mask IPs when showing from trie
Otherwise intermediate nodes that get collapsed to real nodes will
display the wrong value.
2018-05-14 17:57:58 +02:00
Jason A. Donenfeld
a62c770a99 Ugly hack to suppress warning on backgrounded process 2018-05-14 16:01:58 +02:00
Jason A. Donenfeld
09235d48d8 Better common bits function 2018-05-14 15:49:20 +02:00
Jason A. Donenfeld
7f1c9d1cc2 Fix noise test 2018-05-14 14:47:31 +02:00
Jason A. Donenfeld
021724a535 Cancelable netlink writes and better response correlation 2018-05-14 14:18:26 +02:00
Jason A. Donenfeld
795f76cffa Netlink sockets can't be shutdown 2018-05-14 14:08:03 +02:00
Jason A. Donenfeld
2dfd4e7d8c Cleanup socket file 2018-05-14 13:05:37 +02:00
Jason A. Donenfeld
355e9bd619 Clean more 2018-05-14 12:27:29 +02:00
Jason A. Donenfeld
8b30278ce6 No more finalizer for rwcancel 2018-05-14 06:10:08 +02:00
Jason A. Donenfeld
17262dfd62 No need for padding any more 2018-05-14 04:36:20 +02:00
Jason A. Donenfeld
25df2e6942 Shorthand for empty channels 2018-05-14 04:19:25 +02:00
Jason A. Donenfeld
b76ab82539 Allow go routine to shutdown in darwin tun 2018-05-14 04:14:57 +02:00
Jason A. Donenfeld
5f5503afa8 Add rwcancelation to darwin 2018-05-14 04:02:59 +02:00
Jason A. Donenfeld
f738c45a68 Smoother netlink shutdown 2018-05-14 03:44:57 +02:00
Jason A. Donenfeld
c1e097d6d0 Optional logging even in background 2018-05-14 03:38:06 +02:00
Jason A. Donenfeld
e75d2d4496 Fix dummy additions 2018-05-14 03:29:21 +02:00
Jason A. Donenfeld
0fb14232fa Look up route for every peer 2018-05-14 03:26:38 +02:00
Jason A. Donenfeld
659106bd6d Ensure go routines can exit 2018-05-14 02:14:33 +02:00
Jason A. Donenfeld
29b0453cf1 Send event on erroring kqueue 2018-05-14 00:48:59 +02:00
Jason A. Donenfeld
7e10ebe101 Introduce rwcancel 2018-05-14 00:30:52 +02:00
Jason A. Donenfeld
e21ea58db3 Prettier abbreviation 2018-05-13 23:27:28 +02:00