]> git.ipfire.org Git - thirdparty/wireguard-tools.git/log
thirdparty/wireguard-tools.git
4 years agoipc: add wireguard-nt support
Jason A. Donenfeld [Wed, 23 Jun 2021 13:43:39 +0000 (15:43 +0200)] 
ipc: add wireguard-nt support

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agocontrib/launchd: fix xml syntax error
Hangbin Liu [Mon, 17 May 2021 08:17:30 +0000 (16:17 +0800)] 
contrib/launchd: fix xml syntax error

The current plist xml gets error "DOCTYPE improperly terminated" with xml
syntax checker[1]. The example in apple doc[2] also doesn't have semicolon
at the end of DOCTYPE line.

[1] https://www.w3schools.com/xml/xml_validator.asp
[2] https://opensource.apple.com/source/launchd/launchd-257/launchd/doc/HOWTO.html

Fixes: b30e74b5956a ("wg-quick: darwin: support being called from launchd")
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoman: mention BSD debugging
Jason A. Donenfeld [Thu, 6 May 2021 10:54:29 +0000 (12:54 +0200)] 
man: mention BSD debugging

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoversion: bump v1.0.20210424
Jason A. Donenfeld [Sat, 24 Apr 2021 20:43:19 +0000 (16:43 -0400)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowg-quick: kill route monitor when loop terminates
Jason A. Donenfeld [Wed, 21 Apr 2021 03:31:45 +0000 (21:31 -0600)] 
wg-quick: kill route monitor when loop terminates

If the route monitor doesn't attempt to write more to stdout, then this
leaves a process hanging around. Kill it explicitly. We also switch to
using exec in the process substitution, to reduce a bash process.

Closes: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255286
Reported-by: Christos Chatzaras <chris@cretaforce.gr>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowg-quick: freebsd: use ifconfig for determining if interface is up
Jason A. Donenfeld [Mon, 19 Apr 2021 02:40:02 +0000 (20:40 -0600)] 
wg-quick: freebsd: use ifconfig for determining if interface is up

We no longer need the arp hack, as these bugs have been fixed in the
FreeBSD kernel.

This partially reverts 090639ae90fb45ac05e3158e1e31e5bf15fd9559.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowg-quick: freebsd: do not assume point-to-point interface flag
Jason A. Donenfeld [Tue, 23 Mar 2021 18:28:22 +0000 (12:28 -0600)] 
wg-quick: freebsd: do not assume point-to-point interface flag

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowg-quick: freebsd: check for socket using -S, not -f
Jason A. Donenfeld [Sun, 21 Mar 2021 16:15:32 +0000 (10:15 -0600)] 
wg-quick: freebsd: check for socket using -S, not -f

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoversion: bump v1.0.20210315
Jason A. Donenfeld [Mon, 15 Mar 2021 14:04:02 +0000 (08:04 -0600)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowg-quick: freebsd: avoid writing private keys to /tmp
Jason A. Donenfeld [Sun, 14 Mar 2021 04:20:19 +0000 (21:20 -0700)] 
wg-quick: freebsd: avoid writing private keys to /tmp

FreeBSD's bash doesn't handle <(...) safely, creating a temporary file
instead of using /proc/self/fd/N like on Linux. Work around this by
using a simple pipeline with /dev/stdin.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoipc: uniformly ignore preshared keys that are zero
Jason A. Donenfeld [Thu, 11 Mar 2021 22:35:15 +0000 (15:35 -0700)] 
ipc: uniformly ignore preshared keys that are zero

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoipc: freebsd: add initial FreeBSD support
Jason A. Donenfeld [Thu, 11 Mar 2021 03:24:40 +0000 (20:24 -0700)] 
ipc: freebsd: add initial FreeBSD support

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowg-quick: freebsd: add kernel support
Jason A. Donenfeld [Thu, 11 Mar 2021 04:17:59 +0000 (21:17 -0700)] 
wg-quick: freebsd: add kernel support

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowireguard-tools: drag in headers for prototypes
Kyle Evans [Wed, 10 Mar 2021 14:44:36 +0000 (08:44 -0600)] 
wireguard-tools: drag in headers for prototypes

ipc.c and terminal.c provide definitions for prototypes in their
respective headers, drag those in.

Signed-off-by: Kyle Evans <kevans@FreeBSD.org>
4 years agowireguard-tools: const correctness
Kyle Evans [Wed, 10 Mar 2021 14:43:56 +0000 (08:43 -0600)] 
wireguard-tools: const correctness

Fixes much of the noise from a FreeBSD WARNS=6 build of wg(8)

Signed-off-by: Kyle Evans <kevans@FreeBSD.org>
4 years agoMakefile: fix version indicator
Florian Eckert [Thu, 14 May 2020 09:35:20 +0000 (11:35 +0200)] 
Makefile: fix version indicator

If we execute `wg --version` we get a different version string that does
not match with the version string in the openwrt makefile.

Current version string:
`wireguard-tools vreboot-13159-gac5caa2718 -https://git.zx2c4.com/wireguard-tools/`

Corrected versions string:
`wireguard-tools v1.0.20200319 -https://git.zx2c4.com/wireguard-tools/`

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoversion: bump v1.0.20210223
Jason A. Donenfeld [Tue, 23 Feb 2021 18:32:18 +0000 (19:32 +0100)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoipc: read trailing responses after set operation
Jason A. Donenfeld [Wed, 27 Jan 2021 14:22:20 +0000 (15:22 +0100)] 
ipc: read trailing responses after set operation

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoman: LOG_LEVEL variables changed nae
Jason A. Donenfeld [Tue, 26 Jan 2021 22:02:37 +0000 (23:02 +0100)] 
man: LOG_LEVEL variables changed nae

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoipc: do not use fscanf with trailing \n
Jason A. Donenfeld [Mon, 25 Jan 2021 20:22:36 +0000 (21:22 +0100)] 
ipc: do not use fscanf with trailing \n

If the stream is not closed, then this winds up hanging forever. So
remove the trailing \n\n and check manually after.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agosticky-sockets: do not use SO_REUSEADDR
Jason A. Donenfeld [Fri, 18 Dec 2020 22:40:15 +0000 (23:40 +0100)] 
sticky-sockets: do not use SO_REUSEADDR

This makes little sense for unicast UDP sockets.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agocompletion: add help and syncconf completions
Jason A. Donenfeld [Sun, 13 Dec 2020 21:29:09 +0000 (22:29 +0100)] 
completion: add help and syncconf completions

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowincompat: do not elevate by default
Jason A. Donenfeld [Fri, 11 Dec 2020 13:17:27 +0000 (14:17 +0100)] 
wincompat: do not elevate by default

Elevation makes it detach from the console, which means the results are
hidden.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowincompat: add resource and manifest and enable lto
Jason A. Donenfeld [Fri, 11 Dec 2020 12:59:14 +0000 (13:59 +0100)] 
wincompat: add resource and manifest and enable lto

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowincompat: recent mingw has inet_ntop/inet_pton
Jason A. Donenfeld [Mon, 9 Nov 2020 10:46:01 +0000 (11:46 +0100)] 
wincompat: recent mingw has inet_ntop/inet_pton

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoembeddable-wg-library: sync latest from netlink.h
Jason A. Donenfeld [Thu, 29 Oct 2020 11:44:08 +0000 (12:44 +0100)] 
embeddable-wg-library: sync latest from netlink.h

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowg-quick: openbsd: no use for userspace support
Jason A. Donenfeld [Sun, 18 Oct 2020 20:27:22 +0000 (22:27 +0200)] 
wg-quick: openbsd: no use for userspace support

With alignment between the kernel and userspace, along with userspace
packages, we can now rely on the kernel in the future always having
wg(4).

This also simplifies the interface selection logic, and stores the
wg-quick interface name as the description.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowg-quick: android: do not free iterated pointer
Jason A. Donenfeld [Tue, 15 Sep 2020 14:19:49 +0000 (16:19 +0200)] 
wg-quick: android: do not free iterated pointer

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoversion: bump v1.0.20200827
Jason A. Donenfeld [Thu, 27 Aug 2020 08:22:09 +0000 (10:22 +0200)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoRevert "wg-quick: wait on process substitutions"
Jason A. Donenfeld [Thu, 27 Aug 2020 08:17:42 +0000 (10:17 +0200)] 
Revert "wg-quick: wait on process substitutions"

This reverts commit 26683f6c9ad18d9914b23312c221f27fd5ecab51, which
means the old problem comes back. That's an issue. But waiting on
process substitutions is not available with commonly used bash versions:

  # wg-quick up demo
  [#] ip link add demo type wireguard
  [#] wg setconf demo /dev/fd/63
  /usr/bin/wg-quick: line 251: wait: pid 2955 is not a child of this shell
  [#] ip link delete dev demo

This means we have to wait a few years before fixing this issue. IOW,
bash limitation; can't fix.

Reported-by: Theodore Mozzo <theodore.mozzo@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agowg-quick: android: use iproute2 to bring up interface instead of ndc
Jason A. Donenfeld [Tue, 25 Aug 2020 19:54:22 +0000 (21:54 +0200)] 
wg-quick: android: use iproute2 to bring up interface instead of ndc

Android 11's ndc regresses even more, but it turns out that netd doesn't
need to track up/down state via direct invocation, so just set the
interface up by way of normal iproute2.

Reported-by: Harsh Shandilya <me@msfjarvis.dev>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoversion: bump v1.0.20200820
Jason A. Donenfeld [Thu, 20 Aug 2020 10:06:22 +0000 (12:06 +0200)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: wait on process substitutions
Jason A. Donenfeld [Mon, 3 Aug 2020 08:18:40 +0000 (10:18 +0200)] 
wg-quick: wait on process substitutions

Bash does not propagate error values, which is a bummer, but process
substitutions are a useful feature. Introduce a new idiom to deal with
this: either "; wait $!" after the line to propagate the error, or "||
true" to indicate explicitly that we don't care about the error.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoctype: use non-locale-specific ctype.h
Jason A. Donenfeld [Tue, 4 Aug 2020 12:49:21 +0000 (14:49 +0200)] 
ctype: use non-locale-specific ctype.h

We also make these constant time, even though we're never distinguishing
between bits of a secret using them. From that perspective, though, this
is markedly better than the locale-specific table lookups in glibc, even
though base64 characters span two cache lines and valid private keys
must hit both.

Co-authored-by: Samuel Neves <sneves@dei.uc.pt>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Samuel Neves <sneves@dei.uc.pt>
5 years agopubkey: isblank is a subset of isspace
Jason A. Donenfeld [Tue, 4 Aug 2020 12:04:52 +0000 (14:04 +0200)] 
pubkey: isblank is a subset of isspace

Therefore, there's no need to test both.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoman: wg-quick: use syncconf instead of addconf for strip example
Jason A. Donenfeld [Tue, 28 Jul 2020 08:57:54 +0000 (10:57 +0200)] 
man: wg-quick: use syncconf instead of addconf for strip example

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agosystemd: add reload target to systemd unit
Domonkos P. Tomcsanyi [Fri, 24 Jul 2020 14:21:52 +0000 (16:21 +0200)] 
systemd: add reload target to systemd unit

Users can now run `systemctl reload wg-quick@wgnet0`, as described in
the wg-quick(8) man page. Note that this won't adjust Address=, DNS=, or
the various other non-wg(8) fields.

Signed-off-by: Domonkos P. Tomcsanyi <domi@tomcsanyi.net>
[zx2c4: use exec for bash commands to reduce excess forks, and rewrite
        commit message]
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowincompat: fold random into genkey
Jason A. Donenfeld [Tue, 26 May 2020 00:05:14 +0000 (18:05 -0600)] 
wincompat: fold random into genkey

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoipc: split into separate files per-platform
Jason A. Donenfeld [Mon, 25 May 2020 23:13:20 +0000 (17:13 -0600)] 
ipc: split into separate files per-platform

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoversion: bump v1.0.20200513
Jason A. Donenfeld [Thu, 14 May 2020 00:29:41 +0000 (18:29 -0600)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoipc: openbsd: switch to array ioctl interface
Jason A. Donenfeld [Wed, 13 May 2020 06:37:46 +0000 (00:37 -0600)] 
ipc: openbsd: switch to array ioctl interface

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: remember to install all systemd units
Jason A. Donenfeld [Tue, 12 May 2020 03:31:05 +0000 (21:31 -0600)] 
Makefile: remember to install all systemd units

Reported-by: Unit 193 <unit193@unit193.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoversion: bump v1.0.20200510
Jason A. Donenfeld [Mon, 11 May 2020 04:20:44 +0000 (22:20 -0600)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: cleanup openbsd support
Jason A. Donenfeld [Sun, 10 May 2020 06:58:31 +0000 (00:58 -0600)] 
wg-quick: cleanup openbsd support

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: add support for openbsd kernel implementation
Matt Dunwoodie [Sun, 10 May 2020 08:06:14 +0000 (02:06 -0600)] 
wg-quick: add support for openbsd kernel implementation

Signed-off-by: Matt Dunwoodie <ncon@noconroy.net>
5 years agoipc: cleanup openbsd support
Jason A. Donenfeld [Sun, 10 May 2020 06:24:46 +0000 (00:24 -0600)] 
ipc: cleanup openbsd support

We also add a wg_if.h in the fallback include path.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoipc: add support for openbsd kernel implementation
Matt Dunwoodie [Sun, 29 Dec 2019 01:48:38 +0000 (12:48 +1100)] 
ipc: add support for openbsd kernel implementation

Signed-off-by: Matt Dunwoodie <ncon@noconroy.net>
5 years agoipc: remove extra space
Jason A. Donenfeld [Sun, 10 May 2020 05:20:03 +0000 (23:20 -0600)] 
ipc: remove extra space

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: support dns search domains
Jason A. Donenfeld [Sat, 9 May 2020 05:15:50 +0000 (23:15 -0600)] 
wg-quick: support dns search domains

If DNS= has an IP in it, treat it as a DNS server. If DNS= has a non-IP
in it, treat it as a DNS search domain.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agosystemd: add wg-quick.target
Martin Hauke [Fri, 1 May 2020 21:55:55 +0000 (23:55 +0200)] 
systemd: add wg-quick.target

Add file wg-quick.target, which allows starting and stopping all
wg-quick@.service instances at once.

Signed-off-by: Martin Hauke <mardnh@gmx.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoterminal: specialize color_mode to stdout only
Jason A. Donenfeld [Tue, 21 Apr 2020 04:52:35 +0000 (22:52 -0600)] 
terminal: specialize color_mode to stdout only

By specializing this to stdout, we can cache the isatty result.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agogit: add gitattributes so tarball doesn't have gitignore files
Jason A. Donenfeld [Thu, 9 Apr 2020 05:51:16 +0000 (23:51 -0600)] 
git: add gitattributes so tarball doesn't have gitignore files

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: android: support application whitelist
Jason A. Donenfeld [Mon, 6 Apr 2020 01:38:11 +0000 (19:38 -0600)] 
wg-quick: android: support application whitelist

Prior we only supported a blacklist, but actually a whitelist is an
easier algorithm because that's internally how netd considers it, so we
don't need to find range spans. This commit adds an IncludedApplications
key.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agohighlighter: insist on 256-bit keys, not 257-bit or 258-bit
Jason A. Donenfeld [Sat, 4 Apr 2020 05:14:07 +0000 (23:14 -0600)] 
highlighter: insist on 256-bit keys, not 257-bit or 258-bit

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: simplify silent cleaning
Jason A. Donenfeld [Mon, 23 Mar 2020 06:06:24 +0000 (00:06 -0600)] 
Makefile: simplify silent cleaning

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoversion: bump v1.0.20200319
Jason A. Donenfeld [Thu, 19 Mar 2020 22:46:35 +0000 (16:46 -0600)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowincompat: use new protected prefix on Windows
Jason A. Donenfeld [Thu, 19 Mar 2020 22:33:14 +0000 (16:33 -0600)] 
wincompat: use new protected prefix on Windows

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowincompat: use string_list instead of inflatable_buffer
Jason A. Donenfeld [Thu, 19 Mar 2020 22:29:27 +0000 (16:29 -0600)] 
wincompat: use string_list instead of inflatable_buffer

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoman: add a warning to the SaveConfig description
Luis Ressel [Mon, 24 Feb 2020 12:00:08 +0000 (13:00 +0100)] 
man: add a warning to the SaveConfig description

Signed-off-by: Luis Ressel <aranea@aixah.de>
[zx2c4: slightly adjusted wording]
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoman: backlink wg-quick(8) in wg(8)
Jason A. Donenfeld [Wed, 12 Feb 2020 14:46:23 +0000 (15:46 +0100)] 
man: backlink wg-quick(8) in wg(8)

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoman: fix grammar in wg(8) and wg-quick(8)
Kai Haberzettl [Sat, 8 Feb 2020 20:23:47 +0000 (21:23 +0100)] 
man: fix grammar in wg(8) and wg-quick(8)

This fixes a few grammatical errors.

Signed-off-by: Kai Haberzettl <khaberz@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agocurve25519: squelch warnings on clang
Jason A. Donenfeld [Fri, 7 Feb 2020 14:46:59 +0000 (15:46 +0100)] 
curve25519: squelch warnings on clang

These are generic helper functions we don't want to move into the actual
implementations, so that it's easy to keep parity with the kernel code.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agonetlink: initialize mostly unused field
Jason A. Donenfeld [Thu, 6 Feb 2020 16:20:15 +0000 (17:20 +0100)] 
netlink: initialize mostly unused field

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoversion: bump v1.0.20200206
Jason A. Donenfeld [Thu, 6 Feb 2020 15:19:47 +0000 (16:19 +0100)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agonetlink: don't pretend that sysconf isn't a function
Jason A. Donenfeld [Wed, 5 Feb 2020 22:59:55 +0000 (23:59 +0100)] 
netlink: don't pretend that sysconf isn't a function

We can cache the value of this instead of evaluating every time.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agonetlink: remove libmnl requirement
Jason A. Donenfeld [Mon, 3 Feb 2020 15:52:29 +0000 (16:52 +0100)] 
netlink: remove libmnl requirement

It turns out that the binary actually gets smaller if we simply inline
the very small parts of libmnl that we need. Since we wind up needing
the mnlg bits anyway, there's little benefit in linking to libmnl.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoembeddable-wg-library: use newer string_list
Jason A. Donenfeld [Mon, 3 Feb 2020 15:35:01 +0000 (16:35 +0100)] 
embeddable-wg-library: use newer string_list

This ports 1d2d6200b8ff517db0f7530645180df3cc4afa74.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoextract-{handshakes,keys}: rework for upstream kernel
Jason A. Donenfeld [Fri, 31 Jan 2020 23:48:25 +0000 (00:48 +0100)] 
extract-{handshakes,keys}: rework for upstream kernel

Now that WireGuard has been upstreamed and the repos split, we have to
look elsewhere for these headers.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoman: document dynamic debug trick for Linux
Jason A. Donenfeld [Fri, 31 Jan 2020 22:17:12 +0000 (23:17 +0100)] 
man: document dynamic debug trick for Linux

This comes up occasionally, so it may be useful to mention its
possibility in the man page. At least the Arch Linux and Ubuntu kernels
support dynamic debugging, so this advise will at least help somebody.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: android: split uids into multiple commands
Jason A. Donenfeld [Fri, 31 Jan 2020 17:56:52 +0000 (18:56 +0100)] 
wg-quick: android: split uids into multiple commands

Different versions of netd have different limits on how many can be
passed at once.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reported-by: Alexey <zaranecc@bk.ru>
5 years agoversion: bump v1.0.20200121
Jason A. Donenfeld [Tue, 21 Jan 2020 14:51:31 +0000 (15:51 +0100)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: sort inputs to linker so that build is reproducible
Jason A. Donenfeld [Tue, 21 Jan 2020 12:05:42 +0000 (13:05 +0100)] 
Makefile: sort inputs to linker so that build is reproducible

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agonetlink: make sure to clear return value when trying again
Jason A. Donenfeld [Sat, 11 Jan 2020 17:16:13 +0000 (12:16 -0500)] 
netlink: make sure to clear return value when trying again

Otherwise this runs in an infinite loop if at some point a dump was
interrupted.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agofuzz: add set and setconf fuzzers
Jason A. Donenfeld [Sat, 11 Jan 2020 15:28:19 +0000 (16:28 +0100)] 
fuzz: add set and setconf fuzzers

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: evaluate git version lazily
Jason A. Donenfeld [Wed, 8 Jan 2020 22:59:58 +0000 (17:59 -0500)] 
Makefile: evaluate git version lazily

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agofuzz: add generic command argument fuzzer
Jason A. Donenfeld [Sat, 4 Jan 2020 14:34:28 +0000 (15:34 +0100)] 
fuzz: add generic command argument fuzzer

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoipc: simplify inflatable buffer and add fuzzer
Jason A. Donenfeld [Sat, 4 Jan 2020 13:46:27 +0000 (14:46 +0100)] 
ipc: simplify inflatable buffer and add fuzzer

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: add standard 'all' target
Jason A. Donenfeld [Fri, 3 Jan 2020 20:22:22 +0000 (21:22 +0100)] 
Makefile: add standard 'all' target

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reported-by: Bruno Wolff III <bruno@wolff.to>
5 years agoMakefile: remove pwd from compile output
Jason A. Donenfeld [Fri, 3 Jan 2020 11:36:10 +0000 (12:36 +0100)] 
Makefile: remove pwd from compile output

We previously included $(pwd) in the compile output pretty printer,
because it matched our parent out-of-tree module build. Since we're no
longer coupled to the module, we can return to a prettier scheme of just
using the object name.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Fixes: eb68ad07 ("Makefile: even prettier output")
5 years agoversion: bump v1.0.20200102
Jason A. Donenfeld [Thu, 2 Jan 2020 18:53:11 +0000 (19:53 +0100)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoglobal: bump copyright
Jason A. Donenfeld [Thu, 2 Jan 2020 18:52:25 +0000 (19:52 +0100)] 
global: bump copyright

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: quote ifname for nft
Jason A. Donenfeld [Sat, 28 Dec 2019 17:35:12 +0000 (18:35 +0100)] 
wg-quick: linux: quote ifname for nft

Otherwise nft(8) has strange ideas of what a string is.

Suggested-by: RistiCore <RistiCore@mail.ee>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: rework automatic version.h mangling
Jason A. Donenfeld [Fri, 27 Dec 2019 17:17:00 +0000 (18:17 +0100)] 
Makefile: rework automatic version.h mangling

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reported-by: Joe Doss <joe@solidadmin.com>
5 years agofuzz: find bugs when parsing uapi input
Jason A. Donenfeld [Fri, 27 Dec 2019 13:57:09 +0000 (14:57 +0100)] 
fuzz: find bugs when parsing uapi input

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agofuzz: find bugs in the config syntax parser
Jason A. Donenfeld [Fri, 27 Dec 2019 12:40:26 +0000 (13:40 +0100)] 
fuzz: find bugs in the config syntax parser

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoman: add documentation about removing explicit listen-port
Devin Smith [Fri, 27 Dec 2019 03:35:26 +0000 (21:35 -0600)] 
man: add documentation about removing explicit listen-port

Signed-off-by: Devin Smith <thundza@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agodns-hatchet: adjust path for new repo layout
Jason A. Donenfeld [Thu, 26 Dec 2019 17:10:37 +0000 (18:10 +0100)] 
dns-hatchet: adjust path for new repo layout

Reported-by: Joe Doss <joe@solidadmin.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: port static analysis check
Jason A. Donenfeld [Thu, 26 Dec 2019 15:54:25 +0000 (16:54 +0100)] 
Makefile: port static analysis check

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: DEBUG_TOOLS -> DEBUG and document
Jason A. Donenfeld [Thu, 26 Dec 2019 15:50:55 +0000 (16:50 +0100)] 
Makefile: DEBUG_TOOLS -> DEBUG and document

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agosystemd: update documentation URL
Jason A. Donenfeld [Thu, 26 Dec 2019 12:57:22 +0000 (13:57 +0100)] 
systemd: update documentation URL

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoversion: bump v1.0.20191226
Jason A. Donenfeld [Thu, 26 Dec 2019 12:59:11 +0000 (13:59 +0100)] 
version: bump

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoMakefile: add git versioning to dev builds
Jason A. Donenfeld [Thu, 26 Dec 2019 12:01:00 +0000 (13:01 +0100)] 
Makefile: add git versioning to dev builds

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agoREADME: consolidate with INSTALL and rewrite
Jason A. Donenfeld [Thu, 26 Dec 2019 11:19:23 +0000 (12:19 +0100)] 
README: consolidate with INSTALL and rewrite

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg: include tools version
Jason A. Donenfeld [Thu, 26 Dec 2019 11:30:12 +0000 (12:30 +0100)] 
wg: include tools version

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg: add back source formerly shared with kernel module
Jason A. Donenfeld [Thu, 26 Dec 2019 11:09:53 +0000 (12:09 +0100)] 
wg: add back source formerly shared with kernel module

We used to reach back into parent directories for this, but with the
repo split, we now require our own copy.

We use -idirafter in case system headers are installed for the
wireguard.h netlink definitions.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agogitignore: trim down to basics
Jason A. Donenfeld [Thu, 26 Dec 2019 11:02:11 +0000 (12:02 +0100)] 
gitignore: trim down to basics

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: use already configured addresses instead of in-memory
Jason A. Donenfeld [Tue, 17 Dec 2019 13:14:13 +0000 (14:14 +0100)] 
wg-quick: linux: use already configured addresses instead of in-memory

The ADDRESSES array might not have addresses added during PreUp. But
moreover, nft(8) and iptables(8) don't like ip addresses in the form
somev6prefix::someipv4suffix, such as fd00::1.2.3.4, while ip(8) can
handle it. So by adding these first and then asking for them back, we
always get normalized addresses suitable for nft(8) and iptables(8).

Reported-by: Silvan Nagl <mail@53c70r.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg: adjust wg.8 syntax for consistency in COMMANDS section
Kai Haberzettl [Fri, 13 Dec 2019 07:42:30 +0000 (08:42 +0100)] 
wg: adjust wg.8 syntax for consistency in COMMANDS section

Signed-off-by: Kai Haberzettl <khaberz@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: try both iptables(8) and nft(8) on teardown
Jason A. Donenfeld [Thu, 12 Dec 2019 16:24:04 +0000 (17:24 +0100)] 
wg-quick: linux: try both iptables(8) and nft(8) on teardown

Daniel argues that technically a package manager could install nft(8)
after previously having started wg-quick(8) using iptables(8).

Suggested-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: support older nft(8)
Jason A. Donenfeld [Tue, 10 Dec 2019 21:51:40 +0000 (22:51 +0100)] 
wg-quick: linux: support older nft(8)

Older nft(8), such as that on Ubuntu, does not accept the - parameter to
the -f argument and doesn't accept symbolic priority names. So instead
use the canonical numeric priority forms and use <(echo) instead of -.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>