Brad Fitzpatrick
0f4809f366
tun: make NativeTun.Close well behaved, not crash on double close
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-02-22 15:26:29 +01:00
Jason A. Donenfeld
d4112d9096
global: bump copyright
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-01-28 17:52:15 +01:00
Jason A. Donenfeld
d664444928
tun: make customization of WintunPool and requested GUID more obvious
...
Persnickety consumers can now do:
func init() {
tun.WintunPool, _ = wintun.MakePool("Flurp")
tun.WintunStaticRequestedGUID, _ = windows.GUIDFromString("{5ae2716f-0b3e-4dc4-a8b5-48eba11a6e16}")
}
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-01-07 14:49:44 +01:00
Simon Rozman
c9fabbd5bf
wintun: log when reboot is suggested by Windows
...
Which really shouldn't happen. But it is a useful information for
troubleshooting.
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-11-25 13:58:11 +01:00
Simon Rozman
4cc7a7a455
wintun: keep original error when Wintun session start fails
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-11-25 13:57:05 +01:00
Jason A. Donenfeld
82128c47d9
global: switch to using %w instead of %v for Errorf
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-07 21:56:32 +01:00
Simon Rozman
a3b231b31e
wintun: ring management moved to wintun.dll
...
Signed-off-by: Simon Rozman <simon@rozman.si>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-07 15:20:49 +01:00
Simon Rozman
3e08b8aee0
wintun: migrate to wintun.dll API
...
Rather than having every application using Wintun driver reinvent the
wheel, the Wintun device/adapter/interface management has been moved
from wireguard-go to wintun.dll deployed with Wintun itself.
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-11-07 12:46:35 +01:00
Jason A. Donenfeld
db0aa39b76
global: update header comments and modules
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-05-02 02:08:26 -06:00
Jason A. Donenfeld
4fa2ea6a2d
tun: windows: serialize write calls
2020-01-07 11:40:45 -05:00
Jason A. Donenfeld
2b242f9393
wintun: manage ring memory manually
...
It's large and Go's garbage collector doesn't deal with it especially
well.
2019-11-22 13:13:55 +01:00
Avery Pennarun
1b6c8ddbe8
tun: match windows CreateTUN signature to the Linux variant
...
Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
[zx2c4: fix default value]
2019-10-17 15:19:20 +02:00
Jason A. Donenfeld
1f146a5e7a
wintun: expose version
2019-10-08 09:58:58 +02:00
Jason A. Donenfeld
bb0b2514c0
tun: windows: unify error message format
2019-09-08 13:52:44 -05:00
Jason A. Donenfeld
14df9c3e75
wintun: take mutex so that deletion uses the right name
2019-08-30 15:34:17 +02:00
Jason A. Donenfeld
353f0956bc
wintun: move ring constants into module
2019-08-29 13:22:17 -06:00
Jason A. Donenfeld
d94bae8348
wintun: Wintun->Interface
2019-08-29 12:20:40 -06:00
Simon Rozman
69c26dc258
wintun: introduce adapter pools
...
This makes wintun package reusable for non-WireGuard applications.
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-29 18:00:44 +02:00
Jason A. Donenfeld
0c540ad60e
wintun: make description consistent across fields
2019-08-24 12:29:17 +02:00
Jason A. Donenfeld
01786286c1
tun: windows: don't spin unless we really need it
2019-08-19 10:12:50 +02:00
Jason A. Donenfeld
b4010123f7
tun: windows: spin for only a millisecond/80
...
Performance stays the same as before.
2019-08-03 19:11:21 +02:00
Jason A. Donenfeld
eeeac287ef
tun: windows: style
2019-07-23 11:45:48 +02:00
Jason A. Donenfeld
5ba866a5c8
tun: windows: close event handle on shutdown
2019-07-22 09:37:20 +02:00
Jason A. Donenfeld
3341e2d444
tun: windows: get rid of retry logic
...
Things work fine on Windows 8.
2019-07-19 14:01:34 +02:00
Jason A. Donenfeld
1b550f6583
tun: windows: use specific IOCTL code
2019-07-19 08:30:19 +02:00
Jason A. Donenfeld
31ff9c02fe
tun: windows: open file at startup time
2019-07-18 19:27:27 +02:00
Jason A. Donenfeld
1e39c33ab1
tun: windows: silently drop packet when ring is full
2019-07-18 15:48:34 +02:00
Jason A. Donenfeld
6c50fedd8e
tun: windows: switch to NDIS device object
2019-07-18 12:26:57 +02:00
Jason A. Donenfeld
9ea9a92117
tun: windows: spin for a bit before falling back to event object
2019-07-18 10:25:20 +02:00
Simon Rozman
2e24e7dcae
tun: windows: implement ring buffers
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-07-17 14:32:13 +02:00
Jason A. Donenfeld
5c3d333f10
tun: windows: registration of write buffer no longer required
2019-07-05 14:17:48 +02:00
Jason A. Donenfeld
d8448f8a02
tun: windows: decrease alignment to 4
2019-07-05 07:53:19 +02:00
Jason A. Donenfeld
13abbdf14b
tun: windows: delay initial write
...
Otherwise we provoke Wintun 0.3.
2019-07-04 22:41:42 +02:00
Jason A. Donenfeld
b844f1b3cc
tun: windows: packetNum is unused
2019-07-01 15:23:44 +02:00
Jason A. Donenfeld
5e6eff81b6
tun: windows: inform wintun of maximum buffer length for writes
2019-06-26 13:27:48 +02:00
Jason A. Donenfeld
c69d026649
tun: windows: never retry open on Windows 10
2019-06-18 17:51:29 +02:00
Matt Layher
1f48971a80
tun: remove TUN prefix from types to reduce stutter elsewhere
...
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2019-06-14 18:35:57 +02:00
Jason A. Donenfeld
a304f69e0d
wintun: fix comments and remove hwnd param
...
This now looks more idiomatic.
2019-06-10 11:03:36 +02:00
Jason A. Donenfeld
e924280baa
wintun: allow controlling GUID
2019-06-10 10:43:02 +02:00
Jason A. Donenfeld
eaf17becfa
global: fixup TODO comment spacing
2019-06-06 23:00:15 +02:00
Simon Rozman
c2ed133df8
wintun: simplify DeleteInterface method signature
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-06-06 08:58:26 +02:00
Simon Rozman
e4b0ef29a1
tun: windows: obsolete 256 packets per exchange buffer limitation
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-06-05 11:55:28 +02:00
Jason A. Donenfeld
da61947ec3
tun: windows: mitigate infinite loop in Flush()
...
It's possible that for whatever reason, we keep returning EOF, resulting
in repeated close/open/write operations, except with empty packets.
2019-05-31 16:55:03 +02:00
Jason A. Donenfeld
d4034e5f8a
wintun: remove extra /
2019-05-26 02:20:01 +02:00
Simon Rozman
6a0a3a5406
wintun: revise GetInterface()
...
- Make foreign interface found error numeric to ease condition
detection.
- Update GetInterface() documentation.
- Make tun.CreateTUN() quit when foreign interface found before
attempting to create a Wintun interface with a duplicate name.
Creation is futile.
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-05-24 09:29:57 +02:00
Simon Rozman
dc9bbec9db
setupapi: trim "Get" from getters
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-05-22 19:31:52 +02:00
Jason A. Donenfeld
a6dbe4f475
wintun: don't try to flush interface, but rather delete
2019-05-17 16:06:02 +02:00
Jason A. Donenfeld
95c70b8032
wintun: make certain methods private
2019-05-17 15:01:08 +02:00
Simon Rozman
7d5f5bcc0d
wintun: change acronyms to uppercase
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-05-17 10:22:34 +02:00
Jason A. Donenfeld
2d847a38a2
wintun: add LUID accessor
2019-05-10 21:30:23 +02:00