0100-mesh-vpn.lua 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. local uci = require("simple-uci").cursor()
  2. local lutil = require "gluon.web.util"
  3. local fs = require "nixio.fs"
  4. local site = require 'gluon.site'
  5. local sysconfig = require 'gluon.sysconfig'
  6. local util = require "gluon.util"
  7. local pretty_hostname = require 'pretty_hostname'
  8. local has_fastd = fs.access('/lib/gluon/mesh-vpn/fastd')
  9. local has_tunneldigger = fs.access('/lib/gluon/mesh-vpn/tunneldigger')
  10. local hostname = pretty_hostname.get(uci)
  11. local contact = uci:get_first("gluon-node-info", "owner", "contact")
  12. local pubkey
  13. local msg
  14. if has_tunneldigger then
  15. local tunneldigger_enabled = uci:get_bool("tunneldigger", "mesh_vpn", "enabled")
  16. if not tunneldigger_enabled then
  17. msg = _translate('gluon-config-mode:novpn')
  18. end
  19. elseif has_fastd then
  20. local fastd_enabled = uci:get_bool("fastd", "mesh_vpn", "enabled")
  21. if fastd_enabled then
  22. pubkey = util.trim(lutil.exec("/etc/init.d/fastd show_key mesh_vpn"))
  23. msg = _translate('gluon-config-mode:pubkey')
  24. else
  25. msg = _translate('gluon-config-mode:novpn')
  26. end
  27. end
  28. if not msg then return end
  29. renderer.render_string(msg, {
  30. pubkey = pubkey,
  31. hostname = hostname,
  32. site = site,
  33. sysconfig = sysconfig,
  34. contact = contact,
  35. })