]>
git.ipfire.org Git - thirdparty/wireguard-go.git/log
Jason A. Donenfeld [Sat, 12 Oct 2019 20:34:10 +0000 (22:34 +0200)]
version: bump snapshot
Jason A. Donenfeld [Tue, 8 Oct 2019 14:48:18 +0000 (16:48 +0200)]
Makefile: remove v prefix
Jason A. Donenfeld [Tue, 8 Oct 2019 07:58:58 +0000 (09:58 +0200)]
wintun: expose version
Jason A. Donenfeld [Sat, 28 Sep 2019 18:12:46 +0000 (20:12 +0200)]
uapi: allow preventing creation of new peers when updating
This enables race-free updates for wg-dynamic and similar tools.
Suggested-by: Thomas Gschwantner <tharre3@gmail.com>
Jason A. Donenfeld [Sat, 21 Sep 2019 19:13:54 +0000 (21:13 +0200)]
mod: bump versions
Jason A. Donenfeld [Tue, 17 Sep 2019 05:39:16 +0000 (23:39 -0600)]
winpipe: use x/sys/windows instead of syscall
Jason A. Donenfeld [Tue, 17 Sep 2019 01:38:33 +0000 (19:38 -0600)]
wintun: use correct length for security attributes
Jason A. Donenfeld [Sun, 8 Sep 2019 18:52:44 +0000 (13:52 -0500)]
tun: windows: unify error message format
Jason A. Donenfeld [Sun, 8 Sep 2019 15:56:55 +0000 (10:56 -0500)]
version: bump snapshot
Jason A. Donenfeld [Sun, 8 Sep 2019 15:56:00 +0000 (10:56 -0500)]
main: simplify warnings
Jason A. Donenfeld [Sat, 7 Sep 2019 05:02:07 +0000 (00:02 -0500)]
tun: openbsd: check for interface already being up
In some cases, we operate on an already-up interface, or the user brings
up the interface before we start monitoring. For those situations, we
should first check if the interface is already up.
This still technically races between the initial check and the start of
the route loop, but fixing that is a bit ugly and probably not worth it
at the moment.
Reported-by: Theo Buehler <tb@theobuehler.org>
Jason A. Donenfeld [Fri, 6 Sep 2019 03:48:21 +0000 (21:48 -0600)]
namespaceapi: AddSIDToBoundaryDescriptor modifies the handle
Jason A. Donenfeld [Mon, 2 Sep 2019 03:32:28 +0000 (21:32 -0600)]
wintun: take mutex first always
This prevents an ABA deadlock with setupapi's internal locks.
Jason A. Donenfeld [Mon, 2 Sep 2019 03:25:47 +0000 (21:25 -0600)]
wintun: consider abandoned mutexes as released
Jason A. Donenfeld [Sat, 31 Aug 2019 13:48:42 +0000 (07:48 -0600)]
ipc: windows: use protected prefix
Jason A. Donenfeld [Fri, 30 Aug 2019 19:21:47 +0000 (13:21 -0600)]
winpipe: enforce ownership of client connection
Jason A. Donenfeld [Fri, 30 Aug 2019 16:31:27 +0000 (10:31 -0600)]
wintun: put mutex into private namespace
Jason A. Donenfeld [Fri, 30 Aug 2019 15:59:25 +0000 (09:59 -0600)]
namespaceapi: fix mistake
Simon Rozman [Fri, 30 Aug 2019 12:41:33 +0000 (14:41 +0200)]
namespaceapi: initial version
Signed-off-by: Simon Rozman <simon@rozman.si>
Jason A. Donenfeld [Thu, 29 Aug 2019 23:42:28 +0000 (17:42 -0600)]
wintun: take mutex so that deletion uses the right name
Jason A. Donenfeld [Thu, 29 Aug 2019 18:47:16 +0000 (12:47 -0600)]
wintun: move ring constants into module
Jason A. Donenfeld [Thu, 29 Aug 2019 18:22:15 +0000 (12:22 -0600)]
wintun: delete all interfaces is not used anymore
Jason A. Donenfeld [Thu, 29 Aug 2019 18:20:40 +0000 (12:20 -0600)]
wintun: Wintun->Interface
Jason A. Donenfeld [Thu, 29 Aug 2019 18:13:16 +0000 (12:13 -0600)]
wintun: keep reference to pool in wintun object
Simon Rozman [Thu, 29 Aug 2019 16:00:44 +0000 (18:00 +0200)]
wintun: introduce adapter pools
This makes wintun package reusable for non-WireGuard applications.
Signed-off-by: Simon Rozman <simon@rozman.si>
Jason A. Donenfeld [Thu, 29 Aug 2019 01:31:20 +0000 (19:31 -0600)]
wintun: simplify rename logic
Jason A. Donenfeld [Wed, 28 Aug 2019 14:39:26 +0000 (08:39 -0600)]
wintun: give better errors when ndis interface listing fails
Jason A. Donenfeld [Wed, 28 Aug 2019 14:08:07 +0000 (08:08 -0600)]
wintun: also check for numbered suffix and friendly name
Simon Rozman [Wed, 28 Aug 2019 09:39:01 +0000 (11:39 +0200)]
wintun: upgrade deleting all interfaces and make it reusable
DeleteAllInterfaces() didn't check if SPDRP_DEVICEDESC == "WireGuard
Tunnel". It deleted _all_ Wintun adapters, not just WireGuard's.
Furthermore, the DeleteAllInterfaces() was upgraded into a new function
called DeleteMatchingInterfaces() for selectively deletion. This will
be used by WireGuard to clean stale Wintun adapters.
Signed-off-by: Simon Rozman <simon@rozman.si>
Jason A. Donenfeld [Tue, 27 Aug 2019 16:54:49 +0000 (10:54 -0600)]
wintun: cleanup earlier
Jason A. Donenfeld [Tue, 27 Aug 2019 16:09:16 +0000 (10:09 -0600)]
wintun: rename duplicate adapters instead of ourselves
Jason A. Donenfeld [Mon, 26 Aug 2019 20:46:43 +0000 (14:46 -0600)]
wintun: match suffix numbers
Jason A. Donenfeld [Sun, 25 Aug 2019 18:45:13 +0000 (12:45 -0600)]
device: getsockname on linux to determine port
It turns out Go isn't passing the pointer properly so we wound up with a
zero port every time.
Jason A. Donenfeld [Sat, 24 Aug 2019 10:29:17 +0000 (12:29 +0200)]
wintun: make description consistent across fields
Jason A. Donenfeld [Thu, 22 Aug 2019 06:52:59 +0000 (08:52 +0200)]
wintun: try multiple names until one isn't a duplicate
Jason A. Donenfeld [Wed, 21 Aug 2019 06:40:44 +0000 (08:40 +0200)]
wintun: use nci.dll directly instead of buggy netshell
Jason A. Donenfeld [Tue, 20 Aug 2019 13:48:08 +0000 (15:48 +0200)]
wintun: set friendly a bit better
This is still wrong, but NETSETUPPKEY_Driver_FriendlyName seems a bit
tricky to use.
Jason A. Donenfeld [Mon, 19 Aug 2019 07:20:23 +0000 (09:20 +0200)]
wintun: also set friendly name after setting interface name
Jason A. Donenfeld [Mon, 19 Aug 2019 07:11:21 +0000 (09:11 +0200)]
wintun: defer requires unique variable
Jason A. Donenfeld [Mon, 19 Aug 2019 07:01:53 +0000 (09:01 +0200)]
wintun: set adapter description name
Jason A. Donenfeld [Sun, 18 Aug 2019 09:49:37 +0000 (11:49 +0200)]
tun: windows: don't spin unless we really need it
Jason A. Donenfeld [Mon, 5 Aug 2019 17:29:12 +0000 (19:29 +0200)]
version: bump snapshot
Jason A. Donenfeld [Mon, 5 Aug 2019 15:46:34 +0000 (17:46 +0200)]
device: drop lock before expiring keys
Jason A. Donenfeld [Mon, 5 Aug 2019 14:57:41 +0000 (16:57 +0200)]
uapi: skip peers with invalid keys
Jason A. Donenfeld [Sat, 3 Aug 2019 17:05:53 +0000 (19:05 +0200)]
tun: windows: spin for only a millisecond/80
Performance stays the same as before.
Simon Rozman [Fri, 2 Aug 2019 13:48:41 +0000 (15:48 +0200)]
wintun: merge opening device registry key
This also introduces waiting for key to appear on initial access.
See if this resolves the issue caused by HDD power-up delay resulting in
failure to create the adapter.
Signed-off-by: Simon Rozman <simon@rozman.si>
Simon Rozman [Fri, 2 Aug 2019 13:37:08 +0000 (15:37 +0200)]
wintun: simplify checking reboot requirement
We never checked checkReboot() reported error anyway.
Signed-off-by: Simon Rozman <simon@rozman.si>
Simon Rozman [Fri, 2 Aug 2019 12:53:02 +0000 (14:53 +0200)]
wintun: refactor `err == nil` error checking
Signed-off-by: Simon Rozman <simon@rozman.si>
Jason A. Donenfeld [Fri, 2 Aug 2019 12:37:09 +0000 (14:37 +0200)]
wintun: handle error for deadgwdetect
Jason A. Donenfeld [Fri, 2 Aug 2019 10:24:00 +0000 (12:24 +0200)]
tun: darwin: do not attempt to close tun.event twice
Previously it was possible for this to race. It turns out we really
don't need to set anything to -1 anyway.
Jason A. Donenfeld [Tue, 23 Jul 2019 12:58:46 +0000 (14:58 +0200)]
wintun: get interface path properly with cfgmgr
Jason A. Donenfeld [Tue, 23 Jul 2019 09:45:48 +0000 (11:45 +0200)]
tun: windows: style
Jason A. Donenfeld [Tue, 23 Jul 2019 09:45:13 +0000 (11:45 +0200)]
wintun: simplify resolution of dev node
Jason A. Donenfeld [Mon, 22 Jul 2019 15:01:27 +0000 (17:01 +0200)]
wintun: enable sharing of pnp node
Jason A. Donenfeld [Mon, 22 Jul 2019 07:37:20 +0000 (09:37 +0200)]
tun: windows: close event handle on shutdown
Jason A. Donenfeld [Fri, 19 Jul 2019 13:34:26 +0000 (15:34 +0200)]
ipc: windows: match SDDL of WDK and make monkeyable
Jason A. Donenfeld [Fri, 19 Jul 2019 11:51:56 +0000 (13:51 +0200)]
tun: windows: get rid of retry logic
Things work fine on Windows 8.
Jason A. Donenfeld [Fri, 19 Jul 2019 06:30:19 +0000 (08:30 +0200)]
tun: windows: use specific IOCTL code
Jason A. Donenfeld [Thu, 18 Jul 2019 17:34:45 +0000 (19:34 +0200)]
device: do not crash on nil'd bind in windows binding
Jason A. Donenfeld [Thu, 18 Jul 2019 17:26:25 +0000 (19:26 +0200)]
tun: windows: open file at startup time
Jason A. Donenfeld [Thu, 18 Jul 2019 13:48:34 +0000 (15:48 +0200)]
tun: windows: silently drop packet when ring is full
Jason A. Donenfeld [Thu, 18 Jul 2019 10:26:57 +0000 (12:26 +0200)]
tun: windows: switch to NDIS device object
Jason A. Donenfeld [Thu, 18 Jul 2019 08:25:12 +0000 (10:25 +0200)]
wintun: calculate path of NDIS device object symbolic link
Michael Zeltner [Wed, 17 Jul 2019 21:04:01 +0000 (23:04 +0200)]
tun: openbsd: don't change MTU when it's already the expected size
Allows for running wireguard-go as non-root user.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Jason A. Donenfeld [Wed, 17 Jul 2019 07:06:34 +0000 (09:06 +0200)]
tun: windows: spin for a bit before falling back to event object
Simon Rozman [Thu, 11 Jul 2019 08:35:47 +0000 (10:35 +0200)]
tun: windows: implement ring buffers
Signed-off-by: Simon Rozman <simon@rozman.si>
Jason A. Donenfeld [Thu, 11 Jul 2019 15:36:36 +0000 (17:36 +0200)]
device: immediately rekey all peers after changing device private key
Reported-by: Derrick Pallas <derrick@pallas.us>
Jason A. Donenfeld [Mon, 8 Jul 2019 12:52:49 +0000 (14:52 +0200)]
README: update windows info
Jason A. Donenfeld [Fri, 5 Jul 2019 05:54:25 +0000 (07:54 +0200)]
tun: windows: registration of write buffer no longer required
Jason A. Donenfeld [Fri, 5 Jul 2019 05:53:19 +0000 (07:53 +0200)]
tun: windows: decrease alignment to 4
Jason A. Donenfeld [Thu, 4 Jul 2019 20:41:42 +0000 (22:41 +0200)]
tun: windows: delay initial write
Otherwise we provoke Wintun 0.3.
Jason A. Donenfeld [Mon, 1 Jul 2019 13:24:50 +0000 (15:24 +0200)]
device: receive: uniform message for source address check
Jason A. Donenfeld [Mon, 1 Jul 2019 11:37:54 +0000 (13:37 +0200)]
tun: windows: packetNum is unused
Jason A. Donenfeld [Mon, 1 Jul 2019 13:23:24 +0000 (15:23 +0200)]
device: receive: simplify flush loop
Jason A. Donenfeld [Wed, 26 Jun 2019 11:27:48 +0000 (13:27 +0200)]
tun: windows: inform wintun of maximum buffer length for writes
Jason A. Donenfeld [Tue, 18 Jun 2019 14:08:28 +0000 (16:08 +0200)]
tun: windows: never retry open on Windows 10
Matt Layher [Mon, 10 Jun 2019 21:33:40 +0000 (17:33 -0400)]
tun: remove TUN prefix from types to reduce stutter elsewhere
Signed-off-by: Matt Layher <mdlayher@gmail.com>
Jason A. Donenfeld [Tue, 11 Jun 2019 16:13:52 +0000 (18:13 +0200)]
device: update transfer counters correctly
The rule is to always update them to the full packet size minus UDP/IP
encapsulation for all authenticated packet types.
Jason A. Donenfeld [Mon, 10 Jun 2019 22:33:07 +0000 (00:33 +0200)]
wintun: increase registry timeout
Jason A. Donenfeld [Mon, 10 Jun 2019 09:20:49 +0000 (11:20 +0200)]
wintun: add helper for cleaning up
Jason A. Donenfeld [Mon, 10 Jun 2019 09:10:49 +0000 (11:10 +0200)]
wintun: simplify error matching and remove dumb comments
Jason A. Donenfeld [Mon, 10 Jun 2019 09:02:18 +0000 (11:02 +0200)]
wintun: fix comments and remove hwnd param
This now looks more idiomatic.
Simon Rozman [Mon, 10 Jun 2019 06:47:47 +0000 (08:47 +0200)]
setupapi: add SetDeviceRegistryPropertyString description
Signed-off-by: Simon Rozman <simon@rozman.si>
Simon Rozman [Mon, 10 Jun 2019 06:47:16 +0000 (08:47 +0200)]
setupapi: unify ERROR_INSUFFICIENT_BUFFER handling
Signed-off-by: Simon Rozman <simon@rozman.si>
Jason A. Donenfeld [Sun, 9 Jun 2019 17:20:17 +0000 (19:20 +0200)]
wintun: allow controlling GUID
Jason A. Donenfeld [Sun, 9 Jun 2019 15:22:59 +0000 (17:22 +0200)]
setupapi: add DeviceInstanceID()
Jason A. Donenfeld [Thu, 6 Jun 2019 21:00:15 +0000 (23:00 +0200)]
global: fixup TODO comment spacing
Jason A. Donenfeld [Thu, 6 Jun 2019 20:28:13 +0000 (22:28 +0200)]
wintun: guid functions are upstream
Simon Rozman [Mon, 3 Jun 2019 12:16:34 +0000 (14:16 +0200)]
wintun: simplify DeleteInterface method signature
Signed-off-by: Simon Rozman <simon@rozman.si>
Jason A. Donenfeld [Wed, 5 Jun 2019 11:09:00 +0000 (13:09 +0200)]
wintun: don't run HrRenameConnection in separate thread
It's very slow, but unfortunately we haven't a choice. NLA needs this to
have completed.
Simon Rozman [Wed, 5 Jun 2019 09:55:28 +0000 (11:55 +0200)]
tun: windows: obsolete 256 packets per exchange buffer limitation
Signed-off-by: Simon Rozman <simon@rozman.si>
Simon Rozman [Tue, 4 Jun 2019 12:54:56 +0000 (14:54 +0200)]
setupapi, wintun: replace syscall with golang.org/x/sys/windows
Signed-off-by: Simon Rozman <simon@rozman.si>
Simon Rozman [Tue, 4 Jun 2019 11:57:36 +0000 (13:57 +0200)]
wintun: set DI_QUIETINSTALL flag for GUI-less device management
Signed-off-by: Simon Rozman <simon@rozman.si>
Simon Rozman [Mon, 3 Jun 2019 12:12:50 +0000 (14:12 +0200)]
setupapi: define PropChangeParams struct
This structure is required for calling DIF_PROPERTYCHANGE installer
class.
Signed-off-by: Simon Rozman <simon@rozman.si>
Matt Layher [Mon, 3 Jun 2019 20:25:32 +0000 (16:25 -0400)]
device: remove redundant return statements
More staticcheck fixes:
$ staticcheck ./... | grep S1023
device/noise-helpers.go:45:2: redundant return statement (S1023)
device/noise-helpers.go:54:2: redundant return statement (S1023)
device/noise-helpers.go:64:2: redundant return statement (S1023)
Signed-off-by: Matt Layher <mdlayher@gmail.com>
Matt Layher [Mon, 3 Jun 2019 20:44:06 +0000 (16:44 -0400)]
device: use bytes.Equal for equality check, simplify assertEqual
Signed-off-by: Matt Layher <mdlayher@gmail.com>
Matt Layher [Mon, 3 Jun 2019 19:46:46 +0000 (15:46 -0400)]
device, ratelimiter: replace uses of time.Now().Sub() with time.Since()
Simplification found by staticcheck:
$ staticcheck ./... | grep S1012
device/cookie.go:90:5: should use time.Since instead of time.Now().Sub (S1012)
device/cookie.go:127:5: should use time.Since instead of time.Now().Sub (S1012)
device/cookie.go:242:5: should use time.Since instead of time.Now().Sub (S1012)
device/noise-protocol.go:304:13: should use time.Since instead of time.Now().Sub (S1012)
device/receive.go:82:46: should use time.Since instead of time.Now().Sub (S1012)
device/send.go:132:5: should use time.Since instead of time.Now().Sub (S1012)
device/send.go:139:5: should use time.Since instead of time.Now().Sub (S1012)
device/send.go:235:59: should use time.Since instead of time.Now().Sub (S1012)
device/send.go:393:9: should use time.Since instead of time.Now().Sub (S1012)
ratelimiter/ratelimiter.go:79:10: should use time.Since instead of time.Now().Sub (S1012)
ratelimiter/ratelimiter.go:87:10: should use time.Since instead of time.Now().Sub (S1012)
Change applied using:
$ find . -type f -name "*.go" -exec sed -i "s/Now().Sub(/Since(/g" {} \;
Signed-off-by: Matt Layher <mdlayher@gmail.com>
Matt Layher [Mon, 3 Jun 2019 18:38:42 +0000 (14:38 -0400)]
ipc/winpipe: go fmt
Signed-off-by: Matt Layher <mdlayher@gmail.com>
Jason A. Donenfeld [Fri, 31 May 2019 13:40:08 +0000 (15:40 +0200)]
tun: windows: mitigate infinite loop in Flush()
It's possible that for whatever reason, we keep returning EOF, resulting
in repeated close/open/write operations, except with empty packets.
Jason A. Donenfeld [Thu, 30 May 2019 13:15:54 +0000 (15:15 +0200)]
device: add SendKeepalivesToPeersWithCurrentKeypair for handover