mirror of
https://github.com/tailscale/tailscale.git
synced 2025-02-18 02:48:40 +00:00
ipn/ipnlocal,tailcfg: add AppConnector service to HostInfo when configured
Updates tailscale/corp#15437 Signed-off-by: James Tucker <james@tailscale.com>
This commit is contained in:
parent
6ad54fed00
commit
228a82f178
@ -3166,6 +3166,12 @@ func (b *LocalBackend) peerAPIServicesLocked() (ret []tailcfg.Service) {
|
||||
Port: 1, // version
|
||||
})
|
||||
}
|
||||
if b.appConnector != nil {
|
||||
ret = append(ret, tailcfg.Service{
|
||||
Proto: tailcfg.AppConnector,
|
||||
Port: 1, // version
|
||||
})
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
|
@ -1157,6 +1157,28 @@ func TestOfferingAppConnector(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestAppConnectorHostinfoService(t *testing.T) {
|
||||
hasAppConnectorService := func(s []tailcfg.Service) bool {
|
||||
for _, s := range s {
|
||||
if s.Proto == tailcfg.AppConnector && s.Port == 1 {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
b := newTestBackend(t)
|
||||
b.mu.Lock()
|
||||
defer b.mu.Unlock()
|
||||
if hasAppConnectorService(b.peerAPIServicesLocked()) {
|
||||
t.Fatal("unexpected app connector service")
|
||||
}
|
||||
b.appConnector = appc.NewEmbeddedAppConnector(t.Logf, nil)
|
||||
if !hasAppConnectorService(b.peerAPIServicesLocked()) {
|
||||
t.Fatal("expected app connector service")
|
||||
}
|
||||
}
|
||||
|
||||
func TestRouteAdvertiser(t *testing.T) {
|
||||
b := newTestBackend(t)
|
||||
testPrefix := netip.MustParsePrefix("192.0.0.8/32")
|
||||
|
@ -1003,7 +1003,7 @@ func dnsQueryForName(name, typStr string) []byte {
|
||||
b := dnsmessage.NewBuilder(nil, dnsmessage.Header{
|
||||
OpCode: 0, // query
|
||||
RecursionDesired: true,
|
||||
ID: 0,
|
||||
ID: 1, // arbitrary, but 0 is rejected by some servers
|
||||
})
|
||||
if !strings.HasSuffix(name, ".") {
|
||||
name += "."
|
||||
|
@ -624,11 +624,12 @@ func (h *Hostinfo) CheckRequestTags() error {
|
||||
type ServiceProto string
|
||||
|
||||
const (
|
||||
TCP = ServiceProto("tcp")
|
||||
UDP = ServiceProto("udp")
|
||||
PeerAPI4 = ServiceProto("peerapi4")
|
||||
PeerAPI6 = ServiceProto("peerapi6")
|
||||
PeerAPIDNS = ServiceProto("peerapi-dns-proxy")
|
||||
TCP = ServiceProto("tcp")
|
||||
UDP = ServiceProto("udp")
|
||||
PeerAPI4 = ServiceProto("peerapi4")
|
||||
PeerAPI6 = ServiceProto("peerapi6")
|
||||
PeerAPIDNS = ServiceProto("peerapi-dns-proxy")
|
||||
AppConnector = ServiceProto("app-connector")
|
||||
)
|
||||
|
||||
// Service represents a service running on a node.
|
||||
@ -645,10 +646,13 @@ type Service struct {
|
||||
// * "peerapi6": peerapi is available on IPv6; Port is the
|
||||
// port number that the peerapi is running on the
|
||||
// node's Tailscale IPv6 address.
|
||||
// * "peerapi-dns": the local peerapi service supports
|
||||
// * "peerapi-dns-proxy": the local peerapi service supports
|
||||
// being a DNS proxy (when the node is an exit
|
||||
// node). For this service, the Port number is really
|
||||
// the version number of the service.
|
||||
// * "app-connector": the local app-connector service is
|
||||
// available. For this service, the Port number is
|
||||
// really the version number of the service.
|
||||
Proto ServiceProto
|
||||
|
||||
// Port is the port number.
|
||||
|
Loading…
x
Reference in New Issue
Block a user