Jason A. Donenfeld 
							
						 
					 
					
						
						
							
						
						69b39db0b4 
					 
					
						
						
							
							tun: windows: set event before waiting  
						
						... 
						
						
						
						In 097af6eJason@zx2c4.com > 
						
						
					 
					
						2021-05-07 09:26:24 +02:00 
						 
				 
			
				
					
						
							
							
								Jason A. Donenfeld 
							
						 
					 
					
						
						
							
						
						db733ccd65 
					 
					
						
						
							
							tun: windows: rearrange struct to avoid alignment trap on 32bit  
						
						... 
						
						
						
						Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com > 
						
						
					 
					
						2021-05-07 09:19:00 +02:00 
						 
				 
			
				
					
						
							
							
								Jason A. Donenfeld 
							
						 
					 
					
						
						
							
						
						69a42a4eef 
					 
					
						
						
							
							tun: windows: send MTU update when forced MTU changes  
						
						... 
						
						
						
						Otherwise the padding doesn't get updated.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com > 
						
						
					 
					
						2021-05-05 11:42:45 +02:00 
						 
				 
			
				
					
						
							
							
								Jason A. Donenfeld 
							
						 
					 
					
						
						
							
						
						097af6e135 
					 
					
						
						
							
							tun: windows: protect reads from closing  
						
						... 
						
						
						
						The code previously used the old errors channel for checking, rather
than the simpler boolean, which caused issues on shutdown, since the
errors channel was meaningless. However, looking at this exposed a more
basic problem: Close() and all the other functions that check the closed
boolean can race. So protect with a basic RW lock, to ensure that
Close() waits for all pending operations to complete.
Reported-by: Joshua Sjoding <joshua.sjoding@scjalliance.com >
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com > 
						
						
					 
					
						2021-04-26 22:22:45 -04:00 
						 
				 
			
				
					
						
							
							
								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