]>
git.ipfire.org Git - thirdparty/wireguard-go.git/log
Jason A. Donenfeld [Sun, 20 May 2018 04:38:39 +0000 (06:38 +0200)]
Fix race with closing event channel
There's still a tiny race on Linux, since the tun channel is written to
from two places.
Jason A. Donenfeld [Sun, 20 May 2018 04:29:46 +0000 (06:29 +0200)]
Style
Jason A. Donenfeld [Sun, 20 May 2018 04:25:39 +0000 (06:25 +0200)]
Remove unused mtu variable
Jason A. Donenfeld [Sun, 20 May 2018 04:19:29 +0000 (06:19 +0200)]
Give bind its own wait group
In a waitgroup, all waits must come after all adds
Jason A. Donenfeld [Sun, 20 May 2018 03:55:52 +0000 (05:55 +0200)]
Avoid deadlock when the mutex isn't required, since these are atomics
Maybe this fixes the "double lock issue" in
f73d2fb2d96bc3fbc8bc4cce452e3c19689de01e ?
Jason A. Donenfeld [Sun, 20 May 2018 03:43:22 +0000 (05:43 +0200)]
Use proper status listener on Darwin
Jason A. Donenfeld [Sun, 20 May 2018 02:03:11 +0000 (04:03 +0200)]
Reduce the hack listener to once a second
Jason A. Donenfeld [Sun, 20 May 2018 01:37:33 +0000 (03:37 +0200)]
Fix race in netlink peer correlator
Jason A. Donenfeld [Sun, 20 May 2018 01:31:27 +0000 (03:31 +0200)]
Fix race in lock pending
Jason A. Donenfeld [Sun, 20 May 2018 01:26:46 +0000 (03:26 +0200)]
Fix race in stats
Jason A. Donenfeld [Sun, 20 May 2018 01:24:14 +0000 (03:24 +0200)]
Fix race in packetInNonceQueueIsAwaitingKey
Jason A. Donenfeld [Sun, 20 May 2018 01:18:47 +0000 (03:18 +0200)]
Discourage building for Linux
Jason A. Donenfeld [Sat, 19 May 2018 00:35:56 +0000 (02:35 +0200)]
Revert "Temporary work around. Please revert me"
This reverts commit
4312a7c70a58656891ff1398f2d0d36f4ed74c8a .
Jason A. Donenfeld [Fri, 18 May 2018 23:52:17 +0000 (01:52 +0200)]
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
Jason A. Donenfeld [Fri, 18 May 2018 23:19:53 +0000 (01:19 +0200)]
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
Mathias Hall-Andersen [Fri, 18 May 2018 22:35:49 +0000 (00:35 +0200)]
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.
Mathias Hall-Andersen [Fri, 18 May 2018 22:34:56 +0000 (00:34 +0200)]
Add copyright headers
Jason A. Donenfeld [Fri, 18 May 2018 03:02:35 +0000 (05:02 +0200)]
Avoid using v6-mapped-v4
Jason A. Donenfeld [Fri, 18 May 2018 01:56:27 +0000 (03:56 +0200)]
Style
Jason A. Donenfeld [Wed, 16 May 2018 21:25:59 +0000 (23:25 +0200)]
Fill out readme
Jason A. Donenfeld [Wed, 16 May 2018 20:20:15 +0000 (22:20 +0200)]
Finer-grained start-stop synchronization
Jason A. Donenfeld [Tue, 15 May 2018 17:57:43 +0000 (19:57 +0200)]
Fix dir permissions
Jason A. Donenfeld [Tue, 15 May 2018 17:56:06 +0000 (19:56 +0200)]
Temporary work around. Please revert me
Jason A. Donenfeld [Tue, 15 May 2018 16:38:18 +0000 (18:38 +0200)]
Lock timers on modification
Jason A. Donenfeld [Tue, 15 May 2018 13:26:06 +0000 (15:26 +0200)]
Avoid vendoring tooling as much as possible
Jason A. Donenfeld [Tue, 15 May 2018 12:21:33 +0000 (14:21 +0200)]
Add vendoring for Homebrew
Jason A. Donenfeld [Tue, 15 May 2018 11:29:52 +0000 (13:29 +0200)]
Do not send keepalive if closed
Jason A. Donenfeld [Tue, 15 May 2018 04:28:42 +0000 (06:28 +0200)]
Fix refactoring mistakes
Jason A. Donenfeld [Tue, 15 May 2018 00:15:16 +0000 (02:15 +0200)]
Improve makefile
Jason A. Donenfeld [Mon, 14 May 2018 18:06:33 +0000 (20:06 +0200)]
Use /dev/null as place holder
Jason A. Donenfeld [Mon, 14 May 2018 17:23:44 +0000 (19:23 +0200)]
Print utun name on darwin
Jason A. Donenfeld [Mon, 14 May 2018 15:57:58 +0000 (17:57 +0200)]
Mask IPs when showing from trie
Otherwise intermediate nodes that get collapsed to real nodes will
display the wrong value.
Jason A. Donenfeld [Mon, 14 May 2018 13:58:40 +0000 (15:58 +0200)]
Ugly hack to suppress warning on backgrounded process
Jason A. Donenfeld [Mon, 14 May 2018 13:49:20 +0000 (15:49 +0200)]
Better common bits function
Jason A. Donenfeld [Mon, 14 May 2018 12:47:31 +0000 (14:47 +0200)]
Fix noise test
Jason A. Donenfeld [Mon, 14 May 2018 12:18:26 +0000 (14:18 +0200)]
Cancelable netlink writes and better response correlation
Jason A. Donenfeld [Mon, 14 May 2018 12:08:03 +0000 (14:08 +0200)]
Netlink sockets can't be shutdown
Jason A. Donenfeld [Mon, 14 May 2018 10:46:06 +0000 (12:46 +0200)]
Cleanup socket file
Jason A. Donenfeld [Mon, 14 May 2018 10:27:29 +0000 (12:27 +0200)]
Clean more
Jason A. Donenfeld [Mon, 14 May 2018 04:10:08 +0000 (06:10 +0200)]
No more finalizer for rwcancel
Jason A. Donenfeld [Mon, 14 May 2018 02:36:20 +0000 (04:36 +0200)]
No need for padding any more
Jason A. Donenfeld [Mon, 14 May 2018 02:19:25 +0000 (04:19 +0200)]
Shorthand for empty channels
Jason A. Donenfeld [Mon, 14 May 2018 02:14:57 +0000 (04:14 +0200)]
Allow go routine to shutdown in darwin tun
Jason A. Donenfeld [Mon, 14 May 2018 01:55:46 +0000 (03:55 +0200)]
Add rwcancelation to darwin
Jason A. Donenfeld [Mon, 14 May 2018 01:43:56 +0000 (03:43 +0200)]
Smoother netlink shutdown
Jason A. Donenfeld [Mon, 14 May 2018 01:38:06 +0000 (03:38 +0200)]
Optional logging even in background
Jason A. Donenfeld [Mon, 14 May 2018 01:29:21 +0000 (03:29 +0200)]
Fix dummy additions
Jason A. Donenfeld [Mon, 14 May 2018 01:00:40 +0000 (03:00 +0200)]
Look up route for every peer
Jason A. Donenfeld [Mon, 14 May 2018 00:14:33 +0000 (02:14 +0200)]
Ensure go routines can exit
Jason A. Donenfeld [Sun, 13 May 2018 22:37:22 +0000 (00:37 +0200)]
Send event on erroring kqueue
Jason A. Donenfeld [Sun, 13 May 2018 22:28:30 +0000 (00:28 +0200)]
Introduce rwcancel
Jason A. Donenfeld [Sun, 13 May 2018 21:27:28 +0000 (23:27 +0200)]
Prettier abbreviation
Jason A. Donenfeld [Sun, 13 May 2018 21:14:43 +0000 (23:14 +0200)]
More refactoring
Jason A. Donenfeld [Sun, 13 May 2018 17:50:58 +0000 (19:50 +0200)]
More odds and ends
Jason A. Donenfeld [Sun, 13 May 2018 17:35:11 +0000 (19:35 +0200)]
Fix up tests
Jason A. Donenfeld [Sun, 13 May 2018 17:33:41 +0000 (19:33 +0200)]
Odds and ends
Jason A. Donenfeld [Sun, 13 May 2018 16:42:06 +0000 (18:42 +0200)]
Cleanup ratelimiter
Jason A. Donenfeld [Sun, 13 May 2018 16:23:40 +0000 (18:23 +0200)]
Rework index hashtable
Jason A. Donenfeld [Mon, 7 May 2018 20:27:03 +0000 (22:27 +0200)]
Rewrite timers and related state machines
Mathias Hall-Andersen [Sat, 5 May 2018 20:10:22 +0000 (22:10 +0200)]
Merge branch 'master' of ssh://git.zx2c4.com/wireguard-go
Mathias Hall-Andersen [Sat, 5 May 2018 20:07:58 +0000 (22:07 +0200)]
Removed remaining signals from peer
1. Removed remaining signals from peer struct
2. Made needAnotherKeepalive local
3. Removed environment check from warning text (annoying when debugging)
Jason A. Donenfeld [Sat, 5 May 2018 04:09:30 +0000 (06:09 +0200)]
Reorder stopping messages so that logs are coherent
Jason A. Donenfeld [Sat, 5 May 2018 04:00:38 +0000 (06:00 +0200)]
More robust solution to close deadlock
Jason A. Donenfeld [Sat, 5 May 2018 03:33:29 +0000 (05:33 +0200)]
Fix infinite loop in exit routine
Mathias Hall-Andersen [Sat, 5 May 2018 02:42:44 +0000 (04:42 +0200)]
Merge branch 'master' of ssh://git.zx2c4.com/wireguard-go
Mathias Hall-Andersen [Sat, 5 May 2018 02:42:17 +0000 (04:42 +0200)]
Use Int32n for jitter
Jason A. Donenfeld [Sat, 5 May 2018 02:20:16 +0000 (04:20 +0200)]
Merge branch 'master' of ssh://git.zx2c4.com/wireguard-go
Mathias Hall-Andersen [Sat, 5 May 2018 02:15:41 +0000 (04:15 +0200)]
Merge branch 'master' of ssh://git.zx2c4.com/wireguard-go
Mathias Hall-Andersen [Sat, 5 May 2018 02:15:07 +0000 (04:15 +0200)]
Removed old signals
Jason A. Donenfeld [Sat, 5 May 2018 01:36:09 +0000 (03:36 +0200)]
tun: simplify and combine creation logic on Linux
Jason A. Donenfeld [Sat, 5 May 2018 00:48:21 +0000 (02:48 +0200)]
Style
Mathias Hall-Andersen [Sat, 5 May 2018 00:47:59 +0000 (02:47 +0200)]
Merge branch 'master' of ssh://git.zx2c4.com/wireguard-go
Jason A. Donenfeld [Sat, 5 May 2018 00:47:35 +0000 (02:47 +0200)]
tun: account for null termination on Linux
Mathias Hall-Andersen [Sat, 5 May 2018 00:23:03 +0000 (02:23 +0200)]
Merge branch 'master' of ssh://git.zx2c4.com/wireguard-go
Mathias Hall-Andersen [Sat, 5 May 2018 00:20:52 +0000 (02:20 +0200)]
Initial version of migration to new event model
- Begin move away from global timer state.
- Made logging format more consistent
Jason A. Donenfeld [Fri, 4 May 2018 19:51:55 +0000 (21:51 +0200)]
uapi: use kqueue for sock deletion on darwin
Jason A. Donenfeld [Fri, 4 May 2018 19:20:19 +0000 (21:20 +0200)]
tun: print automatically assigned interface name to stdout
This way scripts know what process they just started.
Jason A. Donenfeld [Fri, 4 May 2018 19:11:38 +0000 (21:11 +0200)]
tun: allow darwin to auto assign names
Jason A. Donenfeld [Fri, 4 May 2018 17:50:08 +0000 (19:50 +0200)]
warning: put into main
Jason A. Donenfeld [Thu, 3 May 2018 13:04:00 +0000 (15:04 +0200)]
global: Add SPDX tags and copyright header
Mathias should probably add his copyright headers to each file too.
Jason A. Donenfeld [Thu, 3 May 2018 12:50:57 +0000 (14:50 +0200)]
Daemonize with environment variable
Jason A. Donenfeld [Thu, 3 May 2018 02:49:35 +0000 (04:49 +0200)]
Start to dust off Darwin
Jason A. Donenfeld [Tue, 1 May 2018 14:59:13 +0000 (16:59 +0200)]
Add missing locks and fix debug output, and try to flush queues
Flushing queues on exit is sort of a partial solution, but this could be
better. Really what we want is for no more packets to be enqueued after
isUp is set to false.
Jason A. Donenfeld [Fri, 27 Apr 2018 03:21:45 +0000 (05:21 +0200)]
Clear src cache if route changes to new ifindex
Jason A. Donenfeld [Fri, 27 Apr 2018 00:23:48 +0000 (02:23 +0200)]
Fix error handling and cleanup of netlink listener
Jason A. Donenfeld [Fri, 20 Apr 2018 05:13:40 +0000 (07:13 +0200)]
Fix wrong debug messages
Jason A. Donenfeld [Fri, 20 Apr 2018 02:05:11 +0000 (04:05 +0200)]
Rework sticky sockets
Jason A. Donenfeld [Fri, 20 Apr 2018 03:30:22 +0000 (05:30 +0200)]
Check for correct first nibble
The code before assumed that the flow label was always zero.
Jason A. Donenfeld [Thu, 19 Apr 2018 05:46:27 +0000 (07:46 +0200)]
Signal using select and a pipe for bringing down TUN reader
Waiting on resolution of these to fix in better way:
- https://github.com/golang/go/issues/22939
- https://github.com/golang/go/issues/24331
Jason A. Donenfeld [Thu, 19 Apr 2018 13:54:33 +0000 (15:54 +0200)]
We can determine the interface name ourselves
Jason A. Donenfeld [Thu, 19 Apr 2018 13:52:59 +0000 (15:52 +0200)]
Do not hard code MTU default
Mathias Hall-Andersen [Wed, 18 Apr 2018 18:29:48 +0000 (20:29 +0200)]
Fixed read from closed channel
A premature waitgroup .Done resulted in reading from closed channel.
This caused a nil-pointer deref & crash.
Added additional debugging when closing routines.
Jason A. Donenfeld [Wed, 18 Apr 2018 14:39:14 +0000 (16:39 +0200)]
Allow determining name
Jason A. Donenfeld [Wed, 18 Apr 2018 05:54:39 +0000 (07:54 +0200)]
Use socketcall on x86
Jason A. Donenfeld [Wed, 18 Apr 2018 05:24:33 +0000 (07:24 +0200)]
Use simple 16-bit integer for persistent keepalive
Races for this aren't a huge problem.
Jason A. Donenfeld [Wed, 18 Apr 2018 04:54:21 +0000 (06:54 +0200)]
Align 64-bit atomics
64-bit varibles that are accessed using the Go atomic functions must be
8-byte aligned on 32-bit platforms. Otherwise there are crashes.
Mathias Hall-Andersen [Thu, 8 Mar 2018 15:44:27 +0000 (16:44 +0100)]
Begin work on full device<->device unit-test
To simulate a full interaction between two WireGuard
instances without networking, using dummy instances of the interfaces
Jason A. Donenfeld [Wed, 28 Feb 2018 11:40:56 +0000 (12:40 +0100)]
Support nopi mode
Jason A. Donenfeld [Sun, 18 Feb 2018 21:54:33 +0000 (22:54 +0100)]
Close tun fd when bringing down tunnel
Jason A. Donenfeld [Sun, 18 Feb 2018 19:58:43 +0000 (20:58 +0100)]
Fix timer typo