1
0
Fork 0

minor reorganization and cosmetics

This commit is contained in:
mfranz 2008-07-24 17:41:40 +00:00
parent 9148a4b2eb
commit daee426f00

View file

@ -281,6 +281,7 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
var caller = caller; var caller = caller;
var die = die; var die = die;
# validators
var valid = func(path, rules) { var valid = func(path, rules) {
var fpath = fixpath(path); var fpath = fixpath(path);
foreach (var d; rules) foreach (var d; rules)
@ -289,15 +290,13 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
return nil; return nil;
} }
var read_validator = func(n) setValue(n, [valid(getValue(n, []), read_rules) or ""]);
var write_validator = func(n) setValue(n, [valid(getValue(n, []), write_rules) or ""]);
# validation listeners for load[xml]/save[xml]/parsexml() (see utils.cxx:fgValidatePath) # validation listeners for load[xml]/save[xml]/parsexml() (see utils.cxx:fgValidatePath)
var v = props.globals.getNode(var val = "/sim/paths/validate", 1); var n = props.globals.getNode("/sim/paths/validate", 1).remove();
_setlistener(val ~ "/read", var read_validator = func(n) { _setlistener(n.getNode("read", 1)._g, read_validator);
setValue(n, [valid(getValue(n, []), read_rules) or ""]); _setlistener(n.getNode("write", 1)._g, write_validator);
});
_setlistener(val ~ "/write", var write_validator = func(n) {
setValue(n, [valid(getValue(n, []), write_rules) or ""]);
});
v.remove(); # detach nodes to make them inaccessible for others
# wrap io.open() # wrap io.open()
@ -313,7 +312,7 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
die("io.open(): opening file '" ~ path ~ "' denied (unauthorized access)\n "); die("io.open(): opening file '" ~ path ~ "' denied (unauthorized access)\n ");
} }
# wrap closure() to prevent tampering of security related functions # wrap closure() to prevent tampering with security related functions
var thislistener = caller(0)[1]; var thislistener = caller(0)[1];
var _closure = globals.closure; var _closure = globals.closure;
globals.closure = func(fn, level = 0) { globals.closure = func(fn, level = 0) {