diff --git a/nm-proxy/common/common.go b/nm-proxy/common/common.go index 7a47e41c..8acc1dd6 100644 --- a/nm-proxy/common/common.go +++ b/nm-proxy/common/common.go @@ -88,8 +88,6 @@ var RelayPeerMap = make(map[string]map[string]RemotePeer) var ExtClientsWaitTh = make(map[string][]context.CancelFunc) -var PeerAddrMap = make(map[string]map[string]*Conn) - // RunCmd - runs a local command func RunCmd(command string, printerr bool) (string, error) { args := strings.Fields(command) diff --git a/nm-proxy/manager/manager.go b/nm-proxy/manager/manager.go index 09e218dd..ef18ed36 100644 --- a/nm-proxy/manager/manager.go +++ b/nm-proxy/manager/manager.go @@ -205,6 +205,12 @@ func (m *ManagerAction) processPayload() (*wg.WGIface, error) { for i := len(m.Payload.Peers) - 1; i >= 0; i-- { if currentPeer, ok := wgProxyConf.PeerMap[m.Payload.Peers[i].PublicKey.String()]; ok { + + // handles ext clients + if common.IsIngressGateway && m.Payload.PeerMap[m.Payload.Peers[i].PublicKey.String()].IsAttachedExtClient { + // check if sniffer already exists otherwise start one + continue + } // check if proxy is off for the peer if !m.Payload.PeerMap[m.Payload.Peers[i].PublicKey.String()].Proxy { @@ -290,6 +296,7 @@ func (m *ManagerAction) processPayload() (*wg.WGIface, error) { m.Payload.Peers = append(m.Payload.Peers[:i], m.Payload.Peers[i+1:]...) } } + // sync peer map with new update for _, currPeerI := range wgProxyConf.PeerMap { if _, ok := m.Payload.PeerMap[currPeerI.Config.Key]; !ok { currPeerI.Proxy.Cancel() @@ -303,6 +310,9 @@ func (m *ManagerAction) processPayload() (*wg.WGIface, error) { } } + + // sync dev peers with new update + common.WgIFaceMap[m.Payload.InterfaceName] = wgProxyConf // if peers, ok := common.WgIFaceMap[iface]; ok { diff --git a/nm-proxy/peer/peer.go b/nm-proxy/peer/peer.go index 4151b97d..5a1c4b86 100644 --- a/nm-proxy/peer/peer.go +++ b/nm-proxy/peer/peer.go @@ -118,12 +118,6 @@ func AddNewPeer(wgInterface *wg.WGIface, peer *wgtypes.PeerConfig, peerAddr stri common.WgIFaceMap[wgInterface.Name] = ifaceConf common.WgIFaceMap[wgInterface.Name].PeerMap[peer.PublicKey.String()] = &peerConn } - if _, ok := common.PeerAddrMap[wgInterface.Name]; ok { - common.PeerAddrMap[wgInterface.Name][peerAddr] = &peerConn - } else { - common.PeerAddrMap[wgInterface.Name] = make(map[string]*common.Conn) - common.PeerAddrMap[wgInterface.Name][peerAddr] = &peerConn - } return nil }