Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								ae88e2a2cd 
								
							 
						 
						
							
							
								
								version: bump snapshot  
							
							
							
						 
						
							2020-03-20 12:00:53 -06:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								4739708ca4 
								
							 
						 
						
							
							
								
								noise: unify zero checking of ecdh  
							
							
							
						 
						
							2020-03-17 23:07:14 -06:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Tobias Klauser 
								
							 
						 
						
							
							
							
							
								
							
							
								b33219c2cf 
								
							 
						 
						
							
							
								
								global: use RTMGRP_* consts from x/sys/unix  
							
							... 
							
							
							
							Update the golang.org/x/sys/unix dependency and use the newly introduced
RTMGRP_* consts instead of using the corresponding RTNLGRP_* const to
create a mask.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch> 
							
						 
						
							2020-03-17 23:07:11 -06:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								9cbcff10dd 
								
							 
						 
						
							
							
								
								send: account for zero mtu  
							
							... 
							
							
							
							Don't divide by zero. 
							
						 
						
							2020-02-14 18:53:55 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								6ed56ff2df 
								
							 
						 
						
							
							
								
								device: fix private key removal logic  
							
							
							
						 
						
							2020-02-04 22:02:53 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								cb4bb63030 
								
							 
						 
						
							
							
								
								uapi: allow unsetting device private key with /dev/null  
							
							
							
						 
						
							2020-02-04 22:02:53 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								05b03c6750 
								
							 
						 
						
							
							
								
								version: bump snapshot  
							
							
							
						 
						
							2020-01-21 16:27:19 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								89dd065e53 
								
							 
						 
						
							
							
								
								README: update repo urls  
							
							
							
						 
						
							2019-12-30 11:53:39 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								ddfad453cf 
								
							 
						 
						
							
							
								
								device: SendmsgN mutates the input sockaddr  
							
							... 
							
							
							
							So we take a new granular lock to prevent concurrent writes from
racing.
WARNING: DATA RACE
Write at 0x00c0011f2740 by goroutine 27:
  golang.org/x/sys/unix.(*SockaddrInet4).sockaddr()
      /go/pkg/mod/golang.org/x/sys@v0.0.0-20191105231009-c1f44814a5cd/unix/syscall_linux.go:384
+0x114
  golang.org/x/sys/unix.SendmsgN()
      /go/pkg/mod/golang.org/x/sys@v0.0.0-20191105231009-c1f44814a5cd/unix/syscall_linux.go:1304
+0x288
  golang.zx2c4.com/wireguard/device.send4()
      /go/pkg/mod/golang.zx2c4.com/wireguard@v0.0.20191012/device/conn_linux.go:485
+0x11f
  golang.zx2c4.com/wireguard/device.(*nativeBind).Send()
      /go/pkg/mod/golang.zx2c4.com/wireguard@v0.0.20191012/device/conn_linux.go:268
+0x1d6
  golang.zx2c4.com/wireguard/device.(*Peer).SendBuffer()
      /go/pkg/mod/golang.zx2c4.com/wireguard@v0.0.20191012/device/peer.go:151
+0x285
  golang.zx2c4.com/wireguard/device.(*Peer).SendHandshakeInitiation()
      /go/pkg/mod/golang.zx2c4.com/wireguard@v0.0.20191012/device/send.go:163
+0x692
  golang.zx2c4.com/wireguard/device.(*Device).RoutineReadFromTUN()
      /go/pkg/mod/golang.zx2c4.com/wireguard@v0.0.20191012/device/send.go:318
+0x4b8
Previous write at 0x00c0011f2740 by goroutine 386:
  golang.org/x/sys/unix.(*SockaddrInet4).sockaddr()
      /go/pkg/mod/golang.org/x/sys@v0.0.0-20191105231009-c1f44814a5cd/unix/syscall_linux.go:384
+0x114
  golang.org/x/sys/unix.SendmsgN()
      /go/pkg/mod/golang.org/x/sys@v0.0.0-20191105231009-c1f44814a5cd/unix/syscall_linux.go:1304
+0x288
  golang.zx2c4.com/wireguard/device.send4()
      /go/pkg/mod/golang.zx2c4.com/wireguard@v0.0.20191012/device/conn_linux.go:485
+0x11f
  golang.zx2c4.com/wireguard/device.(*nativeBind).Send()
      /go/pkg/mod/golang.zx2c4.com/wireguard@v0.0.20191012/device/conn_linux.go:268
+0x1d6
  golang.zx2c4.com/wireguard/device.(*Peer).SendBuffer()
      /go/pkg/mod/golang.zx2c4.com/wireguard@v0.0.20191012/device/peer.go:151
