package config import ( "fmt" "os" "time" ) const TimeFormat = "2006-01-02/15:04:05" const TimeMsFormat = "2006-01-02/15:04:05.000" const IoTimeout = 5 * time.Second const defaultName = "default" func GetSysSocketPath(name string) string { const path = "/run/tunnel/" if name == "" { name = defaultName } return path + name } func getuid() int { uid := os.Getuid() if uid < 0 { panic("os.Getuid() returns negative uid") } return uid } func runAsRoot() bool { uid := os.Getuid() if uid < 0 { panic("os.Getuid() returns negative uid") } return uid == 0 } func GetSocketPath(name string) string { if uid := getuid(); uid == 0 { return GetSysSocketPath(name) } else { if name == "" { name = defaultName } return fmt.Sprintf("/run/user/%d/tunnel/%s", uid, name) } } func GetConfigPath() string { if uid := getuid(); uid == 0 { return "/etc/tunnel.conf" } else if s, err := os.UserConfigDir(); err == nil { return s + "/tunnel/config" } else { return "" } }