Mercurial > prosody-hg
comparison 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 |
| parents | 6e42ef9c805c |
| children | 7721794e9e93 |
comparison
equal
deleted
inserted
replaced
| 9116:9f36f5c14545 | 9117:a19fdc6e4f09 |
|---|---|
| 563 local node_obj = self.nodes[node]; | 563 local node_obj = self.nodes[node]; |
| 564 if not node_obj then | 564 if not node_obj then |
| 565 return false, "item-not-found"; | 565 return false, "item-not-found"; |
| 566 end | 566 end |
| 567 | 567 |
| 568 setmetatable(new_config, {__index=self.node_defaults}) | |
| 569 | |
| 568 if self.config.check_node_config then | 570 if self.config.check_node_config then |
| 569 local ok = self.config.check_node_config(node, actor, new_config); | 571 local ok = self.config.check_node_config(node, actor, new_config); |
| 570 if not ok then | 572 if not ok then |
| 571 return false, "not-acceptable"; | 573 return false, "not-acceptable"; |
| 572 end | 574 end |
| 573 end | 575 end |
| 574 | 576 |
| 575 local old_config = node_obj.config; | 577 local old_config = node_obj.config; |
| 576 node_obj.config = setmetatable(new_config, {__index=self.node_defaults}); | 578 node_obj.config = new_config; |
| 577 | 579 |
| 578 if self.config.nodestore then | 580 if self.config.nodestore then |
| 579 local ok, err = save_node_to_store(self, node_obj); | 581 local ok, err = save_node_to_store(self, node_obj); |
| 580 if not ok then | 582 if not ok then |
| 581 node_obj.config = old_config; | 583 node_obj.config = old_config; |
