Diff

util/pubsub.lua @ 9117:a19fdc6e4f09

util.pubsub: Apply defaults metatable before config check (thanks pep.) Makes it so that the callback sees the default if it’s not in the form, which makes it easier to validate.
author Kim Alvefur <zash@zash.se>
date Sun, 05 Aug 2018 15:17:00 +0200
parent 9107:6e42ef9c805c
child 9129:7721794e9e93
line wrap: on
line diff
--- a/util/pubsub.lua	Sun Aug 05 02:01:58 2018 +0200
+++ b/util/pubsub.lua	Sun Aug 05 15:17:00 2018 +0200
@@ -565,6 +565,8 @@
 		return false, "item-not-found";
 	end
 
+	setmetatable(new_config, {__index=self.node_defaults})
+
 	if self.config.check_node_config then
 		local ok = self.config.check_node_config(node, actor, new_config);
 		if not ok then
@@ -573,7 +575,7 @@
 	end
 
 	local old_config = node_obj.config;
-	node_obj.config = setmetatable(new_config, {__index=self.node_defaults});
+	node_obj.config = new_config;
 
 	if self.config.nodestore then
 		local ok, err = save_node_to_store(self, node_obj);