summaryrefslogtreecommitdiffhomepage
path: root/tun
AgeCommit message (Collapse)Author
2019-09-07tun: openbsd: check for interface already being upJason 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-05namespaceapi: AddSIDToBoundaryDescriptor modifies the handleJason A. Donenfeld
2019-09-01wintun: take mutex first alwaysJason A. Donenfeld
This prevents an ABA deadlock with setupapi's internal locks.
2019-09-01wintun: consider abandoned mutexes as releasedJason A. Donenfeld
2019-08-30wintun: put mutex into private namespaceJason A. Donenfeld
2019-08-30namespaceapi: fix mistakeJason A. Donenfeld
2019-08-30namespaceapi: initial versionSimon Rozman
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-30wintun: take mutex so that deletion uses the right nameJason A. Donenfeld
2019-08-29wintun: move ring constants into moduleJason A. Donenfeld
2019-08-29wintun: delete all interfaces is not used anymoreJason A. Donenfeld
2019-08-29wintun: Wintun->InterfaceJason A. Donenfeld
2019-08-29wintun: keep reference to pool in wintun objectJason A. Donenfeld
2019-08-29wintun: introduce adapter poolsSimon Rozman
This makes wintun package reusable for non-WireGuard applications. Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-28wintun: simplify rename logicJason A. Donenfeld
2019-08-28wintun: give better errors when ndis interface listing failsJason A. Donenfeld
2019-08-28wintun: also check for numbered suffix and friendly nameJason A. Donenfeld
2019-08-28wintun: upgrade deleting all interfaces and make it reusableSimon 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-27wintun: cleanup earlierJason A. Donenfeld
2019-08-27wintun: rename duplicate adapters instead of ourselvesJason A. Donenfeld
2019-08-26wintun: match suffix numbersJason A. Donenfeld
2019-08-24wintun: make description consistent across fieldsJason A. Donenfeld
2019-08-22wintun: try multiple names until one isn't a duplicateJason A. Donenfeld
2019-08-21wintun: use nci.dll directly instead of buggy netshellJason A. Donenfeld
2019-08-20wintun: set friendly a bit betterJason A. Donenfeld
This is still wrong, but NETSETUPPKEY_Driver_FriendlyName seems a bit tricky to use.
2019-08-19wintun: also set friendly name after setting interface nameJason A. Donenfeld
2019-08-19wintun: defer requires unique variableJason A. Donenfeld
2019-08-19wintun: set adapter description nameJason A. Donenfeld
2019-08-19tun: windows: don't spin unless we really need itJason A. Donenfeld
2019-08-03tun: windows: spin for only a millisecond/80Jason A. Donenfeld
Performance stays the same as before.
2019-08-02wintun: merge opening device registry keySimon Rozman
This also introduces waiting for key to appear on initial access. See if this resolves the issue caused by HDD power-up delay resulting in failure to create the adapter. Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-02wintun: simplify checking reboot requirementSimon Rozman
We never checked checkReboot() reported error anyway. Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-02wintun: refactor `err == nil` error checkingSimon Rozman
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-02wintun: handle error for deadgwdetectJason A. Donenfeld
2019-08-02tun: darwin: do not attempt to close tun.event twiceJason A. Donenfeld
Previously it was possible for this to race. It turns out we really don't need to set anything to -1 anyway.
2019-07-23wintun: get interface path properly with cfgmgrJason A. Donenfeld
2019-07-23tun: windows: styleJason A. Donenfeld
2019-07-23wintun: simplify resolution of dev nodeJason A. Donenfeld
2019-07-22wintun: enable sharing of pnp nodeJason A. Donenfeld
2019-07-22tun: windows: close event handle on shutdownJason A. Donenfeld
2019-07-19tun: windows: get rid of retry logicJason A. Donenfeld
Things work fine on Windows 8.
2019-07-19tun: windows: use specific IOCTL codeJason A. Donenfeld
2019-07-18tun: windows: open file at startup timeJason A. Donenfeld
2019-07-18tun: windows: silently drop packet when ring is fullJason A. Donenfeld
2019-07-18tun: windows: switch to NDIS device objectJason A. Donenfeld
2019-07-18wintun: calculate path of NDIS device object symbolic linkJason A. Donenfeld
2019-07-18tun: openbsd: don't change MTU when it's already the expected sizeMichael Zeltner
Allows for running wireguard-go as non-root user. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-07-18tun: windows: spin for a bit before falling back to event objectJason A. Donenfeld
2019-07-17tun: windows: implement ring buffersSimon Rozman
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-07-05tun: windows: registration of write buffer no longer requiredJason A. Donenfeld
2019-07-05tun: windows: decrease alignment to 4Jason A. Donenfeld