summaryrefslogtreecommitdiff
path: root/mesecons_microcontroller
diff options
context:
space:
mode:
authorSmallJoker <SmallJoker@users.noreply.github.com>2018-07-23 13:00:59 +0200
committerVitaliy <silverunicorn2011@yandex.ru>2018-07-23 14:00:59 +0300
commit5a0492b176fa6f01925c87a8ad22034a5ed66155 (patch)
treec0b467db7a58d7bafc69202728cfe09ebfd3248e /mesecons_microcontroller
parentf61b1affea744e2bb131b2e01bbc47b3a36b99f2 (diff)
downloadmesecons-5a0492b176fa6f01925c87a8ad22034a5ed66155.tar
mesecons-5a0492b176fa6f01925c87a8ad22034a5ed66155.tar.gz
mesecons-5a0492b176fa6f01925c87a8ad22034a5ed66155.tar.bz2
mesecons-5a0492b176fa6f01925c87a8ad22034a5ed66155.tar.xz
mesecons-5a0492b176fa6f01925c87a8ad22034a5ed66155.zip
Check protection on microcontroller programming (#420)
Also, fix globals assignment.
Diffstat (limited to 'mesecons_microcontroller')
-rw-r--r--mesecons_microcontroller/init.lua14
1 files changed, 10 insertions, 4 deletions
diff --git a/mesecons_microcontroller/init.lua b/mesecons_microcontroller/init.lua
index 46272b9..9b1bf3b 100644
--- a/mesecons_microcontroller/init.lua
+++ b/mesecons_microcontroller/init.lua
@@ -103,6 +103,12 @@ minetest.register_node(nodename, {
meta:set_string("eeprom", r)
end,
on_receive_fields = function(pos, formanme, fields, sender)
+ local player_name = sender:get_player_name()
+ if minetest.is_protected(pos, player_name) and
+ not minetest.check_player_privs(player_name, {protection_bypass=true}) then
+ minetest.record_protection_violation(pos, player_name)
+ return
+ end
local meta = minetest.get_meta(pos)
if fields.band then
fields.code = "sbi(C, A&B) :A and B are inputs, C is output"
@@ -272,7 +278,7 @@ yc.parsecode = function(code, pos)
end
yc.parse_get_command = function(code, starti)
- i = starti
+ local i = starti
local s
while s ~= "" do
s = string.sub(code, i, i)
@@ -298,7 +304,7 @@ yc.parse_get_command = function(code, starti)
end
yc.parse_get_params = function(code, starti)
- i = starti
+ local i = starti
local s
local params = {}
local is_string = false
@@ -321,7 +327,7 @@ yc.parse_get_params = function(code, starti)
end
yc.parse_get_eeprom_param = function(cond, starti)
- i = starti
+ local i = starti
local s
local addr
while s ~= "" do
@@ -488,7 +494,7 @@ end
--Condition parsing
yc.command_if_getcondition = function(code, starti)
- i = starti
+ local i = starti
local s
local brackets = 1 --1 Bracket to close
while s ~= "" do