common.go 1004 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package common
  2. import (
  3. "log"
  4. "os/exec"
  5. "strings"
  6. "github.com/gravitl/netmaker/nm-proxy/models"
  7. )
  8. var IsRelay bool
  9. var IsIngressGateway bool
  10. var IsRelayed bool
  11. var IsServer bool
  12. var InterfaceName string
  13. var BehindNAT bool
  14. var WgIfaceMap = models.WgIfaceConf{
  15. Iface: nil,
  16. PeerMap: make(map[string]*models.Conn),
  17. }
  18. var PeerKeyHashMap = make(map[string]models.RemotePeer)
  19. //var WgIfaceKeyMap = make(map[string]models.RemotePeer)
  20. var RelayPeerMap = make(map[string]map[string]models.RemotePeer)
  21. var ExtClientsWaitTh = make(map[string]models.ExtClientPeer)
  22. var ExtSourceIpMap = make(map[string]models.RemotePeer)
  23. // RunCmd - runs a local command
  24. func RunCmd(command string, printerr bool) (string, error) {
  25. args := strings.Fields(command)
  26. cmd := exec.Command(args[0], args[1:]...)
  27. cmd.Wait()
  28. out, err := cmd.CombinedOutput()
  29. if err != nil && printerr {
  30. log.Println("error running command: ", command)
  31. log.Println(strings.TrimSuffix(string(out), "\n"))
  32. }
  33. return string(out), err
  34. }