|
|
|
|
@ -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") |
|
|
|
|
|