summaryrefslogtreecommitdiffhomepage
path: root/types
diff options
context:
space:
mode:
Diffstat (limited to 'types')
-rw-r--r--types/dnstype/dnstype.go1
-rw-r--r--types/dnstype/dnstype_view.go30
-rw-r--r--types/netmap/netmap.go6
-rw-r--r--types/netmap/netmap_view.go95
4 files changed, 130 insertions, 2 deletions
diff --git a/types/dnstype/dnstype.go b/types/dnstype/dnstype.go
index e1f9e9fdb..9bef2c039 100644
--- a/types/dnstype/dnstype.go
+++ b/types/dnstype/dnstype.go
@@ -6,6 +6,7 @@
package dnstype
//go:generate go run tailscale.com/cmd/cloner --type=Resolver --clonefunc=true --output=dnstype_clone.go
+//go:generate go run tailscale.com/cmd/viewer --type=Resolver --output=dnstype_view.go
import "inet.af/netaddr"
diff --git a/types/dnstype/dnstype_view.go b/types/dnstype/dnstype_view.go
new file mode 100644
index 000000000..fe63bb2a5
--- /dev/null
+++ b/types/dnstype/dnstype_view.go
@@ -0,0 +1,30 @@
+// Copyright (c) 2021 Tailscale Inc & AUTHORS All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Code generated by the following command; DO NOT EDIT.
+// tailscale.com/cmd/viewer -type Resolver
+
+package dnstype
+
+import (
+ "inet.af/netaddr"
+)
+
+// View makes a readonly view of Resolver.
+func (src *Resolver) View() ResolverView {
+ return ResolverView{src}
+}
+
+// ResolverView is a readonly view of Resolver.
+type ResolverView struct{ ж *Resolver }
+
+func (v ResolverView) Valid() bool { return v.ж != nil }
+func (v ResolverView) Addr() string { return v.ж.Addr }
+func (v ResolverView) BootstrapResolution() []netaddr.IP { return v.ж.BootstrapResolution }
+
+// A compilation failure here means this code must be regenerated, with the command at the top of this file.
+var _ResolverViewNeedsRegeneration = Resolver(struct {
+ Addr string
+ BootstrapResolution []netaddr.IP
+}{})
diff --git a/types/netmap/netmap.go b/types/netmap/netmap.go
index 556ed5d06..c22683819 100644
--- a/types/netmap/netmap.go
+++ b/types/netmap/netmap.go
@@ -5,6 +5,8 @@
// Package netmap contains the netmap.NetworkMap type.
package netmap
+//go:generate go run tailscale.com/cmd/viewer --type=NetworkMap --output=netmap_view.go
+
import (
"encoding/json"
"fmt"
@@ -66,8 +68,8 @@ type NetworkMap struct {
// MagicDNS isn't necessarily in use).
//
// It will neither start nor end with a period.
-func (nm *NetworkMap) MagicDNSSuffix() string {
- name := strings.Trim(nm.Name, ".")
+func (nm NetworkMapView) MagicDNSSuffix() string {
+ name := strings.Trim(nm.Name(), ".")
if i := strings.Index(name, "."); i != -1 {
name = name[i+1:]
}
diff --git a/types/netmap/netmap_view.go b/types/netmap/netmap_view.go
new file mode 100644
index 000000000..2fb88292e
--- /dev/null
+++ b/types/netmap/netmap_view.go
@@ -0,0 +1,95 @@
+// Copyright (c) 2021 Tailscale Inc & AUTHORS All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Code generated by the following command; DO NOT EDIT.
+// tailscale.com/cmd/viewer -type NetworkMap
+
+package netmap
+
+import (
+ "inet.af/netaddr"
+ "tailscale.com/tailcfg"
+ "tailscale.com/types/key"
+ "tailscale.com/types/wgkey"
+ "tailscale.com/wgengine/filter"
+ "time"
+)
+
+// View makes a readonly view of NetworkMap.
+func (src *NetworkMap) View() NetworkMapView {
+ return NetworkMapView{src}
+}
+
+// NetworkMapView is a readonly view of NetworkMap.
+type NetworkMapView struct{ ж *NetworkMap }
+
+func (v NetworkMapView) Valid() bool { return v.ж != nil }
+func (v NetworkMapView) SelfNode() tailcfg.NodeView { return v.ж.SelfNode.View() }
+func (v NetworkMapView) NodeKey() tailcfg.NodeKey { return v.ж.NodeKey }
+func (v NetworkMapView) PrivateKey() wgkey.Private { return v.ж.PrivateKey }
+func (v NetworkMapView) Expiry() time.Time { return v.ж.Expiry }
+func (v NetworkMapView) Name() string { return v.ж.Name }
+func (v NetworkMapView) Addresses() []netaddr.IPPrefix { return v.ж.Addresses }
+func (v NetworkMapView) LocalPort() uint16 { return v.ж.LocalPort }
+func (v NetworkMapView) MachineStatus() tailcfg.MachineStatus { return v.ж.MachineStatus }
+func (v NetworkMapView) MachineKey() key.MachinePublic { return v.ж.MachineKey }
+
+type _NetworkMapView_Peers []*tailcfg.Node
+
+func (s _NetworkMapView_Peers) Len() int { return len(s) }
+func (s _NetworkMapView_Peers) At(i int) tailcfg.NodeView { return s[i].View() }
+func (v NetworkMapView) Peers() interface {
+ Len() int
+ At(int) tailcfg.NodeView
+} {
+ return _NetworkMapView_Peers(v.ж.Peers)
+}
+func (v NetworkMapView) DNS() tailcfg.DNSConfigView { return v.ж.DNS.View() }
+func (v NetworkMapView) Hostinfo() tailcfg.HostinfoView { return v.ж.Hostinfo.View() }
+
+type _NetworkMapView_PacketFilter []filter.Match
+
+func (s _NetworkMapView_PacketFilter) Len() int { return len(s) }
+func (s _NetworkMapView_PacketFilter) At(i int) filter.MatchView { return s[i].View() }
+func (v NetworkMapView) PacketFilter() interface {
+ Len() int
+ At(int) filter.MatchView
+} {
+ return _NetworkMapView_PacketFilter(v.ж.PacketFilter)
+}
+func (v NetworkMapView) CollectServices() bool { return v.ж.CollectServices }
+func (v NetworkMapView) DERPMap() tailcfg.DERPMapView { return v.ж.DERPMap.View() }
+func (v NetworkMapView) Debug() *tailcfg.Debug {
+ ptr := v.ж.Debug
+ if ptr == nil {
+ return nil
+ }
+ cp := *ptr
+ return &cp
+}
+func (v NetworkMapView) User() tailcfg.UserID { return v.ж.User }
+func (v NetworkMapView) Domain() string { return v.ж.Domain }
+
+// A compilation failure here means this code must be regenerated, with the command at the top of this file.
+var _NetworkMapViewNeedsRegeneration = NetworkMap(struct {
+ SelfNode *tailcfg.Node
+ NodeKey tailcfg.NodeKey
+ PrivateKey wgkey.Private
+ Expiry time.Time
+ Name string
+ Addresses []netaddr.IPPrefix
+ LocalPort uint16
+ MachineStatus tailcfg.MachineStatus
+ MachineKey key.MachinePublic
+ Peers []*tailcfg.Node
+ DNS tailcfg.DNSConfig
+ Hostinfo tailcfg.Hostinfo
+ PacketFilter []filter.Match
+ CollectServices bool
+ DERPMap *tailcfg.DERPMap
+ Debug *tailcfg.Debug
+ User tailcfg.UserID
+ Domain string
+ UserProfiles map[tailcfg.UserID]tailcfg.UserProfile
+}{})