mirror of
https://github.com/gravitl/netmaker.git
synced 2024-09-21 07:46:04 +08:00
change listen port to proxy on ext client creation if proxy used on ingress GW
This commit is contained in:
parent
bc45797542
commit
972ded5a2d
|
@ -332,7 +332,11 @@ func createExtClient(w http.ResponseWriter, r *http.Request) {
|
|||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||
return
|
||||
}
|
||||
extclient.IngressGatewayEndpoint = node.Endpoint + ":" + strconv.FormatInt(int64(node.ListenPort), 10)
|
||||
listenPort := node.ListenPort
|
||||
if node.Proxy {
|
||||
listenPort = 51722
|
||||
}
|
||||
extclient.IngressGatewayEndpoint = node.Endpoint + ":" + strconv.FormatInt(int64(listenPort), 10)
|
||||
|
||||
extclient.Enabled = true
|
||||
parentNetwork, err := logic.GetNetwork(networkName)
|
||||
|
|
|
@ -230,8 +230,8 @@ func CreateIngressGateway(netid string, nodeid string, failover bool) (models.No
|
|||
}
|
||||
}
|
||||
node.SetLastModified()
|
||||
// node.PostUp = postUpCmd
|
||||
// node.PostDown = postDownCmd
|
||||
node.PostUp = postUpCmd
|
||||
node.PostDown = postDownCmd
|
||||
node.UDPHolePunch = "no"
|
||||
if failover && servercfg.Is_EE {
|
||||
node.Failover = "yes"
|
||||
|
|
|
@ -26,10 +26,7 @@ func PublishPeerUpdate(newNode *models.Node, publishToSelf bool) error {
|
|||
return err
|
||||
}
|
||||
for _, node := range networkNodes {
|
||||
// err := PublishProxyUpdate(manager.AddInterface, &node)
|
||||
// if err != nil {
|
||||
// logger.Log(1, "failed to publish proxy update to node", node.Name, "on network", node.Network, ":", err.Error())
|
||||
// }
|
||||
|
||||
if node.IsServer == "yes" {
|
||||
if servercfg.IsProxyEnabled() {
|
||||
err := PublishProxyUpdate(manager.AddInterface, &node)
|
||||
|
|
|
@ -234,6 +234,7 @@ func (m *ManagerAction) processPayload() (*wg.WGIface, error) {
|
|||
|
||||
if currentPeer, ok := wgProxyConf.PeerMap[m.Payload.Peers[i].PublicKey.String()]; ok {
|
||||
if currentPeer.IsAttachedExtClient {
|
||||
m.Payload.Peers = append(m.Payload.Peers[:i], m.Payload.Peers[i+1:]...)
|
||||
continue
|
||||
}
|
||||
// check if proxy is off for the peer
|
||||
|
@ -351,43 +352,10 @@ func (m *ManagerAction) AddInterfaceToProxy() error {
|
|||
log.Println("Endpoint nil for peer: ", peerI.PublicKey.String())
|
||||
continue
|
||||
}
|
||||
if peerConf.IsExtClient && !common.IsIngressGateway {
|
||||
continue
|
||||
}
|
||||
shouldProceed := false
|
||||
if peerConf.IsExtClient && peerConf.IsAttachedExtClient {
|
||||
// check if ext client got endpoint,otherwise continue
|
||||
for _, devpeerI := range wgInterface.Device.Peers {
|
||||
if devpeerI.PublicKey.String() == peerI.PublicKey.String() && devpeerI.Endpoint != nil {
|
||||
peerI.Endpoint = devpeerI.Endpoint
|
||||
shouldProceed = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
shouldProceed = true
|
||||
}
|
||||
if peerConf.IsExtClient && peerConf.IsAttachedExtClient && shouldProceed {
|
||||
// ctx, cancel := context.WithCancel(context.Background())
|
||||
// common.ExtClientsWaitTh[peerI.PublicKey.String()] = common.ExtClientPeer{
|
||||
// CancelFunc: cancel,
|
||||
// }
|
||||
//go proxy.StartSniffer(ctx, wgInterface.Name, m.Payload.WgAddr, peerConf.Address, wgInterface.Port)
|
||||
}
|
||||
|
||||
if peerConf.IsExtClient && !peerConf.IsAttachedExtClient {
|
||||
peerI.Endpoint = peerConf.IngressGatewayEndPoint
|
||||
}
|
||||
if shouldProceed {
|
||||
common.PeerKeyHashMap[fmt.Sprintf("%x", md5.Sum([]byte(peerI.PublicKey.String())))] = models.RemotePeer{
|
||||
Interface: m.Payload.InterfaceName,
|
||||
PeerKey: peerI.PublicKey.String(),
|
||||
IsExtClient: peerConf.IsExtClient,
|
||||
Endpoint: peerI.Endpoint,
|
||||
IsAttachedExtClient: peerConf.IsAttachedExtClient,
|
||||
}
|
||||
}
|
||||
|
||||
var isRelayed bool
|
||||
var relayedTo *net.UDPAddr
|
||||
|
@ -400,8 +368,8 @@ func (m *ManagerAction) AddInterfaceToProxy() error {
|
|||
relayedTo = peerConf.RelayedTo
|
||||
|
||||
}
|
||||
if !shouldProceed && peerConf.IsAttachedExtClient {
|
||||
log.Println("Extclient endpoint not updated yet....skipping")
|
||||
if peerConf.IsAttachedExtClient {
|
||||
log.Println("Extclient Thread...")
|
||||
go func(wgInterface *wg.WGIface, peer *wgtypes.PeerConfig,
|
||||
isRelayed bool, relayTo *net.UDPAddr, peerConf PeerConf, ingGwAddr string) {
|
||||
addExtClient := false
|
||||
|
@ -454,6 +422,13 @@ func (m *ManagerAction) AddInterfaceToProxy() error {
|
|||
}(wgInterface, &peerI, isRelayed, relayedTo, peerConf, m.Payload.WgAddr)
|
||||
continue
|
||||
}
|
||||
common.PeerKeyHashMap[fmt.Sprintf("%x", md5.Sum([]byte(peerI.PublicKey.String())))] = models.RemotePeer{
|
||||
Interface: m.Payload.InterfaceName,
|
||||
PeerKey: peerI.PublicKey.String(),
|
||||
IsExtClient: peerConf.IsExtClient,
|
||||
Endpoint: peerI.Endpoint,
|
||||
IsAttachedExtClient: peerConf.IsAttachedExtClient,
|
||||
}
|
||||
|
||||
peerpkg.AddNewPeer(wgInterface, &peerI, peerConf.Address, isRelayed,
|
||||
peerConf.IsExtClient, peerConf.IsAttachedExtClient, relayedTo)
|
||||
|
|
Loading…
Reference in a new issue