aboutsummaryrefslogtreecommitdiffstats
path: root/go.sum (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-11-27memmod: fix import loading function usageJason A. Donenfeld1-4/+4
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-25wintun: log when reboot is suggested by WindowsSimon Rozman1-1/+5
Which really shouldn't happen. But it is a useful information for troubleshooting. Signed-off-by: Simon Rozman <simon@rozman.si>
2020-11-25wintun: keep original error when Wintun session start failsSimon Rozman1-1/+1
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-11-18version: bump snapshot0.0.20201118Jason A. Donenfeld1-1/+1
2020-11-18mod: bumpJason A. Donenfeld2-9/+11
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-18device: add write queue mutex for peerHaichao Liu3-1/+11
fix panic: send on closed channel when remove peer Signed-off-by: Haichao Liu <liuhaichao@bytedance.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-11wintun: load from filesystem by defaultJason A. Donenfeld3-39/+109
We let people loading this from resources opt in via: go build -tags load_wintun_from_rsrc Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-07global: switch to using %w instead of %v for ErrorfJason A. Donenfeld6-34/+34
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-07mod: update depsJason A. Donenfeld2-12/+9
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-07wintun: ring management moved to wintun.dllSimon Rozman4-214/+147
Signed-off-by: Simon Rozman <simon@rozman.si> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-07wintun: load wintun.dll from RCDATA resourceSimon Rozman19-2/+1578
Signed-off-by: Simon Rozman <simon@rozman.si> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-07wintun: migrate to wintun.dll APISimon Rozman25-3711/+169
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-06device: format a few thingsJason A. Donenfeld2-2/+1
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-27tun: use SockaddrCtl from golang.org/x/sys/unix on macOSTobias Klauser1-29/+6
Direct syscalls using unix.Syscall(unix.SYS_*, ...) are discouraged on macOS and might not be supported in future versions. Switch to use unix.Connect with unix.SockaddrCtl instead. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-27tun: use Ioctl{Get,Set}IfreqMTU from golang.org/x/sys/unix on macOSTobias Klauser1-35/+10
Direct syscalls using unix.Syscall(unix.SYS_*, ...) are discouraged on macOS and might not be supported in future versions. Switch to use unix.Ioctl{Get,Set}IfreqMTU to get and set an interface's MTU. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-27tun: use IoctlCtlInfo from golang.org/x/sys/unix on macOSTobias Klauser1-20/+6
Direct syscalls using unix.Syscall(unix.SYS_*, ...) are discouraged on macOS and might not be supported in future versions. Switch to use unix.IoctlCtlInfo to get the kernel control info. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-27tun: use GetsockoptString in (*NativeTun).Name on macOSTobias Klauser1-14/+6
Direct syscalls using unix.Syscall(unix.SYS_*, ...) are discouraged on macOS and might not be supported in future versions. Instead, use the existing unix.GetsockoptString wrapper to get the interface name. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-27go.mod: bump golang.org/x/sys to latest versionTobias Klauser2-3/+3
This adds the fixes for golang/go#41868 which are needed to build wireguard without direct syscalls on macOS. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-21tun/wintun/registry: fix Go 1.15 race/checkptr failureBrad Fitzpatrick3-4/+4
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com> [Jason: ran go mod tidy.] Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-20Makefile: Add test targetFrank Werner1-1/+4
Signed-off-by: Frank Werner <mail@hb9fxq.ch> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-14replay: minor API changes to more idiomatic GoRiobard Zhan4-17/+17
Signed-off-by: Riobard Zhan <me@riobard.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-14replay: clean up internals and better documentationRiobard Zhan2-71/+50
Signed-off-by: Riobard Zhan <me@riobard.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-14device: remove global for roaming escape hatchJason A. Donenfeld2-2/+18
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-09-07replay: divide by bits-per-byteJason A. Donenfeld1-1/+1
Bits / Bytes-per-Word misses the step of also dividing by Bits-per-Byte, which we need in order for this to make sense. Reported-by: Riobard Zhan <me@riobard.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-07-31device: get free port when testingSina Siadat1-5/+23
Signed-off-by: Sina Siadat <siadat@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-07-14device: remove bindsocketshim.goDavid Crawshaw1-36/+0
Both wireguard-windows and wireguard-android access Bind directly for these methods now. Signed-off-by: David Crawshaw <crawshaw@tailscale.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-07-15device: remove some unnecessary unsafeBrad Fitzpatrick1-2/+3
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-07-13device: use RTMGRP_IPV4_ROUTE to specify multicast groups maskTobias Klauser1-1/+1
Use the RTMGRP_IPV4_ROUTE const from x/sys/unix instead of using the corresponding RTNLGRP_IPV4_ROUTE const to create the multicast groups mask. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-07-04device: wait for routines to stop before removing peersDmytro Shynkevych1-1/+1
Peers are currently removed after Device's goroutines are signaled to stop, but without waiting for them to actually do so, which is racy. For example, RoutineHandshake may be in Peer.SendKeepalive when the corresponding peer is removed, which closes its nonce channel. This causes a send on a closed channel, as observed in tailscale/tailscale#487. This patch seems to be the correct synchronizing action: Peer's goroutines are receivers and handle channel closure gracefully, so Device's goroutines are the ones that should be fully stopped first. Signed-Off-By: Dmytro Shynkevych <dmytro@tailscale.com>
2020-06-22device: export Bind and remove socketfd shims for androidDavid Crawshaw2-24/+6
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-06-22ipc: add comment about socketDirectory linker override on androidDavid Crawshaw1-0/+2
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-06-22conn: add comments saying what uses these interfacesDavid Crawshaw1-2/+5
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-06-07device: do not include sticky sockets on androidJason A. Donenfeld2-1/+3
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-06-07conn: unbreak boundif on androidJason A. Donenfeld4-44/+65
Another thing never tested ever. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-06-07conn: remove useless commentJason A. Donenfeld1-1/+0
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-06-07conn: fix windows situation with boundifJason A. Donenfeld2-8/+8
This was evidently never tested before committing. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-05-19replay: account for fqcodel reorderingJason A. Donenfeld2-2/+2
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-05-18device: rework padding calculation and don't shadow paddedSizeJason A. Donenfeld1-15/+17
Reported-by: Jayakumar S <jayakumar82.s@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-05-06tai64n: make the test deterministicDmytro Shynkevych2-19/+32
In the presence of preemption, the current test may fail transiently. This uses static test data instead to ensure consistent behavior. Signed-off-by: Dmytro Shynkevych <dmytro@tailscale.com>
2020-05-02main: now that we're upstreamed, relax Linux warningJason A. Donenfeld2-13/+11
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-05-02README: specify go 1.13Jason A. Donenfeld1-1/+1
Due to the use of the new errors module, we now require at least 1.13 instead of 1.12. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-05-02global: update header comments and modulesJason A. Donenfeld90-97/+98
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-05-02ipc: deduplicate some unix-specific codeDavid Crawshaw3-141/+65
Cleans up and splits out UAPIOpen to its own file. Signed-off-by: David Crawshaw <crawshaw@tailscale.com> [zx2c4: changed const to var for socketDirectory] Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-05-02ipc: remove unnecessary error checkDavid Crawshaw2-4/+2
os.MkdirAll never returns an os.IsExist error. Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-05-02device: use atomic access for unlocked keypair.nextJason A. Donenfeld4-11/+23
Go's GC semantics might not always guarantee the safety of this, and the race detector gets upset too, so instead we wrap this all in atomic accessors. Reported-by: David Anderson <danderson@tailscale.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-05-02wintun: make remaining HWID comparisons case insensitiveSimon Rozman1-2/+19
c85e4a410f27986a2967a49c0155633c716bf3ca introduced preliminary HWID checking to speed up Wintun adapter enumeration. However, all HWID are case insensitive by Windows convention. Furthermore, a device might have multiple HWIDs. When DevInfo's DeviceRegistryProperty(SPDRP_HARDWAREID) method returns []string, all strings returned should be checked against given hardware ID. This issue was discovered when researching Wintun and wireguard-go on Windows 10 ARM64. The Wintun adapter was created using devcon.exe utility with "wintun" hardware ID, causing wireguard-go fail to enumerate the adapter properly. Signed-off-by: Simon Rozman <simon@rozman.si>
2020-05-02setupapi: extend struct size constant definitions for arm(64)Simon Rozman2-0/+4
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-05-02device: add debug logs describing handshake rejectionAvery Pennarun1-4/+8
Useful in testing when bad network stacks repeat or batch large numbers of packets. Signed-off-by: Avery Pennarun <apenwarr@tailscale.com>
2020-05-02tun: return a better error message if /dev/net/tun doesn't existBrad Fitzpatrick1-0/+3
It was just returning "no such file or directory" (the String of the syscall.Errno returned by CreateTUN). Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-05-02device: return generic error from Ipc{Get,Set}Operation.David Anderson2-5/+16
This makes uapi.go's public API conform to Go style in terms of error types. Signed-off-by: David Anderson <danderson@tailscale.com>