This repository has been archived by the owner on Jun 8, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgluon-ffggrz.diff
136 lines (123 loc) · 5.03 KB
/
gluon-ffggrz.diff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
diff --git a/package/gluon-config-mode-mesh-vpn/luasrc/lib/gluon/config-mode/reboot/0100-mesh-vpn.lua b/package/gluon-config-mode-mesh-vpn/luasrc/lib/gluon/config-mode/reboot/0100-mesh-vpn.lua
index b94d194a..c25b1411 100644
--- a/package/gluon-config-mode-mesh-vpn/luasrc/lib/gluon/config-mode/reboot/0100-mesh-vpn.lua
+++ b/package/gluon-config-mode-mesh-vpn/luasrc/lib/gluon/config-mode/reboot/0100-mesh-vpn.lua
@@ -11,9 +11,11 @@ local util = require "gluon.util"
local pretty_hostname = require 'pretty_hostname'
+
local has_fastd = unistd.access('/lib/gluon/mesh-vpn/fastd')
local has_tunneldigger = unistd.access('/lib/gluon/mesh-vpn/tunneldigger')
-
+local fastd_enabled = uci:get_bool("fastd", "mesh_vpn", "enabled")
+local tunneldigger_enabled = uci:get_bool("tunneldigger", "mesh_vpn", "enabled")
local hostname = pretty_hostname.get(uci)
local contact = uci:get_first("gluon-node-info", "owner", "contact")
@@ -22,19 +24,13 @@ local pubkey
local msg
-if has_tunneldigger then
- local tunneldigger_enabled = uci:get_bool("tunneldigger", "mesh_vpn", "enabled")
- if not tunneldigger_enabled then
- msg = site_i18n._translate('gluon-config-mode:novpn')
- end
-elseif has_fastd then
- local fastd_enabled = uci:get_bool("fastd", "mesh_vpn", "enabled")
- if fastd_enabled then
- pubkey = util.trim(util.exec("/etc/init.d/fastd show_key mesh_vpn"))
- msg = site_i18n._translate('gluon-config-mode:pubkey')
- else
- msg = site_i18n._translate('gluon-config-mode:novpn')
- end
+if has_fastd and fastd_enabled then
+ pubkey = util.trim(util.exec("/etc/init.d/fastd show_key mesh_vpn"))
+ msg = site_i18n._translate('gluon-config-mode:pubkey')
+elseif has_tunneldigger and tunneldigger_enabled then
+ msg = site_i18n._translate('gluon-config-mode:nokey')
+else
+ msg = site_i18n._translate('gluon-config-mode:novpn')
end
if not msg then return end
diff --git a/package/gluon-mesh-vpn-core/luasrc/lib/gluon/mesh-vpn/update-config b/package/gluon-mesh-vpn-core/luasrc/lib/gluon/mesh-vpn/update-config
index 45ecc2d5..e9e34d41 100755
--- a/package/gluon-mesh-vpn-core/luasrc/lib/gluon/mesh-vpn/update-config
+++ b/package/gluon-mesh-vpn-core/luasrc/lib/gluon/mesh-vpn/update-config
@@ -2,14 +2,31 @@
local uci = require('simple-uci').cursor()
local unistd = require 'posix.unistd'
+local util = require 'gluon.util'
local vpn
-if unistd.access('/lib/gluon/mesh-vpn/fastd') then
- vpn = 'fastd'
-elseif unistd.access('/lib/gluon/mesh-vpn/tunneldigger') then
+local has_fastd = unistd.access('/lib/gluon/mesh-vpn/fastd')
+local has_tunneldigger = unistd.access('/lib/gluon/mesh-vpn/tunneldigger')
+if has_fastd then
+ local methods = uci:get('fastd', 'mesh_vpn', 'method')
+ if methods then
+ if util.contains(methods, 'null') then
+ if has_tunneldigger then
+ vpn = 'tunneldigger'
+ else
+ vpn = 'fastd'
+ end
+ else
+ vpn = 'fastd'
+ end
+ else
+ vpn = 'fastd'
+ end
+elseif has_tunneldigger then
vpn = 'tunneldigger'
end
+
local vpn_config = {
enabled = uci:get_bool('gluon', 'mesh_vpn', 'enabled'),
limit_enabled = uci:get_bool('gluon', 'mesh_vpn', 'limit_enabled'),
diff --git a/package/gluon-mesh-vpn-core/luasrc/lib/gluon/upgrade/500-mesh-vpn b/package/gluon-mesh-vpn-core/luasrc/lib/gluon/upgrade/500-mesh-vpn
index 019b9afb..97e4e586 100755
--- a/package/gluon-mesh-vpn-core/luasrc/lib/gluon/upgrade/500-mesh-vpn
+++ b/package/gluon-mesh-vpn-core/luasrc/lib/gluon/upgrade/500-mesh-vpn
@@ -35,32 +35,33 @@ uci:save('firewall')
-- VPN migration
if not uci:get('gluon', 'mesh_vpn') then
- local vpn
- if unistd.access('/lib/gluon/mesh-vpn/fastd') then
- vpn = 'fastd'
- elseif unistd.access('/lib/gluon/mesh-vpn/tunneldigger') then
- vpn = 'tunneldigger'
- end
-
local fastd_enabled = uci:get('fastd', 'mesh_vpn', 'enabled')
local tunneldigger_enabled = uci:get('tunneldigger', 'mesh_vpn', 'enabled')
+ -- Migration Gera-Greiz from gluon-web-mesh-vpn-select to standard gluon-web-mesh-vpn-fastd
+ if tunneldigger_enabled == '1' then
+ local methods = {}
+ table.insert(methods, 'null')
+ for _, method in ipairs(site.mesh_vpn.fastd.methods()) do
+ if method ~= 'null' then
+ table.insert(methods, method)
+ end
+ end
+ uci:set('fastd', 'mesh_vpn', 'method', methods)
+ uci:save('fastd')
+ uci:commit('fastd')
+ end
+
local enabled
- -- If the installed VPN package has its enabled state set, keep the value
- if vpn == 'fastd' and fastd_enabled then
- enabled = fastd_enabled == '1'
- elseif vpn == 'tunneldigger' and tunneldigger_enabled then
- enabled = tunneldigger_enabled == '1'
- -- Otherwise, migrate the other package's value if any is set
- elseif fastd_enabled or tunneldigger_enabled then
+ -- If any of the VPN package has its enabled state set, keep the value
+ if fastd_enabled or tunnelgigger_enabled then
enabled = fastd_enabled == '1' or tunneldigger_enabled == '1'
-- If nothing is set, use the default
else
enabled = site.mesh_vpn.enabled(false)
end
-
local limit_enabled = tonumber((uci:get('simple-tc', 'mesh_vpn', 'enabled')))
if limit_enabled == nil then
limit_enabled = site.mesh_vpn.bandwidth_limit.enabled(false)