The easiest, most secure way to use WireGuard and 2FA.
Go to file
Denton Gentry 013da6660e logtail: add tests
+ add a test for parseAndRemoveLogLevel()
+ add a test for drainPendingMessages()
+ test JSON log encoding including several special cases

Other tests frequently send logs but a) don't check the result and
b) do so by happenstance, such that the code in encode() was not
consistently being exercised and leading to spurious changes in
code coverage. These tests attempt to more systematically test
the logging function.

This is the second attempt to add these tests, the first attempt
(in https://github.com/tailscale/tailscale/pull/1114) had two issues:
1. httptest.NewServer creates multiple goroutine handlers, and
   logtail uses goroutines to upload, but the first version had no
   locking in the server to guard this.
   Moved data handling into channels to get synchronization.
2. The channel to notify the test of the arrival of data had a depth
   of 1, in cases where the Logger sent multiple uploads it would
   block the server.

This resulted in the first iteration of these tests being flaky,
and we reverted it.

This new version of the tests has passed with
    go test -race -count=10000
and seems solid.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2021-01-15 19:11:40 -08:00
.github Cache go modules. 2021-01-07 21:34:43 -08:00
atomicfile atomicfile: don't Chmod on windows 2020-07-15 12:31:40 -07:00
cmd cmd/tailscale/cli: tweak the status name column a bit 2021-01-15 07:46:58 -08:00
control/controlclient all: convert from []wgcfg.Endpoint to string 2021-01-14 13:54:07 -08:00
derp net/dnscache: work on IPv6-only hosts (again) 2021-01-06 19:53:13 -08:00
disco wgengine/magicsock: run test DERP in mode where only disco packets allowed 2020-07-16 12:58:35 -07:00
internal all: convert from []wgcfg.Endpoint to string 2021-01-14 13:54:07 -08:00
ipn net/packet, wgengine, tstun: add inter-node TSMP protocol for connect errors 2021-01-15 14:03:57 -08:00
log log/filelogger: move our Windows disk file writing+rotation package here 2020-10-29 14:59:44 -07:00
logpolicy cmd/tailscaled, logpolicy, logtail: support log levels 2020-12-21 12:59:33 -08:00
logtail logtail: add tests 2021-01-15 19:11:40 -08:00
metrics metrics: add LabelMap.GetFloat 2020-07-19 12:31:12 -07:00
net net/nettest: de-flake tests on Windows 2021-01-15 18:21:56 -08:00
paths paths, cmd/tailscaled: on Windows, don't try to migrate from legacy relay.conf 2020-07-13 08:59:54 -07:00
portlist portlist: add a test for SameInodes 2021-01-12 04:29:28 -08:00
safesocket ipn, ipnserver: only require sudo on Linux for mutable CLI actions 2021-01-15 10:13:00 -08:00
scripts Allow 2021 in LICENSE header. 2021-01-08 10:23:32 -08:00
smallzstd smallzstd: new package that constructs zstd small encoders/decoders. 2020-07-02 16:13:06 -07:00
syncs Fix receiver in order to be consistent: syncs.WaitGroupChan 2020-11-24 17:20:34 -08:00
tailcfg tailcfg, control/controlclient: make MapResponse.CollectServices an opt.Bool 2021-01-12 08:08:00 -08:00
tempfork/pprof go.mod: upgrade staticcheck to 0.1.0 2020-12-14 14:01:29 -08:00
tsconst net/netns: add windows support. 2020-09-14 16:28:49 -07:00
tstest ipn: close logger at the end of TestLocalLogLines 2021-01-08 17:10:48 -08:00
tstime tstime: add Parse3339B, for byte slices 2020-11-19 14:47:11 -08:00
tsweb tsweb: export VarzHandler 2021-01-14 11:49:44 -08:00
types wgengine/magicsock: close test loggers once we're done with them 2021-01-15 14:44:56 -08:00
util cmd/tailscale: change formatting of "tailscale status" 2021-01-10 12:11:22 -08:00
version version: new version for a new year 2021-01-04 08:58:05 -08:00
wgengine tstun: add test to send a packet after Close() 2021-01-15 19:11:40 -08:00
.gitattributes .gitattributes: add a smudge filter for go.mod. 2020-02-19 20:02:02 -05:00
.gitignore add nix-shell boilerplate (#1028) 2020-12-29 12:17:03 -05:00
api.md API.md: add documentation for deleting a device 2021-01-12 06:01:00 -08:00
AUTHORS Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
build_dist.sh build_dist: fix after version refactor. 2020-11-03 14:40:09 -08:00
CODE_OF_CONDUCT.md Add a code of conduct. 2020-02-10 22:16:30 -08:00
Dockerfile Dockerfile: add big warning banner 2021-01-11 19:23:47 -08:00
go.mod go.mod: bump to pull in minor wireguard-go changes 2021-01-15 17:35:03 -08:00
go.sum go.sum: update 2021-01-14 20:19:44 -08:00
LICENSE Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
Makefile Makefile: remove tsshd from depaware 2020-09-11 11:09:32 -07:00
PATENTS Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
README.md README: names of contributors, link to them instead 2021-01-12 08:24:32 -08:00
SECURITY.md Add a SECURITY.md for vulnerability reports. 2020-02-11 10:26:41 -08:00
shell.nix add nix-shell boilerplate (#1028) 2020-12-29 12:17:03 -05:00
VERSION.txt VERSION.txt: this is now 1.3.x. 2020-11-03 15:09:02 -08:00

Tailscale

https://tailscale.com

Private WireGuard® networks made easy

Overview

This repository contains all the open source Tailscale client code and the tailscaled daemon and tailscale CLI tool. The tailscaled daemon runs primarily on Linux; it also works to varying degrees on FreeBSD, OpenBSD, Darwin, and Windows.

The Android app is at https://github.com/tailscale/tailscale-android

Using

We serve packages for a variety of distros at https://pkgs.tailscale.com .

Other clients

The macOS, iOS, and Windows clients use the code in this repository but additionally include small GUI wrappers that are not open source.

Building

go install tailscale.com/cmd/tailscale{,d}

If you're packaging Tailscale for distribution, use build_dist.sh instead, to burn commit IDs and version info into the binaries:

./build_dist.sh tailscale.com/cmd/tailscale
./build_dist.sh tailscale.com/cmd/tailscaled

If your distro has conventions that preclude the use of build_dist.sh, please do the equivalent of what it does in your distro's way, so that bug reports contain useful version information.

We only guarantee to support the latest Go release and any Go beta or release candidate builds (currently Go 1.15) in module mode. It might work in earlier Go versions or in GOPATH mode, but we're making no effort to keep those working.

Bugs

Please file any issues about this code or the hosted service on the issue tracker.

Contributing

PRs welcome! But please file bugs. Commit messages should reference bugs.

We require Developer Certificate of Origin Signed-off-by lines in commits.

About Us

Tailscale is primarily developed by the people at https://github.com/orgs/tailscale/people. For other contributors, see:

WireGuard is a registered trademark of Jason A. Donenfeld.