use peer fqdn on https

This commit is contained in:
pascal
2026-04-17 18:10:05 +02:00
parent 8ae8f2098f
commit 8bccbf9304
2 changed files with 28 additions and 16 deletions
@@ -12,6 +12,7 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"github.com/netbirdio/netbird/management/internals/controllers/network_map"
nbpeer "github.com/netbirdio/netbird/management/server/peer" nbpeer "github.com/netbirdio/netbird/management/server/peer"
resourcetypes "github.com/netbirdio/netbird/management/server/networks/resources/types" resourcetypes "github.com/netbirdio/netbird/management/server/networks/resources/types"
@@ -82,24 +83,26 @@ type CapabilityProvider interface {
} }
type Manager struct { type Manager struct {
store store.Store store store.Store
accountManager account.Manager accountManager account.Manager
permissionsManager permissions.Manager permissionsManager permissions.Manager
proxyController proxy.Controller proxyController proxy.Controller
capabilities CapabilityProvider networkMapController network_map.Controller
clusterDeriver ClusterDeriver capabilities CapabilityProvider
exposeReaper *exposeReaper clusterDeriver ClusterDeriver
exposeReaper *exposeReaper
} }
// NewManager creates a new service manager. // NewManager creates a new service manager.
func NewManager(store store.Store, accountManager account.Manager, permissionsManager permissions.Manager, proxyController proxy.Controller, capabilities CapabilityProvider, clusterDeriver ClusterDeriver) *Manager { func NewManager(store store.Store, accountManager account.Manager, permissionsManager permissions.Manager, proxyController proxy.Controller, capabilities CapabilityProvider, clusterDeriver ClusterDeriver, networkMapController network_map.Controller) *Manager {
mgr := &Manager{ mgr := &Manager{
store: store, store: store,
accountManager: accountManager, accountManager: accountManager,
permissionsManager: permissionsManager, permissionsManager: permissionsManager,
proxyController: proxyController, proxyController: proxyController,
capabilities: capabilities, networkMapController: networkMapController,
clusterDeriver: clusterDeriver, capabilities: capabilities,
clusterDeriver: clusterDeriver,
} }
mgr.exposeReaper = &exposeReaper{manager: mgr} mgr.exposeReaper = &exposeReaper{manager: mgr}
return mgr return mgr
@@ -157,7 +160,16 @@ func (m *Manager) replaceHostByLookup(ctx context.Context, accountID string, s *
target.Host = unknownHostPlaceholder target.Host = unknownHostPlaceholder
continue continue
} }
target.Host = peer.IP.String() if target.Protocol == "https" {
settings, err := m.accountManager.GetAccountSettings(ctx, accountID, activity.SystemInitiator)
if err != nil {
return fmt.Errorf("failed to get account settings for DNS domain lookup: %w", err)
}
dnsDomain := m.networkMapController.GetDNSDomain(settings)
target.Host = peer.FQDN(dnsDomain)
} else {
target.Host = peer.IP.String()
}
case service.TargetTypeHost: case service.TargetTypeHost:
resource, err := m.store.GetNetworkResourceByID(ctx, store.LockingStrengthNone, accountID, target.TargetId) resource, err := m.store.GetNetworkResourceByID(ctx, store.LockingStrengthNone, accountID, target.TargetId)
if err != nil { if err != nil {
+1 -1
View File
@@ -197,7 +197,7 @@ func (s *BaseServer) RecordsManager() records.Manager {
func (s *BaseServer) ServiceManager() service.Manager { func (s *BaseServer) ServiceManager() service.Manager {
return Create(s, func() service.Manager { return Create(s, func() service.Manager {
return nbreverseproxy.NewManager(s.Store(), s.AccountManager(), s.PermissionsManager(), s.ServiceProxyController(), s.ProxyManager(), s.ReverseProxyDomainManager()) return nbreverseproxy.NewManager(s.Store(), s.AccountManager(), s.PermissionsManager(), s.ServiceProxyController(), s.ProxyManager(), s.ReverseProxyDomainManager(), s.NetworkMapController())
}) })
} }