diff --git a/ipn/ipnstate/ipnstate.go b/ipn/ipnstate/ipnstate.go index cc01d31fe..ac754e28f 100644 --- a/ipn/ipnstate/ipnstate.go +++ b/ipn/ipnstate/ipnstate.go @@ -186,15 +186,33 @@ type StatusUpdater interface { func (st *Status) WriteHTML(w io.Writer) { f := func(format string, args ...interface{}) { fmt.Fprintf(w, format, args...) } - f(``) - f("

Tailscale State

") + f(` + + +Tailscale State + + + +

Tailscale State

+`) + //f("

logid: %s

\n", logid) //f("

opts: %s

\n", html.EscapeString(fmt.Sprintf("%+v", opts))) - f("") + f("
PeerNodeRxTxHandshakeEndpoints
\n\n") + f("\n") + f("\n\n") now := time.Now() @@ -224,33 +242,35 @@ func (st *Status) WriteHTML(w io.Writer) { owner = owner[:i] } } - f("", + f("", peer.ShortString(), - osEmoji(ps.OS)+" "+html.EscapeString(ps.SimpleHostName()), - html.EscapeString(owner), + html.EscapeString(ps.SimpleHostName()), + osEmoji(ps.OS), ps.TailAddr, + html.EscapeString(owner), ps.RxBytes, ps.TxBytes, hsAgo, ) - f("") // end Addrs + f("") // end Addrs f("\n") } - f("
PeerNodeOwnerRxTxHandshakeEndpoints
%s%s
%s
%s
%v%v%v
%s%s %s
%s
%s%v%v%v") + f("") match := false for _, addr := range ps.Addrs { if addr == ps.CurAddr { match = true - f("%s 🔗
\n", addr) + f("🔗 %s
", addr) } else { - f("%s
\n", addr) + f("%s
", addr) } } if ps.CurAddr != "" && !match { - f("%s \xf0\x9f\xa7\xb3
\n", ps.CurAddr) + f("%s \xf0\x9f\xa7\xb3
", ps.CurAddr) } - f("
") + f("\n\n") + f("\n\n") } func osEmoji(os string) string {