summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@tailscale.com>2020-08-10 20:44:26 -0700
committerBrad Fitzpatrick <bradfitz@tailscale.com>2020-08-11 14:16:38 -0700
commit4a43111d208e019a9caab326115082f3e4434b5f (patch)
tree12eb68db141467db7f1173176d549a3e598e503e
parente118d0ad409e09401a4a98526e4e88a37a59e967 (diff)
downloadtailscale-release-branch/1.0.tar.xz
tailscale-release-branch/1.0.zip
logpolicy: consider /var/lib/tailscale when no STATE_DIRECTORYv1.0.5release-branch/1.0
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com> (cherry picked from commit 5a0c37aafd931821cd56b802c2bf48f831b5749b)
-rw-r--r--logpolicy/logpolicy.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/logpolicy/logpolicy.go b/logpolicy/logpolicy.go
index 3f648d508..41b1c9189 100644
--- a/logpolicy/logpolicy.go
+++ b/logpolicy/logpolicy.go
@@ -31,6 +31,7 @@ import (
"tailscale.com/logtail/filch"
"tailscale.com/net/netns"
"tailscale.com/net/tlsdial"
+ "tailscale.com/paths"
"tailscale.com/smallzstd"
"tailscale.com/types/logger"
"tailscale.com/version"
@@ -103,12 +104,23 @@ func (l logWriter) Write(buf []byte) (int, error) {
// logsDir returns the directory to use for log configuration and
// buffer storage.
func logsDir(logf logger.Logf) string {
+ // STATE_DIRECTORY is set by systemd 240+ but we support older
+ // systems-d. For example, Ubuntu 18.04 (Bionic Beaver) is 237.
systemdStateDir := os.Getenv("STATE_DIRECTORY")
if systemdStateDir != "" {
logf("logpolicy: using $STATE_DIRECTORY, %q", systemdStateDir)
return systemdStateDir
}
+ // Default to e.g. /var/lib/tailscale or /var/db/tailscale on Unix.
+ if d := paths.DefaultTailscaledStateFile(); d != "" {
+ d = filepath.Dir(d) // directory of e.g. "/var/lib/tailscale/tailscaled.state"
+ if err := os.MkdirAll(d, 0700); err == nil {
+ logf("logpolicy: using system state directory %q", d)
+ return d
+ }
+ }
+
cacheDir, err := os.UserCacheDir()
if err == nil {
d := filepath.Join(cacheDir, "Tailscale")