mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-18 20:51:45 +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
|
Port: 1, // version
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
if b.appConnector != nil {
|
||||||
|
ret = append(ret, tailcfg.Service{
|
||||||
|
Proto: tailcfg.AppConnector,
|
||||||
|
Port: 1, // version
|
||||||
|
})
|
||||||
|
}
|
||||||
return ret
|
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) {
|
func TestRouteAdvertiser(t *testing.T) {
|
||||||
b := newTestBackend(t)
|
b := newTestBackend(t)
|
||||||
testPrefix := netip.MustParsePrefix("192.0.0.8/32")
|
testPrefix := netip.MustParsePrefix("192.0.0.8/32")
|
||||||
|
@ -1003,7 +1003,7 @@ func dnsQueryForName(name, typStr string) []byte {
|
|||||||
b := dnsmessage.NewBuilder(nil, dnsmessage.Header{
|
b := dnsmessage.NewBuilder(nil, dnsmessage.Header{
|
||||||
OpCode: 0, // query
|
OpCode: 0, // query
|
||||||
RecursionDesired: true,
|
RecursionDesired: true,
|
||||||
ID: 0,
|
ID: 1, // arbitrary, but 0 is rejected by some servers
|
||||||
})
|
})
|
||||||
if !strings.HasSuffix(name, ".") {
|
if !strings.HasSuffix(name, ".") {
|
||||||
name += "."
|
name += "."
|
||||||
|
@ -624,11 +624,12 @@ func (h *Hostinfo) CheckRequestTags() error {
|
|||||||
type ServiceProto string
|
type ServiceProto string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
TCP = ServiceProto("tcp")
|
TCP = ServiceProto("tcp")
|
||||||
UDP = ServiceProto("udp")
|
UDP = ServiceProto("udp")
|
||||||
PeerAPI4 = ServiceProto("peerapi4")
|
PeerAPI4 = ServiceProto("peerapi4")
|
||||||
PeerAPI6 = ServiceProto("peerapi6")
|
PeerAPI6 = ServiceProto("peerapi6")
|
||||||
PeerAPIDNS = ServiceProto("peerapi-dns-proxy")
|
PeerAPIDNS = ServiceProto("peerapi-dns-proxy")
|
||||||
|
AppConnector = ServiceProto("app-connector")
|
||||||
)
|
)
|
||||||
|
|
||||||
// Service represents a service running on a node.
|
// Service represents a service running on a node.
|
||||||
@ -645,10 +646,13 @@ type Service struct {
|
|||||||
// * "peerapi6": peerapi is available on IPv6; Port is the
|
// * "peerapi6": peerapi is available on IPv6; Port is the
|
||||||
// port number that the peerapi is running on the
|
// port number that the peerapi is running on the
|
||||||
// node's Tailscale IPv6 address.
|
// 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
|
// being a DNS proxy (when the node is an exit
|
||||||
// node). For this service, the Port number is really
|
// node). For this service, the Port number is really
|
||||||
// the version number of the service.
|
// 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
|
Proto ServiceProto
|
||||||
|
|
||||||
// Port is the port number.
|
// Port is the port number.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user