mirror of
https://github.com/tailscale/tailscale.git
synced 2025-01-08 09:07:44 +00:00
control/controlclient: use "getprop net.hostname" for Android hostname
Updates #409
This commit is contained in:
parent
2b74236567
commit
afb9c6a6ab
@ -18,7 +18,9 @@
|
|||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
"os/exec"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
@ -159,7 +161,13 @@ func NewDirect(opts Options) (*Direct, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewHostinfo() *tailcfg.Hostinfo {
|
func NewHostinfo() *tailcfg.Hostinfo {
|
||||||
hostname, _ := os.Hostname()
|
var hostname string
|
||||||
|
if runtime.GOOS == "android" {
|
||||||
|
hostname = androidHostname()
|
||||||
|
}
|
||||||
|
if hostname == "" {
|
||||||
|
hostname, _ = os.Hostname()
|
||||||
|
}
|
||||||
return &tailcfg.Hostinfo{
|
return &tailcfg.Hostinfo{
|
||||||
IPNVersion: version.LONG,
|
IPNVersion: version.LONG,
|
||||||
Hostname: hostname,
|
Hostname: hostname,
|
||||||
@ -167,6 +175,20 @@ func NewHostinfo() *tailcfg.Hostinfo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var androidHostnameOnce struct {
|
||||||
|
_ structs.Incomparable
|
||||||
|
sync.Once
|
||||||
|
v string
|
||||||
|
}
|
||||||
|
|
||||||
|
func androidHostname() string {
|
||||||
|
androidHostnameOnce.Do(func() {
|
||||||
|
out, _ := exec.Command("getprop", "net.hostname").Output()
|
||||||
|
androidHostnameOnce.v = strings.TrimSpace(string(out))
|
||||||
|
})
|
||||||
|
return androidHostnameOnce.v
|
||||||
|
}
|
||||||
|
|
||||||
// SetHostinfo clones the provided Hostinfo and remembers it for the
|
// SetHostinfo clones the provided Hostinfo and remembers it for the
|
||||||
// next update. It reports whether the Hostinfo has changed.
|
// next update. It reports whether the Hostinfo has changed.
|
||||||
func (c *Direct) SetHostinfo(hi *tailcfg.Hostinfo) bool {
|
func (c *Direct) SetHostinfo(hi *tailcfg.Hostinfo) bool {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user