Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-05-02 | wintun: make remaining HWID comparisons case insensitive | Simon Rozman | |
c85e4a410f27986a2967a49c0155633c716bf3ca introduced preliminary HWID checking to speed up Wintun adapter enumeration. However, all HWID are case insensitive by Windows convention. Furthermore, a device might have multiple HWIDs. When DevInfo's DeviceRegistryProperty(SPDRP_HARDWAREID) method returns []string, all strings returned should be checked against given hardware ID. This issue was discovered when researching Wintun and wireguard-go on Windows 10 ARM64. The Wintun adapter was created using devcon.exe utility with "wintun" hardware ID, causing wireguard-go fail to enumerate the adapter properly. Signed-off-by: Simon Rozman <simon@rozman.si> | |||
2020-05-02 | setupapi: extend struct size constant definitions for arm(64) | Simon Rozman | |
Signed-off-by: Simon Rozman <simon@rozman.si> | |||
2020-05-02 | tun: return a better error message if /dev/net/tun doesn't exist | Brad Fitzpatrick | |
It was just returning "no such file or directory" (the String of the syscall.Errno returned by CreateTUN). Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com> | |||
2020-05-02 | tun: NetlinkListener: don't send EventDown before sending EventUp | Avery Pennarun | |
This works around a startup race condition when competing with HackListener, which is trying to do the same job. If HackListener detects that the tundev is running while there is still an event in the netlink queue that says it isn't running, then the device receives a string of events like EventUp (HackListener) EventDown (NetlinkListener) EventUp (NetlinkListener) Unfortunately, after the first EventDown, the device stops itself, thinking incorrectly that the administrator has downed its tundev. The device is ignoring the initial EventDown anyway, so just don't emit it. Signed-off-by: Avery Pennarun <apenwarr@tailscale.com> | |||
2020-05-02 | tuntest: split out testing package | David Crawshaw | |
This code is useful to other packages writing tests. Signed-off-by: David Crawshaw <crawshaw@tailscale.com> | |||
2020-05-02 | tun: fix data race on name field | Brad Fitzpatrick | |
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com> | |||
2020-05-02 | tun: remove unused isUp method | Brad Fitzpatrick | |
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com> | |||
2020-05-02 | wintun: split error message for create vs open namespace. | Avery Pennarun | |
Signed-off-by: Avery Pennarun <apenwarr@tailscale.com> | |||
2020-03-17 | global: use RTMGRP_* consts from x/sys/unix | Tobias Klauser | |
Update the golang.org/x/sys/unix dependency and use the newly introduced RTMGRP_* consts instead of using the corresponding RTNLGRP_* const to create a mask. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> | |||
2020-01-15 | tun: darwin: ignore ENOMEM errors | Jason A. Donenfeld | |
Coauthored-by: Andrej Mihajlov <and@mullvad.net> | |||
2020-01-07 | tun: windows: serialize write calls | Jason A. Donenfeld | |
2019-11-22 | wintun: manage ring memory manually | Jason A. Donenfeld | |
It's large and Go's garbage collector doesn't deal with it especially well. | |||
2019-10-22 | global: fix a few typos courtesy of codespell | Jonathan Tooker | |
Signed-off-by: Jonathan Tooker <jonathan.tooker@netprotect.com> | |||
2019-10-21 | namespaceapi: remove tasteless comment | Jason A. Donenfeld | |
2019-10-17 | wintun: normalize variable names for their types | Jason A. Donenfeld | |
2019-10-17 | wintun: quickly ignore non-Wintun devices | Avery Pennarun | |
Some devices take ~2 seconds to enumerate on Windows if we try to get their instance name. The hardware id property, on the other hand, is available right away. Signed-off-by: Avery Pennarun <apenwarr@gmail.com> [zx2c4: inlined this to where it makes sense, reused setupapi const] | |||
2019-10-17 | tun: match windows CreateTUN signature to the Linux variant | Avery Pennarun | |
Signed-off-by: Avery Pennarun <apenwarr@gmail.com> [zx2c4: fix default value] | |||
2019-10-08 | wintun: expose version | Jason A. Donenfeld | |
2019-10-04 | mod: bump versions | Jason A. Donenfeld | |
2019-09-16 | winpipe: use x/sys/windows instead of syscall | Jason A. Donenfeld | |
2019-09-16 | wintun: use correct length for security attributes | Jason A. Donenfeld | |
2019-09-08 | tun: windows: unify error message format | Jason A. Donenfeld | |
2019-09-07 | tun: openbsd: check for interface already being up | Jason A. Donenfeld | |
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> | |||
2019-09-05 | namespaceapi: AddSIDToBoundaryDescriptor modifies the handle | Jason A. Donenfeld | |
2019-09-01 | wintun: take mutex first always | Jason A. Donenfeld | |
This prevents an ABA deadlock with setupapi's internal locks. | |||
2019-09-01 | wintun: consider abandoned mutexes as released | Jason A. Donenfeld | |
2019-08-30 | wintun: put mutex into private namespace | Jason A. Donenfeld | |
2019-08-30 | namespaceapi: fix mistake | Jason A. Donenfeld | |
2019-08-30 | namespaceapi: initial version | Simon Rozman | |
Signed-off-by: Simon Rozman <simon@rozman.si> | |||
2019-08-30 | wintun: take mutex so that deletion uses the right name | Jason A. Donenfeld | |
2019-08-29 | wintun: move ring constants into module | Jason A. Donenfeld | |
2019-08-29 | wintun: delete all interfaces is not used anymore | Jason A. Donenfeld | |
2019-08-29 | wintun: Wintun->Interface | Jason A. Donenfeld | |
2019-08-29 | wintun: keep reference to pool in wintun object | Jason A. Donenfeld | |
2019-08-29 | wintun: introduce adapter pools | Simon Rozman | |
This makes wintun package reusable for non-WireGuard applications. Signed-off-by: Simon Rozman <simon@rozman.si> | |||
2019-08-28 | wintun: simplify rename logic | Jason A. Donenfeld | |
2019-08-28 | wintun: give better errors when ndis interface listing fails | Jason A. Donenfeld | |
2019-08-28 | wintun: also check for numbered suffix and friendly name | Jason A. Donenfeld | |
2019-08-28 | wintun: upgrade deleting all interfaces and make it reusable | Simon Rozman | |
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> | |||
2019-08-27 | wintun: cleanup earlier | Jason A. Donenfeld | |
2019-08-27 | wintun: rename duplicate adapters instead of ourselves | Jason A. Donenfeld | |
2019-08-26 | wintun: match suffix numbers | Jason A. Donenfeld | |
2019-08-24 | wintun: make description consistent across fields | Jason A. Donenfeld | |
2019-08-22 | wintun: try multiple names until one isn't a duplicate | Jason A. Donenfeld | |
2019-08-21 | wintun: use nci.dll directly instead of buggy netshell | Jason A. Donenfeld | |
2019-08-20 | wintun: set friendly a bit better | Jason A. Donenfeld | |
This is still wrong, but NETSETUPPKEY_Driver_FriendlyName seems a bit tricky to use. | |||
2019-08-19 | wintun: also set friendly name after setting interface name | Jason A. Donenfeld | |
2019-08-19 | wintun: defer requires unique variable | Jason A. Donenfeld | |
2019-08-19 | wintun: set adapter description name | Jason A. Donenfeld | |
2019-08-19 | tun: windows: don't spin unless we really need it | Jason A. Donenfeld | |