<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-tools, branch master</title>
<subtitle>Required tools for WireGuard, such as wg(8) and wg-quick(8)</subtitle>
<id>https://git.zx2c4.com/wireguard-tools/atom/?h=master</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-tools/atom/?h=master'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-tools/'/>
<updated>2026-05-06T21:21:24Z</updated>
<entry>
<title>wg-quick: darwin: properly parse netstat -nr output</title>
<updated>2026-05-06T21:21:24Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2026-05-06T21:21:24Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-tools/commit/?id=a998407747005ea7e4e0258d96f105c97241e1d3'/>
<id>urn:sha1:a998407747005ea7e4e0258d96f105c97241e1d3</id>
<content type='text'>
Looking at the source [1], it appears that the interface is always the
4th argument, regardless of the family:

C1.	if (fam != old_fam) // FALSE

P1.	p_sockaddr(params, &amp;addr.u_sa, &amp;mask.u_sa, rtm-&gt;rtm_flags,
	    WID_DST(addr.u_sa.sa_family));

P2.	p_sockaddr(params, rti_info[RTAX_GATEWAY], NULL, RTF_HOST,
	    WID_GW(addr.u_sa.sa_family));

C2.	if (params-&gt;lflag &amp;&amp; (rtm-&gt;rtm_addrs &amp; RTA_IFA)) // FALSE

P3.	p_flags(rtm-&gt;rtm_flags, "%-10.10s ");

C3.	if (params-&gt;lflag) // FALSE

P4. 	printf("%*.*s", WID_IF(addr.u_sa.sa_family),
		WID_IF(addr.u_sa.sa_family), ifname);

Because C1, C2, and C3 evaluate to false, interface is always in the 4th
argument.

[1] https://github.com/apple-oss-distributions/network_cmds/blob/97e27e6244c16d399bfeb254315ddc5828711c56/netstat.tproj/route.c#L328

Reported-by: Florian Uekermann &lt;florian@uekermann.me&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>ipc: freebsd: add allowed-ip flags support for FreeBSD</title>
<updated>2026-03-24T02:27:26Z</updated>
<author>
<name>Kyle Evans</name>
<email>kevans@FreeBSD.org</email>
</author>
<published>2025-06-26T02:57:03Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-tools/commit/?id=025f00454fec8fd0816607a28c1ee6cd9a54b134'/>
<id>urn:sha1:025f00454fec8fd0816607a28c1ee6cd9a54b134</id>
<content type='text'>
The FreeBSD kernel flags will match what we define here in wg(8), just
pass them through and let the kernel sort it out.

Signed-off-by: Kyle Evans &lt;kevans@FreeBSD.org&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>ipc: windows: support incremental allowed ips updates</title>
<updated>2026-03-24T02:22:51Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2026-03-24T02:22:51Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-tools/commit/?id=06a99cce2c9998f53eb30d2f258a9e5ff286445b'/>
<id>urn:sha1:06a99cce2c9998f53eb30d2f258a9e5ff286445b</id>
<content type='text'>
Following the Linux case, now support the same API on Windows.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>global: bump copyright</title>
<updated>2026-03-21T11:20:43Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2026-03-21T11:20:43Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-tools/commit/?id=997ffa0c89b4a6a3998325ceeb55588bb0cf8017'/>
<id>urn:sha1:997ffa0c89b4a6a3998325ceeb55588bb0cf8017</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>wg: windows: raise min windows version to 10</title>
<updated>2026-03-21T10:42:07Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2026-03-20T21:07:25Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-tools/commit/?id=1090b17df4ad07a9f46f5723ad4f8e3839484dea'/>
<id>urn:sha1:1090b17df4ad07a9f46f5723ad4f8e3839484dea</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>version: bump</title>
<updated>2026-02-23T22:24:27Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2026-02-23T22:24:27Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-tools/commit/?id=49ce333da02056ae7b22ee2aeb6afe8aaed79b19'/>
<id>urn:sha1:49ce333da02056ae7b22ee2aeb6afe8aaed79b19</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>syncconf: account for persistent keepalive removed from config file</title>
<updated>2026-02-23T22:23:04Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2025-05-23T18:22:37Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-tools/commit/?id=0a81a174dbde2371ddcf4b602ba0ecda3c5dbd67'/>
<id>urn:sha1:0a81a174dbde2371ddcf4b602ba0ecda3c5dbd67</id>
<content type='text'>
Otherwise removing a persistent keepalive from a config file wouldn't
reflect on the runtime state.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>config: preserve const correctness</title>
<updated>2026-02-23T22:10:51Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2026-02-23T22:10:48Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-tools/commit/?id=ede2c4804245d4069b629ef6e8c670ca033afdfc'/>
<id>urn:sha1:ede2c4804245d4069b629ef6e8c670ca033afdfc</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>wg-quick@.service: add deps on wg-quick.target</title>
<updated>2026-02-23T22:02:07Z</updated>
<author>
<name>Doug Freed</name>
<email>dwfreed@mtu.edu</email>
</author>
<published>2023-04-03T05:58:55Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-tools/commit/?id=0cbe9938e1b1435a6ac394309c4884340240bb44'/>
<id>urn:sha1:0cbe9938e1b1435a6ac394309c4884340240bb44</id>
<content type='text'>
These dependencies ensure that instances of this service are started
before wg-quick.target is considered started, allowing other services
to depend on wg-quick.target to mean "all wg-quick services are started"

Signed-off-by: Doug Freed &lt;dwfreed@mtu.edu&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>wg-quick: linux: do not unnecessarily set sysctl</title>
<updated>2026-02-23T21:54:42Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2026-02-23T21:54:42Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-tools/commit/?id=ac74ed6d7dd4d77f56c7f05c053a5e645e0e33a0'/>
<id>urn:sha1:ac74ed6d7dd4d77f56c7f05c053a5e645e0e33a0</id>
<content type='text'>
In some restrictive container namespaces, sysctl is locked down and
can't be changed. This shouldn't be a problem, though, at least in
theory, because net.ipv4.conf.all.src_valid_mark is already 1. However,
currently wg-quick unconditionally sets it. Instead, check to see if
it's already 1 before trying make it 1.

Suggested-by: Dean P &lt;dean@apakossa.org&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
</feed>
