<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wintun/api, branch sr/api-improvements</title>
<subtitle>Layer 3 TUN Driver for Windows</subtitle>
<id>https://git.zx2c4.com/wintun/atom/api?h=sr%2Fapi-improvements</id>
<link rel='self' href='https://git.zx2c4.com/wintun/atom/api?h=sr%2Fapi-improvements'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wintun/'/>
<updated>2021-04-13T21:56:04Z</updated>
<entry>
<title>Allow packet over-allocation on send</title>
<updated>2021-04-13T21:56:04Z</updated>
<author>
<name>Simon Rozman</name>
<email>simon@rozman.si</email>
</author>
<published>2021-04-12T11:08:42Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wintun/commit/?id=47b16dc884992d9c100bc0161d4ca6776a3cd507'/>
<id>urn:sha1:47b16dc884992d9c100bc0161d4ca6776a3cd507</id>
<content type='text'>
Should client desire to prepare packets for Wintun inside the ring
memory (e.g. to reduce memory copying), the final sending packet size is
not always known at the WintunAllocateSendPacket() time.

This commit modifies Wintun to calculate the packet size on delivery to
NDIS. The packet size is derived from IPv4/IPv6 packet header.

Signed-off-by: Simon Rozman &lt;simon@rozman.si&gt;
</content>
</entry>
<entry>
<title>Allow optional padding before and after layer 3 packets</title>
<updated>2021-04-13T21:56:04Z</updated>
<author>
<name>Simon Rozman</name>
<email>simon@rozman.si</email>
</author>
<published>2021-04-10T13:33:01Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wintun/commit/?id=564a883e23fff00140c10271f08b37dc649d57c8'/>
<id>urn:sha1:564a883e23fff00140c10271f08b37dc649d57c8</id>
<content type='text'>
To avoid additional packet memory allocation and copy when sending or
receiving packets, this commit introduces additional available space
before and after layer 3 IPv4 or IPv6 packet in the Wintun rings. Wintun
will ignore data in those areas.

Requested-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
Signed-off-by: Simon Rozman &lt;simon@rozman.si&gt;
</content>
</entry>
<entry>
<title>api: log Windows error message too when creating folder or file fails</title>
<updated>2021-04-13T21:50:50Z</updated>
<author>
<name>Simon Rozman</name>
<email>simon@rozman.si</email>
</author>
<published>2021-04-13T10:09:13Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wintun/commit/?id=d35312d33f95a0250ccfac1f9a58729fb16f287f'/>
<id>urn:sha1:d35312d33f95a0250ccfac1f9a58729fb16f287f</id>
<content type='text'>
Signed-off-by: Simon Rozman &lt;simon@rozman.si&gt;
</content>
</entry>
<entry>
<title>api: fix fallback log line printf template</title>
<updated>2021-04-10T11:37:22Z</updated>
<author>
<name>Simon Rozman</name>
<email>simon@rozman.si</email>
</author>
<published>2021-04-10T11:37:22Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wintun/commit/?id=3a8dbb6ae2e91a5b977641d84e86fdf4d51f1ad5'/>
<id>urn:sha1:3a8dbb6ae2e91a5b977641d84e86fdf4d51f1ad5</id>
<content type='text'>
Signed-off-by: Simon Rozman &lt;simon@rozman.si&gt;
</content>
</entry>
<entry>
<title>Fix © in resources</title>
<updated>2021-03-19T11:04:23Z</updated>
<author>
<name>Simon Rozman</name>
<email>simon@rozman.si</email>
</author>
<published>2021-03-19T10:55:58Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wintun/commit/?id=2f1d1ab8273f6d574f8e28261ddfc72ac4f8015d'/>
<id>urn:sha1:2f1d1ab8273f6d574f8e28261ddfc72ac4f8015d</id>
<content type='text'>
The \xa9 is © on Windows-125x code pages. When Wintun was compiled on a
Windows computer using UTF-8 as default code page (for "non-Unicode"
programs), the Copyright notice in resources was wrong.

Signed-off-by: Simon Rozman &lt;simon@rozman.si&gt;
</content>
</entry>
<entry>
<title>project: add support for intermediate versioning</title>
<updated>2021-03-19T10:52:11Z</updated>
<author>
<name>Simon Rozman</name>
<email>simon@rozman.si</email>
</author>
<published>2021-03-19T10:52:11Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wintun/commit/?id=a6fa9c1b678c8bd4212cae6b2a55fb7b279b6c6e'/>
<id>urn:sha1:a6fa9c1b678c8bd4212cae6b2a55fb7b279b6c6e</id>
<content type='text'>
While the Wintun driver is typically released only at &lt;major&gt;.&lt;minor&gt;
milestones, the wintun.dll did see some intermediate releases.