+0x285
  golang.zx2c4.com/wireguard/device.(*Peer).SendHandshakeInitiation()
      /go/pkg/mod/golang.zx2c4.com/wireguard@v0.0.20191012/device/send.go:163
+0x692
  golang.zx2c4.com/wireguard/device.expiredRetransmitHandshake()
      /go/pkg/mod/golang.zx2c4.com/wireguard@v0.0.20191012/device/timers.go:110
+0x40c
  golang.zx2c4.com/wireguard/device.(*Peer).NewTimer.func1()
      /go/pkg/mod/golang.zx2c4.com/wireguard@v0.0.20191012/device/timers.go:42
+0xd8
Goroutine 27 (running) created at:
  golang.zx2c4.com/wireguard/device.NewDevice()
      /go/pkg/mod/golang.zx2c4.com/wireguard@v0.0.20191012/device/device.go:322
+0x5e8
  main.main()
      /go/src/x/main.go:102 +0x58e
Goroutine 386 (finished) created at:
  time.goFunc()
      /usr/local/go/src/time/sleep.go:168 +0x51
Reported-by: Ben Burkert <ben@benburkert.com> 
							
						 
						
							2019-11-28 11:11:13 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								4cdf805b29 
								
							 
						 
						
							
							
								
								constants: recalculate rekey max based on a one minute flood  
							
							... 
							
							
							
							Discussed-with: Mathias Hall-Andersen <mathias@hall-andersen.dk> 
							
						 
						
							2019-10-30 14:29:32 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jonathan Tooker 
								
							 
						 
						
							
							
							
							
								
							
							
								f7d0edd2ec 
								
							 
						 
						
							
							
								
								global: fix a few typos courtesy of codespell  
							
							... 
							
							
							
							Signed-off-by: Jonathan Tooker <jonathan.tooker@netprotect.com> 
							
						 
						
							2019-10-22 11:51:25 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								ffffbbcc8a 
								
							 
						 
						
							
							
								
								device: allow blackholing sockets  
							
							
							
						 
						
							2019-10-21 13:29:57 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								47b02c618b 
								
							 
						 
						
							
							
								
								device: remove dead error reporting code  
							
							
							
						 
						
							2019-10-21 11:46:54 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								ae492d1b35 
								
							 
						 
						
							
							
								
								device: recheck counters while holding write lock  
							
							
							
						 
						
							2019-10-17 15:43:06 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Crawshaw 
								
							 
						 
						
							
							
							
							
								
							
							
								540d01e54a 
								
							 
						 
						
							
							
								
								device: test packets between two fake devices  
							
							... 
							
							
							
							Signed-off-by: David Crawshaw <crawshaw@tailscale.io> 
							
						 
						
							2019-10-16 11:38:28 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								f2ea85e9f9 
								
							 
						 
						
							
							
								
								version: bump snapshot  
							
							
							
						 
						
							2019-10-12 22:34:10 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								f2501aa6c8 
								
							 
						 
						
							
							
								
								uapi: allow preventing creation of new peers when updating  
							
							... 
							
							
							
							This enables race-free updates for wg-dynamic and similar tools.
Suggested-by: Thomas Gschwantner <tharre3@gmail.com> 
							
						 
						
							2019-10-04 11:41:02 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								7c97fdb1e3 
								
							 
						 
						
							
							
								
								version: bump snapshot  
							
							
							
						 
						
							2019-09-08 10:56:55 -05:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									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 
								
							 
						 
						
							
							
							
							
								
							
							
								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 
								
							 
						 
						
							
							
							
							
								
							
							
								7bc0e11831 
								
							 
						 
						
							
							
								
								device: do not crash on nil'd bind in windows binding  
							
							
							
						 
						
							2019-07-18 19:34:45 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								a961aacc9f 
								
							 
						 
						
							
							
								
								device: immediately rekey all peers after changing device private key  
							
							... 
							
							
							
							Reported-by: Derrick Pallas <derrick@pallas.us> 
							
						 
						
							2019-07-11 17:37:35 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								dd8817f50e 
								
							 
						 
						
							
							
								
								device: receive: simplify flush loop  
							
							
							
						 
						
							2019-07-01 15:23:24 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								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 
							
								 
							
						 
					 
				
					
						
							
								
								
									Matt Layher 
								
							 
						 
						
							
							
							
							
								
							
							
								43a4589043 
								
							 
						 
						
							
							
								
								device: remove redundant return statements  
							
							... 
							
							
							
							More staticcheck fixes:
