Jason A. Donenfeld
f8198c0428
device: getsockname on linux to determine port
...
It turns out Go isn't passing the pointer properly so we wound up with a
zero port every time.
2019-08-25 12:45:13 -06:00
Jason A. Donenfeld
0c540ad60e
wintun: make description consistent across fields
2019-08-24 12:29:17 +02:00
Jason A. Donenfeld
3cedc22d7b
wintun: try multiple names until one isn't a duplicate
2019-08-22 08:52:59 +02:00
Jason A. Donenfeld
68fea631d8
wintun: use nci.dll directly instead of buggy netshell
2019-08-21 09:16:12 +02:00
Jason A. Donenfeld
ef23100a4f
wintun: set friendly a bit better
...
This is still wrong, but NETSETUPPKEY_Driver_FriendlyName seems a bit
tricky to use.
2019-08-20 16:06:55 +02:00
Jason A. Donenfeld
eb786cd7c1
wintun: also set friendly name after setting interface name
2019-08-19 10:12:50 +02:00
Jason A. Donenfeld
333de75370
wintun: defer requires unique variable
2019-08-19 10:12:50 +02:00
Jason A. Donenfeld
d20459dc69
wintun: set adapter description name
2019-08-19 10:12:50 +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
b16dba47a7
version: bump snapshot
2019-08-05 19:29:12 +02:00
Jason A. Donenfeld
4be9630ddc
device: drop lock before expiring keys
2019-08-05 17:46:34 +02:00
Jason A. Donenfeld
4e3018a967
uapi: skip peers with invalid keys
2019-08-05 16:57:41 +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
05ece4d167
wintun: handle error for deadgwdetect
2019-08-02 14:37:09 +02:00
Jason A. Donenfeld
6d78f89557
tun: darwin: do not attempt to close tun.event twice
...
Previously it was possible for this to race. It turns out we really
don't need to set anything to -1 anyway.
2019-08-02 12:24:17 +02:00
Jason A. Donenfeld
a2249449d6
wintun: get interface path properly with cfgmgr
2019-07-23 14:58:46 +02:00
Jason A. Donenfeld
eeeac287ef
tun: windows: style
2019-07-23 11:45:48 +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
5ba866a5c8
tun: windows: close event handle on shutdown
2019-07-22 09:37:20 +02:00
Jason A. Donenfeld
2f101fedec
ipc: windows: match SDDL of WDK and make monkeyable
2019-07-19 15:34:26 +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
7bc0e11831
device: do not crash on nil'd bind in windows binding
2019-07-18 19:34:45 +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
298d759f3e
wintun: calculate path of NDIS device object symbolic link
2019-07-18 10:25:20 +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
Jason A. Donenfeld
a961aacc9f
device: immediately rekey all peers after changing device private key
...
Reported-by: Derrick Pallas <[email protected] >
2019-07-11 17:37:35 +02:00
Jason A. Donenfeld
b0cf53b078
README: update windows info
2019-07-08 14:52:49 +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
f361e59001
device: receive: uniform message for source address check
2019-07-01 15:24:50 +02:00
Jason A. Donenfeld
b844f1b3cc
tun: windows: packetNum is unused
2019-07-01 15:23:44 +02:00
Jason A. Donenfeld
dd8817f50e
device: receive: simplify flush loop
2019-07-01 15:23:24 +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
Jason A. Donenfeld
3371f8dac6
device: update transfer counters correctly
...
The rule is to always update them to the full packet size minus UDP/IP
encapsulation for all authenticated packet types.
2019-06-11 18:13:52 +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
bb3f1932fa
setupapi: add DeviceInstanceID()
2019-06-10 10:43:01 +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
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
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
d9f995209c
device: add SendKeepalivesToPeersWithCurrentKeypair for handover
2019-05-30 15:16:16 +02:00
Jason A. Donenfeld
d0ab883ada
tai64n: account for whitening in test
2019-05-29 18:44:53 +02:00
Jason A. Donenfeld
d4034e5f8a
wintun: remove extra /
2019-05-26 02:20:01 +02:00
Jason A. Donenfeld
fbcd995ec1
device: darwin actually doesn't need bound interfaces
2019-05-25 18:10:52 +02:00
Jason A. Donenfeld
e7e286ba6c
device: make initiations per second match kernel implementation
2019-05-25 02:07:18 +02:00
Jason A. Donenfeld
f70546bc2e
device: timers: add jitter on ack failure reinitiation
2019-05-24 13:48:25 +02:00
Jason A. Donenfeld
8fdcf5ee30
wintun: never return nil, nil
2019-05-23 15:25:53 +02:00
Jason A. Donenfeld
a74a29bc93
ipc: use simplified fork of winio
2019-05-23 15:16:02 +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
c718f3940d
device: fail to give bind if it doesn't exist
2019-05-17 15:35:20 +02:00
Jason A. Donenfeld
95c70b8032
wintun: make certain methods private
2019-05-17 15:01:08 +02:00
Jason A. Donenfeld
583ebe99f1
version: bump snapshot
2019-05-17 10:28:04 +02:00
Jason A. Donenfeld
a6dd282600
makefile: do not show warning on non-linux
2019-05-17 10:27:51 +02:00
Jason A. Donenfeld
3bf41b06ae
global: regroup all imports
2019-05-14 09:09:52 +02:00
Jason A. Donenfeld
3147f00089
wintun: registry: fix nits
2019-05-11 17:25:48 +02:00
Jason A. Donenfeld
5669ed326f
wintun: call HrRenameConnection in another thread
2019-05-10 21:31:37 +02:00
Jason A. Donenfeld
2d847a38a2
wintun: add LUID accessor
2019-05-10 21:30:23 +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
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
Jason A. Donenfeld
586112b5d7
conn: remove scope when sanity checking IP address format
2019-05-09 15:42:35 +02:00
Jason A. Donenfeld
b16b0e4cf7
mod: update deps
2019-05-03 09:37:29 +02:00
Jason A. Donenfeld
81ca08f1b3
setupapi: safer aliasing of slice types
2019-05-03 09:34:00 +02:00
Jason A. Donenfeld
2e988467c2
wintun: work around GetInterface staleness bug
2019-05-03 00:42:36 +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
247e14693a
wintun: try harder to open registry key
...
This sucks. Can we please find a deterministic way of doing this
instead?
2019-04-29 14:00:49 +02:00
Jason A. Donenfeld
3945a299ff
go.mod: use vendored winio
2019-04-29 08:09:38 +02:00
Jason A. Donenfeld
bb42ec7d18
tun: freebsd: work around numerous kernel panics on shutdown
...
There are numerous race conditions. But even this will crash it:
while true; do ifconfig tun0 create; ifconfig tun0 destroy; done
It seems like LLv6 is related, which we're not using anyway, so
explicitly disable it on the interface.
2019-04-23 18:00:23 +09:00
Jason A. Donenfeld
c7a26dfef3
setupapi: actually fix padding by rounding up to sizeof(void*)
2019-04-19 10:19:00 +09:00
Jason A. Donenfeld
d024393335
tun: darwin: write routeSocket variable in helper
...
Otherwise the race detector "complains".
2019-04-19 07:53:19 +09:00
Jason A. Donenfeld
d9078fe772
main: revise warnings
2019-04-19 07:48:09 +09:00
Jason A. Donenfeld
d3dd991e4e
device: send: check packet length before freeing element
2019-04-18 23:23:03 +09:00
Jason A. Donenfeld
e0a8c22aa6
windows: use proper constants from updated x/sys
2019-04-13 02:02:02 +02:00
Jason A. Donenfeld
0b77bf78cd
conn: linux: RTA_MARK has moved to x/sys
2019-04-13 02:01:20 +02:00
Jason A. Donenfeld
d50e390904
main_windows: use proper version constant
2019-04-09 10:45:40 +02:00
Jason A. Donenfeld
18fa270472
version: put version in right place
2019-04-09 10:39:48 +02:00
Jason A. Donenfeld
f156a53ff4
version: bump snapshot
2019-04-09 07:37:22 +02:00
Jason A. Donenfeld
e680008700
tun: windows: do not sleep after OPERATION_ABORTED
2019-04-09 07:36:03 +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
2e0ed4614a
tun: windows: cancel ongoing reads on closing and delete after close
...
This reverts commit 52ec440d79 and adds
some spice.
2019-03-26 16:14:32 +01:00
Jason A. Donenfeld
2fa80c0cb7
wintun: query for NetCfgInstanceId several times
2019-03-22 16:48:40 -06:00
Jason A. Donenfeld
52ec440d79
tun: windows: delete interface before deleting file handles
2019-03-22 16:45:58 -06:00
Jason A. Donenfeld
317d716d66
tun: windows: just open two file handles
2019-03-21 15:20:09 -06:00
Jason A. Donenfeld
6440f010ee
receive: implement flush semantics
2019-03-21 14:45:41 -06:00
Jason A. Donenfeld
49ea0c9b1a
tun: windows: add dummy overlapped events back
...
These seem basically wrong to me, but we get crashes without them.
2019-03-21 02:29:09 -06:00
Jason A. Donenfeld
ca59b60aa7
tun: windows: use new constants in sys
2019-03-20 23:42:30 -06:00
Jason A. Donenfeld
c050c6e60f
uapi: remove unhelpful log messages
2019-03-20 23:40:20 -06:00