Jason A. Donenfeld
40d5ff0c70
Cleanup
2018-05-23 03:58:27 +02:00
Jason A. Donenfeld
5a2228a5c9
Move replay into subpackage
2018-05-23 03:58:27 +02:00
Jason A. Donenfeld
0a63188afa
Move tun to subpackage
2018-05-23 03:58:27 +02:00
Jason A. Donenfeld
65a74f3175
Avoid sticky sockets on Android
...
The android policy routing system does insane things.
2018-05-22 23:22:23 +02:00
Jason A. Donenfeld
b4cef2524f
Fix integer conversions
2018-05-22 18:35:52 +02:00
Jason A. Donenfeld
7038de95e1
Bump dependencies for OpenBSD
2018-05-22 17:58:34 +02:00
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