wireguard-go on windows
Matt Layher
mdlayher at gmail.com
Thu Feb 25 20:14:58 UTC 2021
A glance at
https://github.com/WireGuard/wgctrl-go/blob/master/internal/wguser/parse.go#L48
seems to indicate that we treat the first "blank" line produced by
bufio.Scanner (which strips \n) as a sentinel to stop parsing, which
would mean something like "errno=0\n\n" would parse the errno and be
done once it interprets the final line "\n".
The tests seem to indicate this works as expected, but I don't regularly
develop on Windows and welcome PRs if something has changed.
- Matt
On 2/25/21 12:54 PM, Jason A. Donenfeld wrote:
> + Matt Layher
>
> Hi Davanath,
>
>> We are trying to use wgctrl way of configuring the wireguard devices
>> and facing issues while creating/configuring the wireguard device on
>> windows.
>>
>> 1) First problem was while creating the wintun device using wintun.dll
>> and using wgctrl for configuring it. It hangs in
>> wgclient.ConfigureDevice api()
> wgctrl works with wireguard. wireguard uses wintun, but wireguard is not wintun.
>
>> 2) So tried to first create the device through wireguard.exe. And then
>> used wgctrl way to configure it, but wgClient.Devices() is not able to
>> get the devices on our test windows boxes (even though it works on my
>> development machine)
> This sounds like a potential bug in wgctrl.
>
> Matt -- I wonder if there's a bug in the parser, recently unearthed by
> a change in wireguard-go. Specifically, uapi stipulates that requests
> and responses end with \n\n. Is it possible that you're relying on the
> socket to EOF, instead of looking for the \n\n? Recent wireguard-go
> keeps the socket open, in case you want to send one request after
> another.
>
> Jason
More information about the WireGuard
mailing list