mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-18 08:16:39 +00:00
fix host resolution
This commit is contained in:
@@ -78,12 +78,18 @@ func (m *managerImpl) replaceHostByLookup(ctx context.Context, accountID string,
|
|||||||
return fmt.Errorf("failed to get peer by id: %w", err)
|
return fmt.Errorf("failed to get peer by id: %w", err)
|
||||||
}
|
}
|
||||||
target.Host = peer.IP.String()
|
target.Host = peer.IP.String()
|
||||||
case reverseproxy.TargetTypeHost, reverseproxy.TargetTypeDomain:
|
case reverseproxy.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 {
|
||||||
return fmt.Errorf("failed to get resource by id: %w", err)
|
return fmt.Errorf("failed to get resource by id: %w", err)
|
||||||
}
|
}
|
||||||
target.Host = resource.Address
|
target.Host = resource.Prefix.Addr().String()
|
||||||
|
case reverseproxy.TargetTypeDomain:
|
||||||
|
resource, err := m.store.GetNetworkResourceByID(ctx, store.LockingStrengthNone, accountID, target.TargetId)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to get resource by id: %w", err)
|
||||||
|
}
|
||||||
|
target.Host = resource.Domain
|
||||||
case reverseproxy.TargetTypeSubnet:
|
case reverseproxy.TargetTypeSubnet:
|
||||||
// For subnets we do not do any lookups on the resource
|
// For subnets we do not do any lookups on the resource
|
||||||
default:
|
default:
|
||||||
@@ -176,6 +182,11 @@ func (m *managerImpl) CreateReverseProxy(ctx context.Context, accountID, userID
|
|||||||
|
|
||||||
m.accountManager.StoreEvent(ctx, userID, reverseProxy.ID, accountID, activity.ReverseProxyCreated, reverseProxy.EventMeta())
|
m.accountManager.StoreEvent(ctx, userID, reverseProxy.ID, accountID, activity.ReverseProxyCreated, reverseProxy.EventMeta())
|
||||||
|
|
||||||
|
err = m.replaceHostByLookup(ctx, accountID, reverseProxy)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to replace host by lookup for proxy %s: %w", reverseProxy.ID, err)
|
||||||
|
}
|
||||||
|
|
||||||
m.proxyGRPCServer.SendReverseProxyUpdateToCluster(reverseProxy.ToProtoMapping(reverseproxy.Create, token, m.proxyGRPCServer.GetOIDCValidationConfig()), reverseProxy.ProxyCluster)
|
m.proxyGRPCServer.SendReverseProxyUpdateToCluster(reverseProxy.ToProtoMapping(reverseproxy.Create, token, m.proxyGRPCServer.GetOIDCValidationConfig()), reverseProxy.ProxyCluster)
|
||||||
|
|
||||||
m.accountManager.UpdateAccountPeers(ctx, accountID)
|
m.accountManager.UpdateAccountPeers(ctx, accountID)
|
||||||
@@ -248,6 +259,11 @@ func (m *managerImpl) UpdateReverseProxy(ctx context.Context, accountID, userID
|
|||||||
|
|
||||||
m.accountManager.StoreEvent(ctx, userID, reverseProxy.ID, accountID, activity.ReverseProxyUpdated, reverseProxy.EventMeta())
|
m.accountManager.StoreEvent(ctx, userID, reverseProxy.ID, accountID, activity.ReverseProxyUpdated, reverseProxy.EventMeta())
|
||||||
|
|
||||||
|
err = m.replaceHostByLookup(ctx, accountID, reverseProxy)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to replace host by lookup for proxy %s: %w", reverseProxy.ID, err)
|
||||||
|
}
|
||||||
|
|
||||||
token, err := m.tokenStore.GenerateToken(accountID, reverseProxy.ID, 5*time.Minute)
|
token, err := m.tokenStore.GenerateToken(accountID, reverseProxy.ID, 5*time.Minute)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to generate authentication token: %w", err)
|
return nil, fmt.Errorf("failed to generate authentication token: %w", err)
|
||||||
|
|||||||
Reference in New Issue
Block a user