Mathias Hall-Andersen
6db41d5a26
Initial version of migration to new event model
...
- Begin move away from global timer state.
- Made logging format more consistent
2018-05-05 02:20:52 +02:00
Jason A. Donenfeld
168ef61a63
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.
2018-05-01 17:46:28 +02:00
Jason A. Donenfeld
b34604245e
Clear src cache if route changes to new ifindex
2018-04-27 05:41:07 +02:00
Jason A. Donenfeld
92261b770f
Fix error handling and cleanup of netlink listener
2018-04-27 02:47:31 +02:00
Jason A. Donenfeld
0715bdf353
Fix wrong debug messages
2018-04-20 07:13:40 +02:00
Jason A. Donenfeld
5ba84696e2
Rework sticky sockets
2018-04-20 06:51:28 +02:00
Jason A. Donenfeld
f5c256affd
Check for correct first nibble
...
The code before assumed that the flow label was always zero.
2018-04-20 06:51:28 +02:00
Jason A. Donenfeld
4973ea0c9e
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
2018-04-20 04:16:34 +02:00
Jason A. Donenfeld
676bb91434
We can determine the interface name ourselves
2018-04-19 16:00:20 +02:00
Jason A. Donenfeld
ab875491c0
Do not hard code MTU default
2018-04-19 15:54:51 +02:00
Mathias Hall-Andersen
ac9912345b
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.
2018-04-18 20:29:48 +02:00
Jason A. Donenfeld
26a56a652e
Allow determining name
2018-04-18 16:42:30 +02:00
Jason A. Donenfeld
0b940a7568
Use socketcall on x86
2018-04-18 10:17:04 +02:00
Jason A. Donenfeld
eb6728400b
Use simple 16-bit integer for persistent keepalive
...
Races for this aren't a huge problem.
2018-04-18 07:24:33 +02:00
Jason A. Donenfeld
099219be2a
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.
2018-04-18 06:54:21 +02:00
Mathias Hall-Andersen
6cecaf3157
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
2018-03-08 16:44:46 +01:00
Jason A. Donenfeld
fd248c6cb1
Support nopi mode
2018-02-28 19:58:51 +01:00
Jason A. Donenfeld
09de7d1342
Close tun fd when bringing down tunnel
2018-02-18 22:54:33 +01:00
Jason A. Donenfeld
519c5d200a
Fix timer typo
2018-02-18 20:58:43 +01:00
Mathias Hall-Andersen
9de17e6c9c
Seperated fwmark update code into function
2018-02-18 20:49:03 +01:00
Jason A. Donenfeld
8f1d1b8c54
MPLv2 for App Store
2018-02-13 19:43:47 +01:00
Dominik Süß
fa37039c3b
Reimplemented bind_rtmgrp in pure Go
...
Getting rid of the Cgo dependency for listing on netlink.
Ported original patch from "syscall" to "golang.org/x/sys/unix".
Signed-off-by: Dominik Süß <dominik.suess@outlook.at>
Co-Authored-By: Mathias Hall-Andersen <mathias@hall-andersen.dk>
2018-02-13 16:43:07 +01:00
Jason A. Donenfeld
ff8f3a412e
Use relative imports
2018-02-12 23:49:41 +01:00
Mathias Hall-Andersen
ea4ea6f933
Revert "Don't use modules"
...
This reverts commit bffe99aead
.
2018-02-12 22:29:11 +01:00
Jason A. Donenfeld
bffe99aead
Don't use modules
...
Feel free to revert this if you have a strong feeling about it. But so
far as I can see, it adds a lot of complexity for basically no upsides.
2018-02-12 20:13:03 +01:00
Mathias Hall-Andersen
77285c99aa
Moved test-processes to background
2018-02-11 23:31:53 +01:00
Mathias Hall-Andersen
6cba91999c
TUN status hack was causing spam during shutdown
2018-02-11 23:26:54 +01:00
Mathias Hall-Andersen
04ded4c631
Added missing mutex acquisition
2018-02-11 23:07:07 +01:00
Mathias Hall-Andersen
8bdadaae59
Removed exported methods from ratelimiter package
2018-02-11 23:01:55 +01:00
Mathias Hall-Andersen
5f0a91a127
Moved ratelimiter to internal package
2018-02-11 22:53:39 +01:00
Mathias Hall-Andersen
1cf23c0005
Moved tai64n into sub-package
2018-02-11 19:25:33 +01:00
Mathias Hall-Andersen
743364f647
Fixed tabs
2018-02-11 19:02:50 +01:00
Mathias Hall-Andersen
73cb1a1155
Reverted event changes
...
This feature was not needed for Android, upon further inspection.
2018-02-11 18:55:30 +01:00
Mathias Hall-Andersen
b461343171
Started migration to sub-packages
2018-02-09 18:56:00 +01:00
Jason A. Donenfeld
51a6001bb9
Go treats underscores specially
...
In case there's ever a platform called helpers or protocol, we don't
want to be doing this.
2018-02-07 18:59:41 +01:00
Mathias Hall-Andersen
ceccd39420
Work on logging format
2018-02-04 19:18:44 +01:00
Mathias Hall-Andersen
283e7117cf
Merge branch 'master' into timer-teardown
2018-02-04 16:48:03 +01:00
Mathias Hall-Andersen
9c5083bd19
Removed debugging locks
2018-02-04 16:46:24 +01:00
Mathias Hall-Andersen
a0f54cbe5a
Align with go library layout
2018-02-04 16:08:26 +01:00
Mathias Hall-Andersen
5871ec04de
Fixed tests
2018-02-02 20:45:25 +01:00
Mathias Hall-Andersen
4f97b52ea6
Clear cryptographic state when interface down
...
Attempts to clear the cryptographic state for every
peer when the device goes down.
2018-02-02 17:24:29 +01:00
Mathias Hall-Andersen
029410b118
Rework of entire locking system
...
Locking on the Device instance is now much more fined-grained,
seperating out the fields into "resources" st. most common interactions
only require a small number.
2018-02-02 16:40:14 +01:00
Mathias Hall-Andersen
1e42b14022
Merge branch 'timer-teardown' of git.zx2c4.com:wireguard-go into timer-teardown
2018-02-01 11:20:36 +01:00
Mathias Hall-Andersen
a57c790e36
Added binary to .gitignore
2018-01-31 10:11:36 +01:00
Mathias Hall-Andersen
f73d2fb2d9
Added initial version of peer teardown
...
There is a double lock issue with device.Close which has yet to be
resolved.
2018-01-26 22:52:32 +01:00
Mathias Hall-Andersen
068d932f2c
Fixed potential DoS issue
2018-01-16 14:57:12 +01:00
Mathias Hall-Andersen
1dd590b91b
Work on timer teardown + bug fixes
...
Added waitgroups to peer struct for routine
start / stop synchronisation
2018-01-13 09:00:37 +01:00
Mathias Hall-Andersen
5f01086f19
Fixed fwmark update without device status change
...
An update of the fwmark was missing,
when the device was not bought up after the change.
2018-01-09 17:26:18 +01:00
Mathias Hall-Andersen
9360bac632
Revert "Peer timer teardown"
...
This reverts commit d73f960aab
.
Problems with deadlocking arises due to orphaned packets in per-peer
queues. Additional work on this issue continues in seperate branch.
2018-01-04 14:24:14 +01:00
Mathias Hall-Andersen
d73f960aab
Peer timer teardown
2017-12-29 17:42:09 +01:00