To make MSI logic correctly decide to upgrade local wintun.dll file, the
version inscribed in wintun.dll file resources should increment in those
intermediate releases. MSI ignores file timestamps. One could use
REINSTALLMODE=emus Installer property to force copying wintun.dll when
its version doesn't change. But REINSTALLMODE applies to all files in
the MSI session and would be an additional requirement when authoring
MSI packages with wintun.dll.

Bumping only the final ZIP filename version is not sufficient.

Therefore, a &lt;major&gt;.&lt;minor&gt; or &lt;major&gt;.&lt;minor&gt;.&lt;build&gt; versioning is
introduced. Furthermore, we no longer distinguish between WintunVersion
and WintunVersionStr. All our releases used strictly numeric
&lt;major&gt;.&lt;minor&gt; notation, making WintunVersion and WintunVersionStr
always the same.

When the driver didn't change, just bump the version in wintun.proj and
run `msbuild wintun.proj /t:Zip` to rebuild the wintun.dll and make the
new ZIP file.

Signed-off-by: Simon Rozman &lt;simon@rozman.si&gt;
</content>
</entry>
<entry>
<title>api: make .h filenames lowercase for building with MinGW on Linux</title>
<updated>2021-03-16T09:11:00Z</updated>
<author>
<name>Simon Rozman</name>
<email>simon@rozman.si</email>
</author>
<published>2021-03-16T09:11:00Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wintun/commit/?id=1ccd623e94197fd93d5380b90d5476343c078a9f'/>
<id>urn:sha1:1ccd623e94197fd93d5380b90d5476343c078a9f</id>
<content type='text'>
MinGW supplies all Windows header files using lowercase filenames.
This makes some of the #include lines in wintun.h fail to resolve the
.h files correctly on a case-sensitive filesystem.

Signed-off-by: Simon Rozman &lt;simon@rozman.si&gt;
</content>
</entry>
<entry>
<title>api: elevate to SYSTEM in WintunEnumAdapters()</title>
<updated>2021-03-08T12:48:29Z</updated>
<author>
<name>Simon Rozman</name>
<email>simon@rozman.si</email>
</author>
<published>2021-03-08T12:48:29Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wintun/commit/?id=cef79225560bd454cb5c49d8d2b0cfac869de8d3'/>
<id>urn:sha1:cef79225560bd454cb5c49d8d2b0cfac869de8d3</id>
<content type='text'>
The WintunEnumAdapters() requires namespace mutex. However,
NamespaceTakePoolMutex() works as SYSTEM user only.

WireGuard is using the WintunEnumAdapters() in its manager service to
cleanup stale adapters. As the WireGuard manager service is running as
SYSTEM, this requirement was not apparent before.

This commit also extends the example project to list its existing
adapters at start.

Signed-off-by: Simon Rozman &lt;simon@rozman.si&gt;
</content>
</entry>
<entry>
<title>api: upgrade logging</title>
<updated>2021-02-16T03:19:21Z</updated>
<author>
<name>Simon Rozman</name>
<email>simon@rozman.si</email>
</author>
<published>2021-02-02T12:12:45Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wintun/commit/?id=bc5cde89160e706789ec9cdadd06be8127d086f9'/>
<id>urn:sha1:bc5cde89160e706789ec9cdadd06be8127d086f9</id>
<content type='text'>
Log runtime information to quickly check whether the values are sane
when analyzing error logs sent in by users.

Signed-off-by: Simon Rozman &lt;simon@rozman.si&gt;
</content>
</entry>
<entry>
<title>api: tighten function parameter code analysis annotations</title>
<updated>2021-02-04T18:00:17Z</updated>
<author>
<name>Simon Rozman</name>
<email>simon@rozman.si</email>
</author>
<published>2021-02-02T11:53:40Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wintun/commit/?id=542a281808a7ae6eddab0b2e977d519ef37e162f'/>
<id>urn:sha1:542a281808a7ae6eddab0b2e977d519ef37e162f</id>
<content type='text'>
Signed-off-by: Simon Rozman &lt;simon@rozman.si&gt;
</content>
</entry>
</feed>