$ staticcheck ./... | grep S1023
device/noise-helpers.go:45:2: redundant return statement (S1023)
device/noise-helpers.go:54:2: redundant return statement (S1023)
device/noise-helpers.go:64:2: redundant return statement (S1023)
Signed-off-by: Matt Layher <mdlayher@gmail.com> 
							
						 
						
							2019-06-04 13:01:52 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Matt Layher 
								
							 
						 
						
							
							
							
							
								
							
							
								8d76ac8cc4 
								
							 
						 
						
							
							
								
								device: use bytes.Equal for equality check, simplify assertEqual  
							
							... 
							
							
							
							Signed-off-by: Matt Layher <mdlayher@gmail.com> 
							
						 
						
							2019-06-04 13:01:52 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Matt Layher 
								
							 
						 
						
							
							
							
							
								
							
							
								18b6627f33 
								
							 
						 
						
							
							
								
								device, ratelimiter: replace uses of time.Now().Sub() with time.Since()  
							
							... 
							
							
							
							Simplification found by staticcheck:
$ staticcheck ./... | grep S1012
device/cookie.go:90:5: should use time.Since instead of time.Now().Sub (S1012)
device/cookie.go:127:5: should use time.Since instead of time.Now().Sub (S1012)
device/cookie.go:242:5: should use time.Since instead of time.Now().Sub (S1012)
device/noise-protocol.go:304:13: should use time.Since instead of time.Now().Sub (S1012)
device/receive.go:82:46: should use time.Since instead of time.Now().Sub (S1012)
device/send.go:132:5: should use time.Since instead of time.Now().Sub (S1012)
device/send.go:139:5: should use time.Since instead of time.Now().Sub (S1012)
device/send.go:235:59: should use time.Since instead of time.Now().Sub (S1012)
device/send.go:393:9: should use time.Since instead of time.Now().Sub (S1012)
ratelimiter/ratelimiter.go:79:10: should use time.Since instead of time.Now().Sub (S1012)
ratelimiter/ratelimiter.go:87:10: should use time.Since instead of time.Now().Sub (S1012)
Change applied using:
$ find . -type f -name "*.go" -exec sed -i "s/Now().Sub(/Since(/g" {} \;
Signed-off-by: Matt Layher <mdlayher@gmail.com> 
							
						 
						
							2019-06-03 22:15:41 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								d9f995209c 
								
							 
						 
						
							
							
								
								device: add SendKeepalivesToPeersWithCurrentKeypair for handover  
							
							
							
						 
						
							2019-05-30 15:16:16 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Matt Layher 
								
							 
						 
						
							
							
							
							
								
							
							
								32912dc778 
								
							 
						 
						
							
							
								
								device, tun: rearrange code and fix device tests  
							
							... 
							
							
							
							Signed-off-by: Matt Layher <mdlayher@gmail.com> 
							
						 
						
							2019-05-29 18:34:55 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								c718f3940d 
								
							 
						 
						
							
							
								
								device: fail to give bind if it doesn't exist  
							
							
							
						 
						
							2019-05-17 15:35:20 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								583ebe99f1 
								
							 
						 
						
							
							
								
								version: bump snapshot  
							
							
							
						 
						
							2019-05-17 10:28:04 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								3bf41b06ae 
								
							 
						 
						
							
							
								
								global: regroup all imports  
							
							
							
						 
						
							2019-05-14 09:09:52 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								d3dd991e4e 
								
							 
						 
						
							
							
								
								device: send: check packet length before freeing element  
							
							
							
						 
						
							2019-04-18 23:23:03 +09: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 
								
							 
						 
						
							
							
							
							
								
							
							
								18fa270472 
								
							 
						 
						
							
							
								
								version: put version in right place  
							
							
							
						 
						
							2019-04-09 10:39:48 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								6440f010ee 
								
							 
						 
						
							
							
								
								receive: implement flush semantics  
							
							
							
						 
						
							2019-03-21 14:45:41 -06:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								c050c6e60f 
								
							 
						 
						
							
							
								
								uapi: remove unhelpful log messages  
							
							
							
						 
						
							2019-03-20 23:40:20 -06:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								2c51d6af48 
								
							 
						 
						
							
							
								
								uapi: report endpoint error  
							
							
							
						 
						
							2019-03-19 00:34:04 -06:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								3dd9a0535f 
								
							 
						 
						
							
							
								
								uapi: make ipcerror conform to interface  
							
							
							
						 
						
							2019-03-10 02:49:44 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								26af6c4651 
								
							 
						 
						
							
							
								
								receive: squelch tear down error  
							
							
							
						 
						
							2019-03-07 02:03:48 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								68f0721c6a 
								
							 
						 
						
							
							
								
								tun: import mobile particularities  
							
							
							
						 
						
							2019-03-04 16:37:11 +01:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason A. Donenfeld 
								
							 
						 
						
							
							
							
							
								
							
							
								b8e85267cf 
								
							 
						 
						
							
							
								
								boundif: introduce API for socket binding  
							
							
							
						 
						
							2019-03-04 16:37:11 +01:00