Simon Rozman
1ff37e2b07
wintun: merge opening device registry key
...
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-02 16:08:49 +02:00
Simon Rozman
f5e54932e6
wintun: simplify checking reboot requirement
...
We never checked checkReboot() reported error anyway.
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-02 16:08:49 +02:00
Simon Rozman
73698066d1
wintun: refactor err == nil
error checking
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-08-02 15:18:58 +02:00
Jason A. Donenfeld
05ece4d167
wintun: handle error for deadgwdetect
2019-08-02 14:37:09 +02:00
Jason A. Donenfeld
a2249449d6
wintun: get interface path properly with cfgmgr
2019-07-23 14:58:46 +02:00
Jason A. Donenfeld
b5a7cbf069
wintun: simplify resolution of dev node
2019-07-23 11:45:13 +02:00
Jason A. Donenfeld
50cd522cb0
wintun: enable sharing of pnp node
2019-07-22 17:01:27 +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
6c50fedd8e
tun: windows: switch to NDIS device object
2019-07-18 12:26:57 +02:00
Jason A. Donenfeld
298d759f3e
wintun: calculate path of NDIS device object symbolic link
2019-07-18 10:25:20 +02:00
Jason A. Donenfeld
c69d026649
tun: windows: never retry open on Windows 10
2019-06-18 17:51:29 +02:00
Jason A. Donenfeld
41fdbf0971
wintun: increase registry timeout
2019-06-11 00:33:07 +02:00
Jason A. Donenfeld
03eee4a778
wintun: add helper for cleaning up
2019-06-10 11:34:59 +02:00
Jason A. Donenfeld
700860f8e6
wintun: simplify error matching and remove dumb comments
2019-06-10 11:10:49 +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
Jason A. Donenfeld
6d8b68c8f3
wintun: guid functions are upstream
2019-06-06 22:39:20 +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
Jason A. Donenfeld
108c37a056
wintun: don't run HrRenameConnection in separate thread
...
It's very slow, but unfortunately we haven't a choice. NLA needs this to
have completed.
2019-06-05 13:09:20 +02:00
Simon Rozman
625e445b22
setupapi, wintun: replace syscall with golang.org/x/sys/windows
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-06-04 14:54:56 +02:00
Simon Rozman
85b85e62e5
wintun: set DI_QUIETINSTALL flag for GUI-less device management
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-06-04 14:45:23 +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
Jason A. Donenfeld
8fdcf5ee30
wintun: never return nil, nil
2019-05-23 15:25:53 +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
6c1b66802f
wintun: registry: revise value reading
...
- Make getStringValueRetry() reusable for reading any value type. This
merges code from GetIntegerValueWait().
- expandString() >> toString() and extend to support REG_MULTI_SZ
(to return first value of REG_MULTI_SZ). Furthermore, doing our own
UTF-16 to UTF-8 conversion works around a bug in windows/registry's
GetStringValue() non-zero terminated string handling.
- Provide toInteger() analogous to toString()
- GetStringValueWait() tolerates and reads REG_MULTI_SZ too now. It
returns REG_MULTI_SZ[0], making GetFirstStringValueWait() redundant.
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-05-11 17:14:37 +02:00
Jason A. Donenfeld
5669ed326f
wintun: call HrRenameConnection in another thread
2019-05-10 21:31:37 +02:00
Jason A. Donenfeld
7a8553aef0
wintun: enumerate faster by using COMPATDRIVER instead of CLASSDRIVER
2019-05-10 20:30:59 +02:00
Jason A. Donenfeld
a6045ac042
wintun: destroy devinfolist after usage
2019-05-10 20:19:11 +02:00
Simon Rozman
1c92b48415
wintun: registry: replace REG_NOTIFY with NOTIFY
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-05-10 18:09:20 +02:00
Jason A. Donenfeld
c267965bf8
wintun: IpConfig is a MULTI_SZ, and fix errors
2019-05-10 18:06:49 +02:00
Jason A. Donenfeld
1bf1dadf15
wintun: poll for device key
...
It's actually pretty hard to guess where it is.
2019-05-10 17:34:03 +02:00
Jason A. Donenfeld
f9dcfccbb7
wintun: fix scope of error object
2019-05-10 16:59:24 +02:00
Simon Rozman
7e962a9932
wintun: wait for interface registry key on device creation
...
By using RegNotifyChangeKeyValue(). Also disable dead gateway detection.
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-05-10 16:43:58 +02:00
Jason A. Donenfeld
81ca08f1b3
setupapi: safer aliasing of slice types
2019-05-03 09:34:00 +02:00
Jason A. Donenfeld
46dbf54040
wintun: don't retry when not creating
...
The only time we're trying to counteract the race condition is when
we're creating a driver. When we're simply looking up all drivers, it
doesn't make sense to retry.
2019-05-02 23:53:15 +02:00
Jason A. Donenfeld
e0a8c22aa6
windows: use proper constants from updated x/sys
2019-04-13 02:02:02 +02:00
Jason A. Donenfeld
ac25702eaf
wintun: rename device using undocumented API that netsh.exe uses
2019-04-01 12:04:44 +02:00
Jason A. Donenfeld
92f8474832
wintun: add more retry loops
2019-04-01 09:07:43 +02:00
Jason A. Donenfeld
2fa80c0cb7
wintun: query for NetCfgInstanceId several times
2019-03-22 16:48:40 -06:00
Simon Rozman
2faf2dcf90
tun: windows: Make adapter rename asynchronous
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-22 16:36:30 +01:00
Simon Rozman
41c30a7279
tun: windows: Adapter devices renamed to WINTUN<LUID Index>
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-22 15:29:14 +01:00
Jason A. Donenfeld
03f2e2614a
tun: windows: wintun does iocp
2019-03-18 02:42:45 -06:00
Jason A. Donenfeld
66fb5caf02
wintun: Poll more often
2019-03-10 03:47:54 +01:00
Simon Rozman
c2a2b8d739
wintun: Make errors more descriptive
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-08 10:03:57 +01:00
Simon Rozman
70449f1a97
wintun: Return correct reboot-req flag on CreateInterface() error too
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-08 10:03:57 +01:00
Simon Rozman
33c3528430
wintun: Fix double-quoted strings escaping on output
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-08 10:03:57 +01:00
Simon Rozman
30ab07e354
wintun: Introduce SetupAPI enumerator and machineName consts
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-08 10:03:57 +01:00